Sie sind auf Seite 1von 8

EECS280Syllabus

Instructors
AndrewDeOrio

awdeorio@umich.edu

Contact
PleasedirecttechnicalquestionstoourPiazzaforums.Forotherquestions,youcanreachthe
coursestaffateecs280staff@umich.edu.

Schedule
Forofficehoursanddiscussionsections,pleaserefertothecalendaronthecoursewebsite.

Textbook
Required:C++Primer,byLippman,LajoieandMoo.5thedition.
Ourtextbookisavailableinprintform,electronicKindleedition,andforfreethroughthe
UniversityLibrary.Ifyoudecidetorelyonthelibraryversion,pleasebeawarethatthenumberof
simultaneoususersislimited,andsometimestheremaybeawaittoaccessit.

Overview
Thiscourseprovidesafoundationforprogramming,thescienceofhowtoasadiscipline.
Studentswilllearnavarietyoftechniquesandprinciplestoquicklywritecorrectprogramsthat
areeasyforotherstounderstandandadapttonewpurposes.Thiscoursefocuseson
programminginthesmall,writingshortprogramsorprogramcomponentsthatareeasily
understoodbyasingleprogrammer.TheconceptscoveredinthiscoursearenotjustaboutC++
programming,butwewillseehowtheycanbeconcretelyrealizedintheC++language.
Bytheendofthiscourse,asuccessfulstudentwillbeableto:
Takeaproblemandconsidervariouspossibleapproachesforsolvingit
Selectanapproachoralgorithmthatprovidesforasimple,clean,wellstructuredsolution
ConvertthealgorithmintoC++code,usinggooddesignandstyle
Testanddebugtheprogramusingrigoroustechniques
Understandtheconceptsoftopdowndesign,dataencapsulation,informationhiding,and

proceduralanddataabstraction
Design,implementandusecompleteclasses,includingconstructors,destructors,and
operatoroverloading
Implementdynamicdatastructuresforstacks,queuesandlists
Beabletoquicklydesign,implement,testanddebugalargescaleprojectindependently
(1000+linesofcode).

Topics

Functionalabstraction
1. Specification
2. Recursion
3. Therecursion/iterationduality
4. Recursive/iterativeinvariants
5. Functionalgeneralization

Dataabstraction
1. Formalnotionsoftypeandtypehierarchies
2. Simpleandaggregatetypes
3. AbstractDataTypes:ADTs
4. Abstractionfunctionsandrepresentationinvariants

Dynamicresourcemanagement
1. Creationanddestruction
2. Rulesofsafety
3. Containertypes
4. Containeriteration
5. Polymorphism

Inourexplorationofthesetopics,wewilldiscussmanyelementsoftheC++language,suchas:
Arrays(1dimensionalandmultidimensional)
FileI/O
Structs,classes,andobjects
Overloadingoffunctionsandoperators
Friends
Strings(CstyleandC++stringclass)
Pointersanddynamicarrays
Templates
Linkedlists,stacks,andqueues
Iterators
Exceptions
Recursion

Functors

Prerequisites
TheprerequisiteforEECS280isEECS182orEECS183orENGR101orENGR151or
permissionofinstructor.Thefirstprojectshouldbesimpleifyouvesatisfiedtheprerequisites.

Website
Mostcoursematerialsaremadeavailableonthecoursewebsite,andareconsideredrequired
reading.Adetailedschedule,includinglecturetopics,assignmentduedatesandexamdates,is
alsoavailableonthecoursesite.

Forum
WewillbeusingPiazzatohostacourseforum.Youarerequiredtoreadthisregularlyitisthe
venuewewilluseforimportantcourseannouncementsandprojectclarifications.Inaddition,it
willbeasignificantsourceofhelpandhintsontheprojects.
Wedonotanswertechnicalquestionsviaemail.Inordertosaveeveryonetime,wewantall
studentstohavethebenefitofseeingeachquestionanditsanswer,sopleaseusetheforum.
Weaskthatyoudonotpostyourownsolutions,projectcode,testcases,oroutputtotheforum.
Also,pleasesearchtheforumbeforepostingtoavoidquestionsthathavealreadybeenasked
andanswered.

