Instructor : Jaime Davila Office : ASH 204 Office Hrs : Tuesdays & Thursdays 10:30 A.M. -12:00 P.M. Fridays 12:00- 1:00 PM. Or by appointment. Phone Number : 413-559-5687 email : jdavila at hampshire dot edu
Course textbook : Working Classes; Data Structures and Algorithms Using C++. Authors : Rick Decker & Stuart Hirshfield Publisher : PWS PublishingYou might also want to invest in an additional book for you to use as a secondary reference for matters having to do with C++ (since this course is about data structures, and not about C++). If you want to buy such a reference book, my best advice is for you to go to a bookstore, look at the books on C++ they might have, and choose the one you find easier to understand, or more "user-friendly". All books tend to cover the same material, so it comes down to your subjective judgement. Whatever else you buy, the book Working Classes is a most if you want to efficiently follow the course material.
This course is designed for students with previous programming experience (for example, for students that took CS-109, or an equivalent introduction to programming, or students that have programmed in the recent past). That means we will be assuming you already have programming experience, and are familiar with topics such as arrays, functions, and pointers (among others). If you are not sure about your programming experience, make sure you talk to me to see if it is the best thing for you to take this course at this time.
End-of-semester evaluations will be based on six homeworks to be assigned
during the course. In addition, you are expected to contribute to class
discussions, both during regular class and during homework discussions
(explaned later below).
Homeworks will always be due on Tuesdays at midnight. In our Thursday meeting after a homework is due, we will spend a good part of the class discussing several submitted methods for solving the assigned problem. Sample homeworks will be projected on screen (with submiter's name removed) so that we can all discuss the pros and cons of the methods used together. For this reason, late homework will not be accepted.
As soon as the material pertaining to an assignment is covered in class, you will be able to read the details about the assignment by clicking on the assignment anouncement on this page.
These assignments are designed to take you several hours of work. You should start working on them as soon as they are assigned.
I encourage you to take advantage of the syllabus shown below in order to remain on schedule.
| Week | Dates | Topics | Assignments | Reading |
| 1 | Jan 27 | Course outline.
What the course is and is not about. What you should expect of the course. Evaluations, homeworks, office hours, etc. Introduction to the course. Classes: a "super-structure". Object Oriented Programming, Abstract Data Types. |
Chapter 1 | |
| 2 | Feb. 1, 3 | Object Oriented programming. | Assigned: First homework, dealing with simple classes (due Feb 8). | Chapter 1. |
| 3 | Feb 8, 10 | Lists. | First assignment is due February 8. | Chapter 2. |
| 4 | Feb 15, 17 | Lists | Second homework now due February 29. | Chapter 2 |
| 5 | Feb 22, 24. | Stacks | Assigned: Second homework, dealing with lists (due February 29). | Chapter 4. |
| 6 | Feb. 29, Mar. 2 | Stacks, Queues | Second homework due February 29.
Assigned: Third homework, dealing with stacks (due March 7). |
Chapter 4. |
| 7 | Mar 7, 9 | Queues | Assigned: Fourth homework, dealing with queues (due March 21).
Third assignment due March 7. |
Chapter 4. |
| 8 | Mar. 21, 23 | Recursion | Fourth assignment due March 21. | Chapters 5. |
| 9 | Mar. 28, 30 | Recursion, trees, templates | Chapter 6 & 7. | |
| 10 | Apr. 4, 6 | Trees | Assigned: Fifth homework, dealing with trees (due April 11). | Chapters 6 & 7. |
| 11 | April 13 | Trees | We will not meet on April 11, but the fifth assignment is due that day. | Chapter 7. |
| 12 | April 18, 20 | Trees, Graphs | Chapter 8. | |
| 13 | April 25, 27 | Graphs | Chapter 8. | |
| 14 | May 2, 4 | Graphs | Final homework/portfolio assigned (due May 12th). | Chapter 8. |