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%)