Spring Term 2009 1:50 MWF Mr. Gregg
CMSC 270 is an introductory course in data structures with instruction in the C++ language. The first objective of this course is to further your instruction in programming by giving you an exposure to the C++ language, which is more powerful and flexible than Java. The second objective is to begin the study of standard algorithms and data structures in computer science. Specifically, we will study linear data structures, recursion, trees, and various applications of these concepts.
How this Course is Structured
We will meet three times a week for lectures. Early on in the course I will assign several short programming assignments each week. As the course progresses the programming assignments will become less frequent and more complex.
We will have two midterm exams and a final exam. Midterm exams are tentatively scheduled for Friday, April 24 and Friday, May 22. The final will be on Tuesday, June 9 at 8:30 AM.
Assignments and exams have the following weights:
Programs - 45% Midterm exams - 15% each Final exam - 25%
Late policy for assignments is that assignments may be turned in one class meeting after the initial due date for a 10% penalty. I will waive the 10% penalty if you have a valid excuse; however, you must contact me before the initial due date to ask for an extension.
Our text is Data Structures and Algorithms in C++, Third Edition by Adam Drozdek.
Office Hours
Office hours this term are 9-11 on Wednesdays and Thursdays. In addition to those times, I will be available in my office both before and after class time and will also be available during CMSC 150 lab times from 9-11 and 1-3 on Tuesdays. My office is Briggs 413. My extension is 6736 and my email address is greggj@lawrence.edu.
The course web site is at http://www.lawrence.edu/fac/greggj/cmsc270.html. The web site will feature lecture notes and other supplementary materials.
| Week | Topic | Chapter |
|---|---|---|
| 1 | Transition from Java to C++ | - |
| 1 | Pointers | 1 |
| 1 | Templates, Intro to STL | 1 |
| 2 | Linked Lists | 3 |
| 3, 4 | Stacks and Queues | 4 |
| 4 | First Midterm | - |
| 5 | Recursion | 5 |
| 5,6 | Binary Trees and Heaps | 6 |
| 7,8 | Balanced Trees | 6,7 |
| 8 | Second Midterm | - |
| 9 | Graphs | 8 |
| 10 | Hashing | 10 |