MCN7105:Structure InterpretationofComputer Pro- grams
(a)Description:
Thecourseprovidesasurveyoftechniquesandprinciplesintheun- derlyingdesignandimplementationofsystems.Thecoursefocuseson symbolic computationandlessonnumericalexamplesfromthecal- culusandnumbertheory. Effectivesoftwareengineersneedtoknow efficienttechniquesthatserveasbuildingblocksinthedesignan im- plementationofsoftwaresystems.Today,mostsystemsrequireacol- lectionofskillstoprovideanefficientimplementation.Thereforethis courseenrichesthroughbroadening ratherthanacceleration.Thepro- gramminglanguageusedhasasimplesyntaxandanintuitiveseman- tic model,allowingafocusonconcepts.Throughout, thefocusis onunderstandingcomputationaltools bybuildingthem,ratherthan coveringmanylanguagefeatures
(b) Aims/Goals:
Theaimofthecourseistoequipstudentswith theknowledgeto understandanddesignsoftwaresystems.
(c)Learningoutcomes
•Strongunderstandingofbasicconceptsincomputerscience(in- cludingsomematerialonlistsandtrees.
•Abilitytowriteprogramsfromscratchintheprogramminglan- guageSchemewhileunderstandingthemeaningofwhatisbeing written.
•Properattentiontodesignandtesting.
(d) Learningandteaching:
Thecourseisstructuredaroundastrongtextbookandassociatedin- structionaldevelopment environment,thoughlecturesofferelabora- tiononideas,differentexamples,andadditionalmaterial. Shortas- signmentsduringthiscourseareinterspersedwithasubstantialpro- grammingprojectusingobject-oriented techniques,such asanadven- turegame.
(e)Indicative Content:
•ThefundamentalsofLispcomputation:namesandvalues,eval- uation,functiondefinitionandevaluation,andpredicates.
•Higher-orderfunctions,includingtheuseoffunctionsasparam- eters.Introducethedefinitionoffunctions withLAMBDA,and theuseoffunctionsthatreturnfunctionsasvalues.
•Functiondefinitionandapplication,makingdecisions(conditional expressions),workingwith aggregateddata(structures),work- ingwithunboundeddata(listsandrecursion),informationhid- ing(localdefinitions),functionalabstraction(functionsasval- ues),mutation(changingname-valuebindings),andencapsula- tion(makingobjects).
•Dataabstractionandtechniquesforimplementing”abstraction barriers.Useofschemepairstoimplementlists,trees,andother datastructures. Coveradvanceddataabstractiontechniques: taggeddata,data-directedprogramming,andmessage-passing.
•Stateandassignment:Theuseofstateandlocalassignment towriteefficientprograms;introducetheideaofobject-oriented programming,assignment,andtheenvironmentmodelofevalu- ationthatisneededtounderstandhowlocalstateismaintained inScheme. Introductiontomutabledata,concurrency;streams, modeltime-varyingstateinformationwithinthefunctionalpro- grammingapproach
•Metalinguisticabstraction: Thecreationofnewprogramming languages, asastillmorepowerfulabstractiontechnique.Two majorexamplesarepresented:Lispandalogicprogramming languagethecoursefollowsthefourthchapterofthetext.
(f)ReadingMaterials/Indicativesources:
•StructureandInterpretationofComputerProgramsbyAbelson andSussman(Secondedition,MIT Press,1996)
(g)Assessment:
AssessmentwillbebyTestsandprojects(40%)andFinalExamination
(60%)