CMSC 162 



Professor, office, and hours:


Dr. Robert P. Webber

East Ruffner 332, MF 2 – 3:30,  T 2 - 3, and by appointment or coincidence.  I am not normally on campus on Thursdays.

Phone 395-2192




Text:  Malik, Data Structures Using C++, 2/e.  Course Technology, 2010



Goals for the course:

·        Demonstrate programming proficiency using recursion, stacks, queues, linked lists, and trees.

·        Understand encapsulation, inheritance, and polymorphism.

·        Understand and be able to explain basic searching and sorting algorithms.

·        Use classes and template classes.



Description of the course:  The course description is given in the college catalog.



Course requirements:


Test and exam @15% . . . . . . 30%

Labs . . . . . . . . . . . . . . . . . . . 35%

Programs  . . . . . . . . . . . . . . . 35%



Labs:  Students will work on groups in the closed lab on Tuesdays.  Hand in one report from the group.  All group members should sign it, and all will receive the same grade.  Each lab will have a due date.  Lab reports are due by the beginning of the class on the due date, and papers that are late for any reason will be penalized  25%  per class day or fraction thereof late.



Programs:  These exercises will be done out of class and individually.  They are open book.  You may work together to figure out how to do a program and debug errors, but each person must write his or her own code.  In general, you can collaborate on the logic of the algorithm, but not on the code itself.


Each programming assignment will have a due date, and the assignment is due by the start of class on the due date.  Assignments that are late for any reason will be penalized  25%  per class day or fraction thereof late.


Submit your programming assignment in printed form (not electronically!)  For each program, submit

·        Documentation explaining the algorithm.  Documentation standards will be distributed.

·        Program code.

·        An account of testing, including test data used and printed output showing the results obtained.


Your program must compile and run before I will grade it.  A grading rubric will be distributed.



Homework:  The text has lots of drill and practice exercises.  These will be assigned regularly, and you are expected to do them.  I will be happy to answer questions about them, but they will not be collected or graded without warning.  Homework problems are your responsibility to do.  Feel free to work with others on these problems.



Attendance:  Expected at all classes.  Do not leave in the middle of a class, because that is disruptive.  Get your drink of water and make your calls before or after, not during, class!


Extensions on lab and programming assignments will not be given.  If you cannot be at a class when an assignment is due, send the assignment with someone else.


Makeup tests will be given reluctantly, and only upon presentation of a doctor’s excuse.  Regardless of the reason for missing, makeup tests are always more difficult than regular tests.



Honor code:  The teacher subscribes to the Longwood honor code and assumes that you do, too.  Any infraction of the honor code will be dealt with harshly.  In particular, conviction of an honor offense involving this course will mean an automatic course grade of ‘F’, in addition to any penalties imposed by the Honor Court.



Tentative outline and schedule:  All chapter references are to Malik’s book.




Sections and topics





Jan 19 – 21

Chapter 1:  Classes


Jan 24 – 28

Chapters 1, 2:  Classes


Jan 31 – Feb 4

Chapter 3:  Pointers


Feb 7 – 11

Chapter 4:  STL container vector


Feb 14 –18

Chapter 5:  Linked lists


Feb 21 – 25

Chapter 6:  Recursion


Feb 28 – Mar 4

Chapter 7:  Stacks


Mar 7 – 11

Chapter 8:  Queues



Spring break


Mar 21 – 25

Catch up, review, TEST


Mar 28 – Apr 1

Chapter 9:  Searching and hashing


Apr 4 – 8

Chapter 10:  Sorting


Apr 11 – 15

Chapter 11:  Trees


Apr 18 – 22

Chapter 12:  Graphs


Apr 25 – 29

Catch up and review



Final exam (may be all or partly oral)