CSS 342 B Data Structures, Algorithms, and Discrete Math I Fall 2014

advertisement
CSS342BDataStructures,Algorithms,andDiscreteMathI Fall2014
MW8pm,UW2‐005
http://courses.washington.edu/css342/zander/
Professor: Dr.CarolZander(zander@u.washington.edu) OfficeHours: M,W 4‐5pm,(10pm,UW2‐005)
Office:UW1‐353
T
5‐6pm
Phone:(425)352‐5276
orbyappointment
Coursedescription:
Thissequencedcourseintegratesmathematicalprincipleswithdetailedinstructionincomputerprogramming.
Topicsincludepresentationofformalargumentstoprovemathematicalstatements;developmentofalgorithms;
sortingandsearching;algorithmanalysis;object‐orientedprogramming;basicabstractdatatypesincluding
lists,stacks,queues,andbinarytrees.Prerequisites:Calculus,twoquartersprogramming
Grading:
Textbooks:
Assignments
Midtermexam
Finalexam
35%
30%
35%
Ascaleof90s(3.5‐4.0),80s(2.7‐3.4),70s(1.8‐2.4),
60s(0.7‐1.7)isaguidealthoughnotstrictlyfollowed.
Assignmentsconsistofproblemsandprograms.
(1).DataAbstraction&ProblemSolvingwithC++,FrankM.Carrano,Addison‐Wesley
(2).DiscreteMathematicsandItsApplications,KennethRosen,McGraw‐Hill(optional)
(3).AC++bookofyourchoice(optional)
Policies/Information:
Workistobedoneindependentlyunlessdirectedotherwise;collaborationofworkisNOTacceptable.Youmay
discusstheproblemstatementwitheachotherandhelpdebug,butalldesigningandcodingistobedone
independently.Anypairprogrammingmustbeapprovedbyme.Thisclassisrunbyhonorcode.Bytakingthis
class,youagreethatyouwillnotcollaborateinappropriatelyonanywork.Insomecultures,familyrelationships
andtheirloyaltyareconsideredaboveallothers.Inthiscourse,weareanacademicfamilyandyoubetraythe
instructor’sanduniversity’strustshouldyouviolatethehonorcode.Thisviolationwillbetakenseriously.For
theStudentConductCode,see:http://www.uwb.edu/academic/policies/Academic_Conduct.xhtml
Computeruseduringlectureislimitedtotakingnotes.Nosocialnetworks,email,games,etc.Youarenotallowed
todisplayanyimagesonyourscreenduringlectureasitisdistracting.Nocellphones.Andkeepwhisperingtoa
minimumsoasnottodistractothers.Inotherwords,beconsiderate.
Payattentiontothecatalystduedate.Andnotethatcatalystcanbeslow,sodon’twaitforthelastminute.
Assignmentswillonlybeacceptedviacatalyst.Unlesswehavespokenaboutthecircumstancesandprior
arrangementshavebeenmade,anassignmentnotturnedinreceivesagradeofzero.Assignmentswillhaveadue
time.Ifyouturninanassignmentafewminutesaftertheduetime,itwillnotbeconsideredlate.Catalystwillbe
openforanextrahour.Assignmentsturnedinduringthattimelose10%.Ifyouemailaskingmetopleasenot
markitlate,youlose20%.
Nomake‐upexamswillbegivenexceptunderexceptionalcircumstances.
Becauseoflimitedtime,mostquestionsabouttheassignmentwillbeansweredonthemessageboard.
Implementationquestionsaboutyourprogramshouldcometomeinemail.Also,therewillbenodebuggingof
codeduringclassbreak.Youcanaskquestions,butwithoutyourcomputer.
Torequestacademicaccommodationsduetoadisability,pleasecontactDisabilityResources(DRS)at
425.352.5307,425.352.5303TDD,ordrs@uwb.edu.Providedocumentationbythethirdweekofthequarter.
Coursegoals:
TheoverallgoalofCSS342istolearndiscretemathematicsconceptsandcomputerprogramming.Yousolve
mathematicalproblems,presentformalmathematicalarguments,andprogramsolutionstoproblems.You
reviewsearchingandsortingalgorithms,object‐orientedprogramming,basicabstractdatatypes,andstudy
algorithmanalysis.TheprogramminglanguageC++isstudied.Goodsoftwareengineeringtechniquesareused
throughout.Aswithmosttechnicalcourses,besidesabilityandmotivation,ittakestimeandalotofhardworkto
learnandmasterthesubject.Expecttospendanadditional15hoursaweekoutsideofclasstimeonaverage.
Assignments:
Followalldirectionsforturn‐in(foundoncoursewebsite,assignment’spage).Turninviacatalyst
dropbox(coursewebsitelink).Codemustcompileandruncorrectlyusingthelinuxg++compiler.
Syntaxerrorsandrun‐timeerrorswithnotmuchoutputyieldalowgrade.Run‐timeerrorsor
incorrectanswerswillresultinasignificantnumberofpointsbeingdeductedfromyourgrade.
Ifyourcodedoesnotcompile,run,andgiveCORRECToutputforthesamplemaingiven,the
highestgradeyouwillreceiveontheassignmentisD+andtheprogramwillreceivelittlefeedback.
Ifyoudonotputinthetimetowriteit,timewillnotbeputintogiveyoufeedbackonit.
Otherwise,youwillbegradedondocumentation(clarityandcompleteness),style(indentationanduse
ofblanklines/spaces,NOtabsincode),meaningfulidentifiernames,organizationofyourprogram
(modularity/design),efficiency(nouseless,unnecessary,orunnecessarilycomplicatedcode),output
(clarityandformat),theoverallreadability,andfollowingdirections.Coding/documentationstyle
guidelinesandadetailedgradingrubriccanbefoundlinkedoffthecoursewebsite.
Topicscoveredandtentative342schedule:
Thisisanapproximateorderingoftopics.Somecontentwilltakemoretime,someless.Also,notall
sectionsinallchapterswillbecovered;usetopicsasaguide.(ReadingsarelabeledC++orMath,
correspondingtothetexts.)AlthoughtheC++Interludescontainvaluablecontent,theyarenotlisted.
Week Date
Topic
Reading
Assignments
1 2 Sep 24 29 Oct 1 3 6 8 Introduction, Preliminaries, etc. C++ language structure, structs, arrays Searching, simple sorting (selection, bubble, insertion) Data Abstraction (Objects and Classes), C++ classes More C++ classes Pointers, Linked Lists 4 5 6 7 13 15 20 22 25 27 29 Nov 3 5 Pointers, Linked Lists continued Templates, STL intro Algorithm analysis Algorithm analysis continued Recursion Midterm exam Sorting (using recursion) Binary Search Tree intro 8 10 11 12 Trees continued Last day to withdraw (Veteran’s Day) Object‐oriented design, Stacks 9 17 19 Queues Recurrence and Induction 10 24 Recurrence and Induction continued 11 26,27,28 Dec 1 3 8 Project day, Holiday ‐ Thanksgiving Representation of Integers, Mathematical Foundations Last day stuff Final Exam – in class 12 Website “C++ Notes”, C++ appendix A C++ 9.2 (5th) (some of), 11.1 (6th) C++ 3 (5th), 1 (6th) Website “C++ Notes” C++ 4.1‐4.4 (5th), 8‐9 (6th) Hw/lab 1 due C++ 4.5, appendix E (5th), Interlude 7 (6th) C++ 9.1(5th), 10 (6th) Math 2.4, 3.1‐3.3 C++ 2 C++ 9.2 (some of, 5th), 11.2 (6th) C++ 10.3 (5th), 15.3 (6th) Math 11.1‐11.3 (7th), 10.1‐10.3 (6th) Hw/lab 2 due Hw/lab 3 due C++ 1, 6 th
th
C++ 7 (5 ), 13.1‐13.2 (6 ) C++ 5.3 (5th), 5.4 (6th), Math 5.1‐5.2 (7th), 4.1‐4.2 (6th) C++ appendix D (5th), Appendix E (6th) Math 8.1, 8.3 (7th), 7.1, 7.3 (6th) Math 4.2 (7th), 3.6 (6th) Math 1.1, 1.3‐1.5 (7th), 1.1‐1.4 (6th) Hw/lab 4 due Hw/lab5 design due Hw/lab 5 impl. due 
Download