Projects
Overthecourseofthesemester,wewillassignfiveprogrammingprojects.Thefirstwillbeshort
andisbasedonlyonthingsweassumeyouhavecoveredinprerequisites.Theotherprojects
willbelongerandcovermajorcoursetopics.

ProgrammingEnvironment
Forthiscourse,youmusthaveaCAENaccount.AnyoneenrolledinEECS280iseligiblefor
one,butittakesalittlewhiletogetitsetup.WewillgradeyourprogramsintheCAENLinux
environmentandtheymustbesubmitted,compile,andruncorrectlyinthisenvironment.Atthe
timeofthiswriting,thisisversion4.4.7oftheg++compiler.
Youarefreetodevelopyourprogramsonanyplatformyoulike,butyoumayuseonlyANSI/ISO
standardC++,andareresponsibleforanydifferencesbetweenyourpreferredplatformandthe

gradingplatform.Tobesafe,though,werecommendyoudevelopintheCAENenvironment,
usingthemachinepoolloginlinux.engin.umich.edu.Thefirstdiscussionsectioncoversdifferent
waystoconnecttoCAENlinux.

SuccessfullyCompletingtheProjects
Wehavefoundthroughmanyyearsofteachingexperiencethatthemostcommonreasonfor
poorprojectperformanceisnotstartingearlyenough.Plantodosomeworkontheproject
everydayandtrytohaveitfinishedafewdaysaheadoftheduedate,becausemany
unexpectedproblemsariseduringtesting.Inaddition,thecomputingsitescanbecomevery
crowded,makingitdifficulttogetacomputertouse,soplanforthesethingstohappen.
Thesecondmostcommonreasonfornotdoingwellontheprojectsisnotaskingforhelpwhen
youneedit.Weofferhelpinofficehoursandontheclassforums.Whenyoucometooffice
hours,pleasebereadytoprovideaccesstoyourcode,preferablyelectronic.Anothergoodway
togethelpistopostaquestiontothecourseforum.Remember,ifyoufindthatyouarestuck
onapieceofyourprojectforanundueamountoftime,pleaseseeus!
Onemajorgoalofthiscourseisforyoutolearntotestanddebugyourprogramsindependently.
Wewillnotdebugthemforyou.Instead,wewillhelpyoutrytofigureouthowtotestanddebug
yourprogramyourself.Wewillalsoaskyoutodemonstratewhattestinganddebugging
techniquesyouhavealreadytried,andwhattheresultswere,beforeprovidinganyadvice.
Finally,alwaysmakemultiplebackupcopiesofyourwork!Ifyousomehowloseyourwork,itis
yourresponsibility.

ProjectEvaluationandGrading
Eachprojectwillbeevaluatedforbehavioralcorrectness,adherencetocourseprinciples,and
generalstyle.Someprojectsmayalsobeevaluatedonthequalityoftestcasesyousupply.
Aprogramiscorrectifitbehavesasspecifiedintheprojecthandout,forexample,bygenerating
thecorrectoutput.Aprogramadherestocourseprincipleswhenitusestechniquestaughtin
lectureandaskedforinthespecification.Forexample,inProject2,wewillaskyoutowrite
recursivefunctions.Afunctionthatusesaloopinsteadofrecursionwouldnoadheretocourse
principles,evenifitproducesthecorrectanswer.Finally,aprogramshouldbereadableby
otherprogrammers.Wehavepostedgeneralguidelinesforgoodstyleonthecoursewebsite.

DueDatesandExtensions
Programsturnedinaftertheexacttimeanddateontheassignmentwillreceiveazero.Wedo
notgenerallyofferextensions.Forexample,wedonotofferextensionsduetocrowded
computingsites,internetaccessproblems,accidentalerasureorlossoffiles,oroutside
conflictingcommitments.

Wewillconsiderextensionrequestsmadeinpersonandatleast2weeksinadvance,for
example,forreligiousholidays.Additionally,wewillconsiderrequestsfordocumented,
unanticipatedmedicalorpersonalemergencies.Ifyoucan'tseetheinstructorinadvancedueto
theemergency,thenseehim/herassoonasyoupossiblycan.Inallcases,werequireto
writtenproofoftheemergency.

