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