- 59.00 KB
- 2022-08-30 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
开源软件与计算机科学教育摘要:我们考察了开源软件在计算机科学教育中的角色。我们将从简短的开源协议开始介绍,这些协议包括四个流行的开源协议。然后我们讨论开源软件在教育上的应用。最后,我们关注开源软件在计算机科学教育上的应用。介绍:作文计算机科学的教育工作者,我们不停地寻求新的途径、方法和技术来引导我们的学生。我们希望先抓住他们的兴趣,然后使他们能尽可能多的理解和接收资料,最后鼓励他们独立创新。在整个过程当中,我们试着教他们能实际应用的技能。我们领域所涉及的宽度和不同的教育途径使得这个过程十分困难。我们相信开源软件(OSS)能作为一种教育和学习计算机科学(CS)的渠道、方法和技术。OSS强调课堂以外的团队协作,包含了很多项目和很多在地域上分散的队伍。OSS同时也能被用在向学生介绍大的CS社区和参与同行审查(peer-review)。最后,OSS通常能提供免费或低廉的课程成本,这是我们在其他地方不能提供的。在这片论文中,我们讨论了OSS在CS教育中的角色。我们将从简短的开源协议开始介绍,这些协议包括四个流行的开源协议。然后我们讨论开源软件在教育上的应用。最后,我们关注开源软件在计算机科学教育上的应用。OSS组织对OSS原始的定义是:“为了保证代码的读、写、再发布和修改,必须在协议下分发,并且免费使用的软件”[14]。OSS开发模型是全球开发者网络的一部分。开源软件经历一种自然的更新,这种更新是带来了迅速的开发,增加了可靠性,并且降低了成本。OSS也被称为“免费软件”。即使这两个概念在开源的最初定义中是相互交叉的,两者之间还是有区别的。当提到“开源”的时候,我们常常实际指的是开源代码。比如,我们通常将软件的稳定性归功于其开源代码的快速审查和更新[14]。\n两者的区别仅在于究竟是谁获得访问这个源代码,为什么他们要获得它。我们采用通常的方式来评价免费软件,相比,我们主要评价开源软件的代码,我们提倡人人读开源代码的权力。我们关心的是用户是否能自由地阅读、再发布、修改和使用代码,而不是所节省的代价。开源代码协议开源代码能在许多种不同的协议下发布。截至2002年二月,OSI已经推出了30种开源协议[13]。我们将讨论其中的四种常见的有教育意义的协议:GNU公共协议,小型GNU公共协议、伯克利软件发布协议和谋智网络公共协议。GNUGPL(GNU非Unix)通用公共协议(GPL)是一种常见的开源协议。这个协议保证了一个GPL程序所有的衍生作品也保佑GPL协议,因此保证了未来使用者的拷贝权。“拷贝权”软件是一种不允许以后的发布者在他们修改软件时添加任何的限制[10]。拷贝权机制为开发或发展免费软件提供了XX[8]。流行的软件:LinuxKernel,GNUEmacs和GCC。在freshmeat.net上的占有率为65.15%GNULGPL小型GNU通用协议就像其命名一样,不想他的哥哥一样自由。LGPL允许在LGPL协议下的专利代码。比如,如果你想写一个库,并且在LGPL协议下发布。在不同协议下的代码可以连接这个库。在这种协议下的的软件就像在GPL协议下一样拥有拷贝权,但只被其本身的协议所限制。流行软件:GNUCLibrary,OpenOffice和FastLightToolkit(FLTK)在freshmeat.net上的占有率为5.31%BSD,伯克利软件发布协议是一种简单的没有拷贝权的协议。这个协议允许衍生的作品在任何协议下发布。这种规定允许BSD代码用于私有项目并且没有拷贝权机制保证修改后的代码是开源的。因此,这种协议是遭到批评的,因为它没有提供任何的激励,不能保证代码一直保持开源。流行软件:Apache,FreeBSD,和PostgreSQL在freshmeat.net上的占有率为5.17%MPL就像BSD协议一样,Mozilla公共协议允许将代码用在私有的项目中,但是使派生的代码保持在MPL协议中。这种机制为开发人员提供了一种激励来促进核心功能。这个协议不与GPL兼容,GPL协议下的软件不能和MPL协议连接[9]。但是MPL1.1有个规定(13部分)如果部分的程序允许GNUGPL作为另一种选择,或其他GPL兼容协议作为另一种选择,这一部分的程序就有GPL兼容协议[9]。流行软件:MozillaWebBrowser(FireFox)和Bugzilla在freshmeat.net\n上的占有率为0.49%开源软件和计算机科学教育开源软件为计算机教育社区提供了巨大的利益。通过使用OSS,计算机科学教育者和学生能发展(或更进一步的提升)能在国际间使用的软件。这不仅为学生提供了一个世界范围内的实验室和支持,还给了他们大规模软件合作和开发的经验。分发的软件已经被证明在因特网驱动合作的教育环境(比如网页和电子邮件)下是有效的[3]。因特网合作工具就像是开源的动力。因此我们可以期望开源社区给我们的学生大规模分发的软件开发。不仅是学生在加入大规模开源软件社区受益,而且也增加了大规模真实软件代码基数。GNU/Linux,一种开源OS,已经被用于一种大学阶段的教育技术来教授网路、数据库和系统管理[5]。OSS的很贴切地应用在毕业论文或者其他包含的课程之中。被激励在OSS上建立项目的学生比同一起跑线的其他学生能获得更多的兴趣和令人惊喜的系统。甚者,为了成功,他们必须和大量的代码和相关的文档打交道。如果代码能很好的编写和存档,学生能学到应当如何完成准备。如果不能,学生以后可能会更细心地工作。这些最好的系统又能回馈到开源社区中。最后,由于开源和自由可用的源代码,代码的高度有效性能被保证[2]。就像我们寻求同辈间的学术研讨会和巡演一样,我们能在开源社区能得到同样的细查[4]。通过使用开源代码的优势,我们能扩大我们学习、应用和教授计算机科学的方法。我们可能能将目光从开源代码实用的特性和免费的软件带来的“道德”争论上移开。开源软件假设每一个人都会获得你的代码,当然,对于计算机专家还包括你的思想。作为一个计算机专家,让任何人理解、修改和应用这些思想是你的责任。结论\n开源软件,确切地说GNU/Linux,已经被应用到计算机教育的方方面面。从嵌入式世界到合作基础设施,开源软件还给了教育工作者一种灵活性和资源。开源软件能作为一种教授和学习计算机科学的途径、方法和技术。作为一种途径,OSS能将团队合作超出教室的范围,获得更大的项目和分布在不同地域的队伍。作为一种方法,OSS能被用于介绍学生到大型的计算机科学社区并参加同辈的审查。最后,作为一种技术,OSS能向我们提供免费或低成本的技术,这种技术是在其他地方不能获得的。参考文献[1]Baum,D.Emailinterview.October112001.[2]Kiernan,V.“The‘OpenSourceMovement’TurnsItsEyetoScience.”ChronicleofHigherEducation.November5,1999.http://www.chronicle.com/free/v46/i11/11a05101.htm[accessedJanuary2002][3]Macek,T.,Mannova,B.,Kolar,J.,andWilliams,B.GlobalCooperationProjectinComputerProgrammingCourse.InProceedingsofSIGCSEAnnualConference(1999).[4]Pfaffenberger,B.“LinuxinHigherEducation:OpenSource,OpenMinds,SocialJustice.”LinuxJournal.March21,2000.linuxjournal.com/article.php?sid=5071[accessedFebruary2002][5]Rogers,M.WorkingLinuxintotheCSCurriculum.InProceedingsoftheSeventhAnnualCCSCMidwesternConference(2000).[6]Stallman,R.“Whyyoushouldn’tusetheLibraryGPLforyournextlibrary.”Feb1999.http://www.gnu.org/philosophy/why-not-lgpl.html.[accessedFebruary2002][7]About.Freshmeat.nethttp://freshmeat.net/about/[accessedFebruary2002][8]WhatIsCopyleft?http://www.gnu.org/copyleft/copyleft.html[accessedFebruary2002[9]GNULicenseList.http://www.gnu.org/licenses/license-list.html[accessedFebruary2002][10]GNUPhilosophy.http://www.gnu.org/philosophy/[accessedFebruary2002][11]K-12LinuxTerminalServerProject.http://www.k12ltsp.org/press.html[accessedFebruary2002][12]TheOpenScienceProject.http://www.openscience.org[accessedFebruary2002][13]OpenSourceInitiative.http://www.opensouce.org/[accessedFebruary2002][14]OpenSourceInitiative.FrequentlyAskedQuestions.http://www.opensouce.org/advocacy/faq.html[accessedFebruary2002][15]OpenSourceNOW.http://www.redhat.com/opensourcenow/[accessedFebruary2002][16]SimpleEndUserLinuxEducation.http://www.seul.org/edu/[accessedFebruary2002]\n原文:OPENSOURCESOFTWAREANDCOMPUTERSCIENCEEDUCATIONKeithJ.O’HaraandJenniferS.KayComputerScienceDepartmentRowanUniversityGlassboro,NJ08028{ohara,kay}@elvis.rowan.eduABSTRACTWeinvestigatetheroleofopensourcesoftwareincomputerscienceeducation.Webeginwithabrieftutorialonopensourcesoftwareincludingadescriptionoffourpopularopensourcelicenses.Nextwediscusstheuseofopensourcesoftwareineducation.Finally,wefocusontheuseofopensourcesoftwareincomputerscienceeducation.INTRODUCTIONAscomputerscienceeducatorsweconstantlyseeknewchannels,methods,andtechnologiestoreachandintrigueourstudents.Wehopetofirstcapturetheirinterest,thenmaximizetheirunderstandingandretentionofthematerial,andfinallyencouragetheirownindependentcreativework.Throughoutthisprocess,wetrytoteachthemskillsthattheycanapplyintherealworld.Thebreadthofourfieldandthevarietyofpedagogicalapproachesmakethisprocessverydifficult.Webelievethatopensourcesoftware(OSS)canserveasachannel,method,andtechnologytoteachandlearncomputerscience.OSShasthepotentialtoexpandgroupworkbeyondtheclassroomtoincludemuchlargerprojectsandmoredistributedteams.OSScanalsobeusedtointroduceourstudentstothelargercomputersciencecommunityandtothepracticeofpeer-review.Finally,OSScanoftenprovideuswithfreeorlower-costtechnologyintheclassroom,permittingustousetechnologythatwemightotherwisebeunabletoafford.Inthispaper,wediscusstheroleofopensourcesoftwareincomputerscience\neducation.First,wegiveabrieftutorialonopensourcesoftwareincludingadescriptionoffourpopularopensourcelicenses.Nextwediscusstheuseofopensourcesoftwareineducation.Finally,wefocusontheuseofopensourcesoftwareincomputerscienceeducation.OPENSOURCESOFTWARETheOpenSourceInitiative’sdefinitionofopensourcesoftwareis:“softwarethatmustbedistributedunderalicensethatguaranteestherighttoread,redistribute,modify,andusethesoftwarefreely.”[14]AsmuchapartoftheOpenSourceSoftware(OSS)developmentmodelastheopensourcecodeisaglobalnetworkofdevelopers.Thesoftwaregoesthroughatypeofnaturalevolutionresultinginrapiddevelopment,increasedreliability,anddecreasedcost.Opensourcesoftwareisalsoreferredtoas“freesoftware”.AlthoughthetwoareinterchangeableundertheOpenSourceInitiative’sdefinition,therearesomedifferencesamongpopularunderstanding.Whenmarketingthe“opensource”approachweoftenrelyonthepragmaticpropertiesoftheopensourcecode.Forinstance,wemaycitethesoftware’sreliabilityandhighqualityduetothepeerreviewandrapidevolutionofthesourcecode.[14]Thedisparitieslieinexactlywhogetsaccesstothissourcecodeandwhytheyhaveaccesstoit.Whenexplainingfreesoftwareweuseamoralargument;ratherthanbasingourargumentonthebenefitsoftheopensourcecode,wepurporttherighteveryonehastothesourcecode.Whenwespeakof“freesoftware”wearereferringtothefreedomoftheusertoread,redistribute,modify,andusethesourcecoderatherthanthelackofcost.OPENSOURCELICENSINGOpensourcesoftwarecanbereleasedunderavarietyofdifferentlicenses.AsofFebruary2002,theOpenSourceInitiativehasapproved30opensourcesoftwarelicenses.[13]Wewilldiscussfourlicensescommontoeducationalapplications:theGNUPublicLicense,theLesserGNUPublicLicense,theBerkeleySoftwareDistributionLicense,andtheMozillaPublicLicense.\n·GNUGPL.TheGNU(GNU’sNotUnix)GeneralPublicLicense(GPL)isaverycommonopensourcelicense.ThislicenseassuresanyderivedworkofaGPLprogramwillremainGPL,thusassuringthefreedomforfutureusers/developerstoaccess,modify,andredistributethesourcecode.Thesoftwareunderthislicenseiscopylefted,“copyleftedsoftwareisfreesoftwarewhosedistributiontermsdonotletredistributorsaddanyaddi-tionalrestrictionswhentheyredistributeormodifythesoftware.”[10]Thecopyleftmechanismprovides“incentive”fordevelopingandimprovingfreesoftware.[8]Popularsoftware:LinuxKernel,GNUEmacs,andGCC.Percentageofsoftwarelistedonfreshmeat.net1:65.15%·GNULGPL.TheLesserGNUGeneralPublicLicense,asthenameimplies,isnotasfreeasitsolderbrother.TheLGPLallowsproprietarycodetobelinkedwiththeLGPLcode.Forinstance,ifyouwerewritingalibraryandweretoreleasethesourceundertheLGPL,codeunderadifferentlicensewouldbepermittedtolinkwithyourlibrary.2Thesoftwareunderthislicense,likethe1“FreshmeatmaintainstheWeb’slargestindexofUnixandcross-platformsoftware.”[7]2Infact,the‘L’initiallystoodfor“Library”butwaslaterchangedtostandfor“Lesser”.[6]GPL,isalsocopylefted,butunliketheGPL,canbelinkedtoproprietarycodewithitsownlicense.Popularsoftware:GNUCLibrary,OpenOffice,andFastLightToolkit(FLTK)Percentageofsoftwarelistedonfreshmeat.net:5.31%·BSD.TheBerkeleySoftwareDistributionLicenseisasimplenon-copyleftedlicense.Thislicenseallowsderivedworkstobereleasedunderanylicense.ThisallowsBSDcodetobeusedinproprietaryprojectsandhasnocopyleftmechanismforkeepinganyofthemodifiedcodeopen.Forthisreason,thelicenseiscriticizedbecauseitdoesnotofferany“incentive”fordevelopersbecausethereisnoguaranteethecodewillremainopen.Somepopularsoftware:Apache,FreeBSD,andPostgreSQLPercentageofsoftwarelistedonfreshmeat.net:5.17%\n·MPL.TheMozillaPublicLicense(MPL)permitstheuseofthecodeinproprietaryprojectsliketheBSDLicense,butmakescertainthecorefilesstayundertheMPL.Thisstipulation,thatthecorefilesstayundertheMPL,providesincentivefordeveloperstoimproveanddevelopaspectsofthecorefunctionality.ThislicenseisactuallyGPL-incompatible;aGPLmodulecannotbelegallylinkedwithaMPLmodule.[9]“However,MPL1.1hasaprovision(section13)thatallowsaprogram(orpartsofit)toofferachoiceofanotherlicenseaswell.IfpartofaprogramallowstheGNUGPLasanalternatechoice,oranyotherGPL-compatiblelicenseasanalternatechoice,thatpartoftheprogramhasaGPL-compatiblelicense.”[9]Popularsoftware:MozillaWebBrowserandBugzillaPercentageofsoftwarelistedonfreshmeat.net:0.49%OPENSOURCESOFTWAREANDEDUCATIONManygroupshavebeenestablishedtodevelopandpromoteopensourcesoftwareasaviabletechnologicalsolutionforeducationaluses.Byusingopensourcesoftware,schoolscanfreethemselvesoflicensingcostsandputtheir(oftenscarce)resourcestootheruses.Asonemightexpect,thefocusisonLinux,andtoolsthatworkonLinuxplatforms.RedHat,acompanybestknownforitscommercialsupportofGNU/Linux,hasdevelopedtheOpenSourceNowproject.[15]OpenSourceNowisanadvocacygroupdesignedtoadvancetheuseofOSSinbotheducationandpublicpolicy.Foreducators,theyprovideanintroductiontoOSSineducation,adiscussionlist,andlinkstoawidevarietyofotherOSSineducationsites.SimpleEndUserLinux-EducationisadiscussionlistaboutallaspectsofeducationalusesofLinux.[16]Thesitealsoprovidesadatabaseofcasestudies,andlinkstocurrentprojectsandawidevarietyofsoftwarefromastronomytosocialstudies.TheK-12LinuxProjectprovidesinformationtoschoolstoenablethemtomakeuseofOSS.[11]Forexample,theirLinuxTerminalServerprojecthasproducedanopensourceterminalserverLinuxdistributiontargetedatalaboflow-powereddisklesscomputersandahigh-poweredserver.Thisallowsaschooltotakeadvantageofoutdatedhardwaretheymayalreadyown,aswellassavemoneybyreducingthesoftwarelicenses\ntheschoolsmustpurchase.Theyclaimtocutalab’shardwareandsoftwarecostsbymorethanathird.Opensourcesoftwareisnotlimitedtolow-costcomputerlabsinprimaryandsecondaryschools,butalsoisbeingactivelyusedanddevelopedbyhighereducationinstitutions.TheOpenScienceprojectisdedicatedtodevelopingscientificsoftwarethatcanbetakenadvantageoffreelybyanyone.[12]Relyingontheflexibility,low-cost,standardscompliance,andstabilityofOSStostrengthenitscredibilityasaneducationalsolution,wemustalsorecognizethefactorsthatinhibititswidespreadacceptance.Today’sschoolsareveryWinTel3reliant,possiblyduetohistoricalvestedinterests,asteeplearningcurve,ormasterfulmarketing.Anotherfactor,whichissuretosurfaceasanotherinhibitor,isthecurrentmuckysituationofopensourcelicensing.Whilesupplyingagreatamountofflexibilityfordevelopers,thisplethoraoflicenseshasasteeplearningcurveofitsown.Italsobreedsconfusionanduncertaintyforusersandneophytedevelopers.OPENSOURCESOFTWAREANDCOMPUTERSCIENCEEDUCATIONOpensourcesoftwareofferstremendousbenefitstothecomputerscienceeducationcommunity.ByusingOSS,computerscienceeducatorsandstudentscandevelop(orfurtherthedevelopmentofexisting)softwarethatcanbeusedandimproveduponbyaninternationalcommunity.Thisnotonlyprovidesthestudentwithaworld-sizelaboratoryandsupportstaff,butalsogivesthemexperienceinlarge3CombinationofMicrosoftWindowsandIntelProcessorsscalesoftwarecollaborationanddevelopment.DistributedsoftwarecollaborationhasprovenitselfeffectiveintheeducationalsettingthroughtheuseofInternet-drivencollaborationtoolssuchaswebpagesandemaillists.[3]TheseInternet-drivencollaborationtoolsarethesameasthosethatpoweropensourcedevelopment.Thus,wecanlooktotheopensourcecommunitytoexposeourstudentstolarge-scaledistributedsoftwaredevelopment.ByusinganddevelopingOSS,notonlyisthestudentparticipatinginalargedistributedsoftwarecommunity,butisalsointeractingwithlarge,real,softwarecode-bases.GNU/Linux,anopensourceoperatingsystem,hasalsobeenpresentedasan\neducationaltechnologytoteachnetworking,databases,andsystemadministrationattheuniversitylevel.[5]TheuseofOSSisparticularlyappropriateinaSeniorThesisorothercapstonecourse.StudentswhoareencouragedtobuildprojectsontopofOSSbasescanbuildmoreinterestingandexcitingsystemsthantheymighthavedevelopedfromscratch.Further,inordertosucceed,theymustworkwithalargecode-baseandassociateddocumentation.Ifthecodeiswellwrittenandwelldocumented,studentslearnhowmuchcanbeaccomplishedwithcarefulpreparation.Ifitisnot,studentsmaytakemorecarewiththeirownworkinthefuture.Thebestofthesesystemscanbecontributedbacktotheopensourcecommunity.Finally,duetotheopenandfreelyavailablesourcecode,ahighdegreeofverifiabilitycanbeattained.[2]Justaswelooktoconferencesandjournalsforpeerreviewofourideas,wecanlooktotheopensourcecommunityforthesametypeofscrutinyconcerningoursoftware.[4]Bytakingadvantageoftheopensourcedevelopmentmodelweextendthemethodologybywhichwelearn,apply,andteachcomputerscience,toincludepeer-review.Wemaylookawayfromthepragmaticpropertiesoftheopensourcecodetothemore“moral”argumentafreesoftwareadvocatemaypose.Freesoftwareassuresevery-onewillhaveaccesstoyourcode,whichasacomputerscientist,areyourideas.Asascientistitisyourdutytoassureeveryonecanunderstand,modify,andapplythoseideas.CONCLUSIONSTheuseofopensourcesoftware,andGNU/Linuxinparticular,isgrowinginalldirections.Ranginginapplicationfromtheembeddedworldtocorporateinfrastructure,opensourcesoftwarealsogiveseducatorsatypeofflexibilityandintellectualfreedomoftenabsentfromsoftware.Opensourcesoftwarecanserveasachannel,method,andtechnologytoteachandlearncomputerscience.Asachannel,OSScanexpandteamworkpasttheclassroomtoincludemuchlargerprojectsandmoredistributedteams.Asamethod,OSScanbeusedtointroduceourstudentstothelargercomputersciencecommunityandtothepracticeofpeer-review.Finally,actingasatechnology,OSScanprovideuswithfreeorlower-costtechnologyintheclassroomthatwemightotherwisebeunabletoafford.\nREFERENCES[1]Baum,D.Emailinterview.October112001.[2]Kiernan,V.“The‘OpenSourceMovement’TurnsItsEyetoScience.”ChronicleofHigherEducation.November5,1999.http://www.chronicle.com/free/v46/i11/11a05101.htm[accessedJanuary2002][3]Macek,T.,Mannova,B.,Kolar,J.,andWilliams,B.GlobalCooperationProjectinComputerProgrammingCourse.InProceedingsofSIGCSEAnnualConference(1999).[4]Pfaffenberger,B.“LinuxinHigherEducation:OpenSource,OpenMinds,SocialJustice.”LinuxJournal.March21,2000.linuxjournal.com/article.php?sid=5071[accessedFebruary2002][5]Rogers,M.WorkingLinuxintotheCSCurriculum.InProceedingsoftheSeventhAnnualCCSCMidwesternConference(2000).[6]Stallman,R.“Whyyoushouldn’tusetheLibraryGPLforyournextlibrary.”Feb1999.http://www.gnu.org/philosophy/why-not-lgpl.html.[accessedFebruary2002][7]About.Freshmeat.nethttp://freshmeat.net/about/[accessedFebruary2002][8]WhatIsCopyleft?http://www.gnu.org/copyleft/copyleft.html[accessedFebruary2002[9]GNULicenseList.http://www.gnu.org/licenses/license-list.html[accessedFebruary2002][10]GNUPhilosophy.http://www.gnu.org/philosophy/[accessedFebruary2002][11]K-12LinuxTerminalServerProject.http://www.k12ltsp.org/press.html[accessedFebruary2002][12]TheOpenScienceProject.http://www.openscience.org[accessedFebruary2002][13]OpenSourceInitiative.http://www.opensouce.org/[accessedFebruary2002][14]OpenSourceInitiative.FrequentlyAskedQuestions.http://www.opensouce.org/advocacy/faq.html[accessedFebruary2002][15]OpenSourceNOW.http://www.redhat.com/opensourcenow/[accessedFebruary2002][16]SimpleEndUserLinuxEducation.http://www.seul.org/edu/[accessedFebruary2002]