Contact | Textbook | Grading | Objective | Background | Schedule&Materials
Note: TA office hours are held in FL A20 (Fuller basement)
unless otherwise noted.
Twenty three TA office hours per week.
Schedule:
Day | Time | TA |
Monday | 8-10 | Ganga |
Monday | 1-3 | Luping |
Monday | 4-5 | James |
Tuesday | 8-10 | Ganga |
Tuesday | 11-1 | Rahul |
Tuesday | 1-3 | Kim |
Wednesday | 8-11 | Luping |
Thursday | 8-9 | Ganga |
Thursday | 11-12 | Luping |
Thursday | 1-3 | Li |
Thursday | 4-5 | Kim |
Thursday | 9-12 midnight in FL B11 | Kim |
Friday | 2-3 | James |
Section | Time | Place |
B01 | W 9-9:50 | FLB11 (zoo lab) |
B02 | W 10-10:50 | FLB11 (zoo lab) |
B03 | W 12:00-12:50 | FLB11 (zoo lab) |
B04 | W 1:00-1:50 | FLB11 (zoo lab) |
B05 | W 2:00-2:50 | FLB11 (zoo lab) |
B06 | W 8-8:50 | FLB11 (zoo lab) |
B07 | W 3:00-3:50 | FLB11 (zoo lab) |
B08 | W 11-11:50 | FLB11 (zoo lab) |
B09 | W 10-10:50 | FLB17 (garden lab) |
B10 | W 9-9:50 | FLB17 (garden lab) |
B11 | W 11-11:50 | FLB17 (garden lab) |
What this course is about
This course covers fundamental programming concepts and techniques of
broad applicability. Specific topics include file input and output,
dynamic memory allocation, abstract data types (ADT's), specification
and implementation of selected ADT's including bags, queues, and stacks;
recursion, sorting, searching, and an introduction to the analysis of
algorithms.
C++ will be used as the implementation language throughout the course. Certain relevant features of C++ will be pointed out as we go along. However, this is not a course about C++. In particular, you may need to develop the necessary facility in certain features of C++ through additional self-study. The homeworks and labs are intended to facilitate this process.
Recommended background
You should have programming experience in a high-level procedural
language like C/C++ or Java at the level of CS 1005 or CS 100X.
Approximate Schedule of Topics
Note: some deviations from this schedule may occur.
Any updates will appear only at http://www.cs.wpi.edu/~alvarez/CS2005/B99/.
The downloadable materials provided below complement the lectures,
but are by no means intended to replace them. Students are responsible
for all material covered in the lectures also.
Certain links may become available only shortly before the
corresponding topics are addressed in the lectures or labs.
Week |   Reading / Assignments (textbook) |
Topics | Materials
PowerPoint slides:
|
Oct. 28-29 | section 1.1 sections 2.1-2.3 |
Abstract data types
C++ classes |
PowerPoint slides
|
Nov. 1 - 5 | sections 2.4-2.5 chapter 3 section 1.2 sections 4.1-4.4 appendix F HW1 (due by 5 pm, Nov. 5) Solution to HW1: |
Input/output streams
Operator overloading The List ADT Pointers Dynamic memory Dynamic arrays Dynamic classes |
PowerPoint slides
|
Nov. 8-12
Test 1, Nov. 11 |
chapter 5
HW2 (due by 5 pm, Nov. 12) |
Linked lists Running time analysis LL vs. dynamic arrays |
PowerPoint slides
|
Nov. 15-19 | chapters 6, 7, 8, 9 | Template functions Template classes Stacks Queues Recursion |
PowerPoint slides
|
Nov. 22-23 | chapter 10 | Binary trees | PowerPoint slides
|
Nov. 29 - Dec. 3
Test 2, Dec. 2 |
chapters 10, 12
appendix F Langsam et al, 7.2 Test 2 Practice Problems
HW4 (due by 8 pm, Dec. 3) |
Binary tree toolkit AVL trees Binary search Complexity analysis |
PowerPoint slides
|
Dec. 6-10 | chapters 12, 13
section 14.3 Lab 5
HW5 (due by 5 pm, Dec. 10) |
Hash tables Open addressing Quadratic probing Complexity analysis O(n2) sorting O(n log n) sorting Derived classes |
PowerPoint slides
|
Dec. 13-17
Test 3, Dec. 16 |
chapter 15 | Graphs |