Spring 1998 Syllabus
Week of | Topics | Readings | Work Due |
Jan 19 | Transition to C++: pointers, arrays, and structures | Chapter 1, Appx A, B, C | |
Jan 26 | Objects and classes | Chapter 2 | Lab 1 |
Feb 2 | Templates: the Vector class, inheritance | Chapters 3, 4 | Lab 2 |
Feb 9 | Formal methods: O notation and complexity analysis | Chapter 5 | Lab 3 |
Feb 16 | Overview of data structures; stacks, queues, trees, hash tables | Chapter 6 | Lab 4 |
Feb 23 | *** test 1 *** | ||
Mar 2 | Induction and recursion | Chapter 7 | Lab 5 |
Mar 9 | Sorting algorithms: mergesort, quicksort | Chapter 8 | Lab 6 |
Mar 16-23 | *** Spring break *** | ||
Mar 30 | Random number generation, simulation | Chapters 9, 13 | Lab 7 |
Apr 6 | Application: stacks and compilers | Chapter 11 | |
Apr 13 | *** test #2 *** | ||
Apr 20 | Application: Index generation and binary trees | Chapter 12 | Lab 8 |
Apr 27 | Implementation: balanced binary search trees | Chapter 18 | Lab 9 |
May 4 (1/2 week) |
Implementation: hash tables | Chapter 19 | |
May 13 | *** final project presentations (2:00pm) *** |
WORK FOR THE COURSE: The work for this course includes class participation, readings, two tests, 10 weekly lab assignments, and a final project. Lab assignments can be downloaded directly from this Web page on the Monday of the week when it is assigned. All work will be graded and will contribute to your course grade. Attendance is required for all scheduled classes and lab meetings.
Lab work may be done either individually or in teams of two (your choice), but written lab exercises should be completed individually. Each lab assignment should be turned in on the Monday following the week it is assigned. Students are expected to follow Bowdoin's Computer Use Policy and its Academic Honor Code.
The final project will provide an opportunity to design and implement a complex piece of software for a real-world problem, using the data structures and concepts that you have learned throughout the course.