CPSC 225 Intermediate Programming Fall 2005

CPSC 225 Syllabus

 AssignmentsImportant Dates

Week 1: 8/29-9/2

Topics: course mechanics; overview and introduction; basic program structure, conditions and loops, subroutines and functions

Reading: Savitch ch 1-3 (Wed)
Plan to do the readings before coming to class, so that class time can be spent on addressing questions and trickier topics.


homework #0: see announcements
due W 8/31
homework #1: Introduction to C++
due W 9/7 at the start of class
(partial solutions)

Week 2: 9/5-9/9

Topics: parameter passing, overloading functions; arrays; strings

Reading: Savitch ch 4 (Mon), 5 (Wed), 9 (Fri)


  • refparams.cc (applications of reference parameters)
  • paramtest.cc (self-test for parameter-passing techniques)
  • array.cc (arrays-as-parameters, multidimensional arrays)
homework #2: Functions and Parameters
due M 9/19 at the start of class
(partial solutions)

Week 3: 9/12-9/16

Topics: files and streams

Reading: Savitch ch 12 (Fri)


  no class Mon 9/12 and Wed 9/14, no lab Thu 9/15 (away at conference)

Week 4: 9/19-9/23

Topics: classes, separate compilation, makefiles; object-oriented programming and abstract data types; ADT Stack & Queue

Reading: Savitch 6.1-6.2, 7.1-7.2, 11.1 (Mon)
For 6.1 (structs), you should read enough to understand the meaning of a struct if you encounter one in a program but we won't dwell on creating or using them since classes can be used instead.


homework #3: Random Writer
due W 9/28 at the start of class

Week 5: 9/26-9/30

Topics: array-based Stack/Queue; operator overloading, friend functions

Reading: Savitch ch 8 (Wed)


homework #4: Tetris
due W 10/12 at the start of class
  review session
Thu 9/29 4:30pm
(review information)

Week 6: 10/3-10/7

Topics: pointers and dynamic memory allocation

Reading: Savitch 10.1-10.2 (Wed)


  midterm #1
in class Mon 10/3
(solutions - PDF)

Week 7: 10/10-10/14

Topics: pointers and dynamic memory allocation; copy destructors, destructors, assignment operators; growable-array Stack & Queue

Reading: Savitch 10.3 (Wed)


  no class Mon 10/10 (fall break)
homework #5: Maze Class
due W 10/19 at the start of class

Week 8: 10/17-10/21

Topics: linked lists

Reading: Savitch 17.1 (Mon)


final project groups
due Mon 10/17 at the start of class
homework #6: PriorityQueue
due W 10/26 at the start of class
final project specifications
due Fri 10/28 at the start of class

Week 9: 10/24-10/28

Topics: variations of linked lists, Stacks and Queues with linked lists, program/class design

Reading: Savitch 8.2, 17.2 (Wed)


homework #7: Maze Solver
due W 11/2 at the start of class
final project design
due Fri 11/11 at the start of class
(design meeting no later than Mon 11/7)

Week 10: 10/31-11/4

Topics: class design, inheritance and polymorphism

Reading: Savitch ch 14 (Wed)


homework #8: Image Processing I
due W 11/9 at the start of class

Week 11: 11/7-11/11

Topics: inheritance and polymorphism, templates, recursion

Reading: Savitch ch 15 (Mon), ch 16 (Wed), ch 13 (Fri)


homework #9: Image Processing II
due W 11/16 at the start of class
review session
Thu 11/10 5pm (new time!)
(review information)
  midterm #2
take home due Mon 11/14 at the start of class
(solutions - PDF)

Week 12: 11/14-11/18

Topics: recursion, trees, binary trees

Reading: Savitch ch 13 (Mon), 17.4 (Fri)


final project
due Fri 12/9 5pm
homework #10: Recursion
fractals due T 11/22 5pm (or before you leave for Thanksgiving break, whichever is first)
tetravex bonus due F 12/2 at the start of class

Week 13: 11/21-11/25

Topics: implementing binary trees

Reading: Savitch section 17.4 (Mon)


  no class Wed 11/23 or Fri 11/25, no lab Thu 11/24 (Thanksgiving break)

Week 14: 11/28-12/2

Topics: working with binary trees, binary search trees



bonus homework: Trees
due Mon 12/12 5pm (handing in sooner is encouraged)

Week 15: 12/5-12/9

Topics: debugging, bringing it all together

Reading: testing/debugging handout



Reading Period & Exams: 12/10-12/16

  review session
Mon 12/12 3pm
(review information)
super deadline
no work accepted after Wed 12/14 11:30am
final exam Wed 12/14 8:30-11:30am

Valid HTML 4.01!