AcademicIntegrity
Youmustcompleteprogrammingassignment1alone.Youmaycompleteprogramming
assignments25eitheraloneorwithapartner.Allprogrammingassignmentsinthiscourse
aretobedonebyyouoryourpartnership.
Youmaygiveorreceivehelponanyoftheconceptscoveredinlecture,discussion,orthe
textbook,andonthespecificsofC/C++syntax.Youareallowedtoconsultwithotherstudentsin
theclasstohelpyouunderstandtheassignmentspecification(thedefinitionoftheproblem).

Youmaynotcollaborateinanywaywithpeopleoutsideyourpartnershipwhenconstructingyour
solutionyourpartnershipworkingalonemustgeneratethesolutiontoaprogramming
assignment.Youarenotallowedtoworkouttheprogrammingdetailsoftheproblemswith
anyoneoutsideyourownpartnershiportocollaboratetotheextentthatyourprogramsare
identifiablysimilar.Youmaynotderiveyoursolutioninanywayfrompriorsolutions.Ifyouhave
anyquestionsastowhatconstitutesunacceptablecollaboration,pleasetalktotheinstructor
rightaway.Youareexpectedtoexercisereasonableprecautionsinprotectingyourownwork.
Donotletotherstudentsborrowyouraccountorcomputer,donotleaveyourprograminpublicly
accessibledirectory,andtakecarewhendiscardingprintouts.
WereportsuspectedviolationstotheEngineeringHonorCouncil.Toidentifyviolations,weuse
bothmanualinspectionandautomatedsoftwaretocomparepresentsolutionswitheachother
andwithpriorsolutions.TheHonorCouncildetermineswhetheraviolationofacademic
standardshasoccurred,aswellasanysanctions.ReadtheHonorCodefordetaileddefinitions
ofcheating,plagiarism,andotherformsofacademicmisconduct.

Guidelines for Partnerships


Workinginapartnershipisoptional.Forprogrammingassignments25,youmayworkeither
aloneorinapartnership.Thefollowingguidelinesapplytothosewhochoosetoworkina
partnership.
Bothyouandyourpartnerwillstillsubmityourassignmentsindividually,butyoushouldboth
writeeachother'suniqnameontheprojectsubmissionforeveryfiletoavoidapotentialreferral
totheHonorCouncil.Youcannotchangepartnersinthemiddleofoneproject,unlessyour
partnerdropsthecourse.Youmaychangepartnersonlyafteraprojectiscompletedand
submitted.However,youarefreetoworkindividuallyasmuchasyoulikeorcollaborateas
muchasyoulike,aslongasitiswithyourpartner.

DOs
DoREADTHESEGUIDELINESCAREFULLYbeforeprogrammingwithanotherstudent.
Youmustfollowtheseguidelines,orriskbeinginvestigatedforanHonorCodeViolation.
Dochooseapartnerfromthecurrentsemesterofthiscourse.
Doputbothyouruniqnameandtheuniqnameofyourpartnerinthecommentsatthetop
ofallcodefiles.Thisisimportanttoavoidreferraltothehonorcouncil.
Dosubmityourowncopyoftheproject.

DONTs
Donotprogramwithsomeonewithoutunderstandingtheseguidelines.
Donotpartneronanassignmentwithsomeonewhohasalreadysolvedtheproblem.
Studentswhodothiswillnotlearnasmuchasthosewhopairwithsomeoneatasimilar
skilllevel.
Donotsharecodewithanyoneotherthanyourpartner,orastaffmember.
Donotsplittheworkinhalf.Itisimportantthatbothpartnersworkonallpartsofthe
program.Splittingtheworkmayharmyouroryourpartner'sunderstandingofthatpartof
thesolution.
Donotpartnerwithanyonewhoisnotcurrentlyenrolledinthecourse.

DiscussionSections
Indiscussionsections,youwillgainpracticewiththematerialfromlecture,withanemphasison
shortprogrammingtasksinsmallgroups.Theexercisesassignedduringdiscussionsection
areintendedtobecompletedduringdiscussiontime.Theworkfromdiscussionwillbeturned
in,andgradedforcompleteness.Weencouragegroupworkduringdiscussion.

GradingandExams
Yourfinalgradeisbasedonscoresfromprogrammingprojects,participationindiscussion
sectionsandtwoexams.Thetentativepointdistributionisincludedinthefollowingtable.Itis
notlikelythatthiswillchange,butcircumstancesmightoccurwhichwouldmakechanges
necessary,atthediscretionoftheinstructor.
Discussionexercises

5%

Programmingprojects(p14%,p2p59%)

40%

Midtermexam

25%

Finalexam

30%

Therearenolettergradesforindividualprojectsorexams.Thefinalcourselettergradeis
basedonthetotalweightedscoreearned.Finalgradeswillbeassignedbasedonthe

distributionofearnedscores,consistentwithpastincarnationsofEECS280.Inthepast,the
medianstudenthasreceivedagradeinthelowBrange,andstudentswithinonestandard
deviationofaveragecangenerallyexpecttopass.Wemayadjustourdistributionupordownif
thissemestersgroupdoesparticularlywellorparticularlypoorlyincomparisontopastgroups.
Inparticular,ifeveryonedoesgreatwork,wellassigneveryoneagreatgrade!Pleasenote,we
donotoffertheopportunityformakeuporextracreditworktoimproveyourgrade.

Exams
Weexpectyoutotakebothexamsatthescheduledtimes.Ifyoumissanexam,andamedical
orpersonalemergencyisnotinvolved,youwillreceiveazeroforthatexam.Ifyouanticipatean
examinanothercourseorareligiousholidaywhichconflictswithourexamtime,youmustnotify
theinstructoratleasttwoweeksbeforetheexamdate.Theexamdatesaregivenatthe
beginningofthetermsothatyoucanavoidschedulingjobinterviewsorothercommitmentson
examdayshencejobinterviews,etc.arenotconsideredvalidreasonsformissinganexam.
Midterm:
Wednesday,26February2014,7:00pm8:30pm
Final:
Monday,28April2014,10:30am12:30pm

RegradeRequests
Whileweworkhardtogradeaccurately,butwesometimesmakemistakes.Ifyoubelievewe
gradedanassignmentofyoursincorrectly,youcansubmitaregraderequestnolaterthanone
weekafterthegradedworkisoriginallyreturned.Wewillthenregradeyourentireassignment,
whichcancauseyourgradecangoup,butitcanalsogodown.
Submitprojectregraderequestsbyemailtotheinstructor.Submitdiscussionregraderequests
byemailtoyourGSI.Forexams,stapleawrittendescriptionofthegradingerrortotheexam
andgiveittoyourinstructor.

TipsforDoingWellintheClass
Youwillmaximizeyourgrade,andlearnalotatthesametime,ifyou:
Attendalllecturesanddiscussionsections(notethatmanytipsandhintsaboutprojects
aregivenduringclass!)
Readtheassignedreadings(textbooks,handouts,forum,webpages)
Handinyourworkontime(evenifaprogramdoesnotwork,turninwhateveryouhave
done)
Starttheprogrammingprojectsearlyandcomeforhelpassoonasyouneedit
Followtheprogramspecificationscarefully

AccommodationsforStudentswithDisabilities
Ifyouthinkyouneedanaccommodationforadisability,pleaseletyourinstructorknowatthe
beginningofthesemesteroratleast2weeksinadvance.Someaspectsofthiscoursemaybe

modifiedtofacilitateyourparticipationandprogress.Assoonasyoumakeusawareofyour
needs,wecanworkwiththeServicesforStudentswithDisabilities(SSD)officetohelpus
determineappropriateacademicaccommodations.SSD(7347633000http://ssd.umich.edu)
typicallyrecommendsaccommodationsthroughaVerifiedIndividualizedServicesand
Accommodations(VISA)form.Anyinformationyouprovideisprivateandconfidentialandwillbe
treatedassuch.

Das könnte Ihnen auch gefallen