CPSC 225 Intermediate Programming Spring 2007

CPSC 225 Syllabus

 AssignmentsImportant Dates

Week 1: 1/15-1/19

Topics: course overview and introduction; design recipe; basic C++: program structure, conditionals, loops, functions, I/O, ...

Reading: Savitch ch 1-3 (read during first week)
Plan to do the readings before class on the day listed, so that class time can be spent on addressing questions and trickier topics.



lab #1: Nuts and Bolts programming assignment #1
Natural Prestidigitation
due Thu 1/25 at the start of lab

Week 2: 1/22-1/26

Topics: designing programs; C++: parameter passing, function overloading, arrays

Reading: Savitch 4.1-4.2 (Mon), ch 5 (Wed)



lab #2: Algorithms and Arrays programming assignment #2
Sudoku Solver
design due Tue 1/30 5pm

Week 3: 1/29-2/2

Topics: files and streams; strings; commandline arguments; classes; separate compilation and makefiles

Reading: Savitch 9.1-9.3, 12.1-12.2 (Mon), 6.2, 7.1-7.2, 11.1 (Wed)



  • copy (commandline parameters, files, streams, reading individual characters, streams as function parameters)
  • copy, version #2 (more with streams as function parameters, the ( condition ? value1 : value2 ) syntax)
  • dice class (class declaration, header file)
  Sudoku Solver
final program due Mon 2/5 at the start of class
lab #3: Bug Hunt  

Week 4: 2/5-2/9

Topics: classes; separate compilation and makefiles

Reading: no new reading



  programming assignment #3
design due Thu 2/8 5pm
lab #4: Classes and Objects  
final program due Thu 2/15 at the start of lab

Week 5: 2/12-2/16

Topics: working with arbitrarily large collections of things: pointers and dynamically-allocated memory; exam

Reading: Savitch 10.1-10.2 (Mon)



  • pointers (pointers, dereferencing, pointers as parameters to functions)
lab #5: Pointer Fun and Class Design    
    midterm #1
in-class part Fri 2/16
take-home part due Thu 2/22 at the start of lab
exam review information
(solutions, in-class part)

Week 6: 2/19-2/23

Topics: dynamically-allocated arrays; linked lists

Reading: Savitch 17.1 (Mon)



lab #6: Linked Lists    

Week 7: 2/26-3/2

Topics: linked lists; designing collections classes; dynamically-allocated memory and classes

Reading: Savitch 10.3 (Fri)


  programming assignment #4
Darwin's World
design due Thu 3/8 5pm
lab #7: Subtleties of Assignment  

Week 8: 3/5-3/9

Topics: dynamically-allocated memory and classes; stacks and queues

Reading: Savitch 17.2 (Wed)



  • Vector (Vector ADT, implementing collections classes, classes with dynamically-allocated memory)
lab #8: SList ADT  
spring break


Week 9: 3/19-3/23

Topics: collections, stacks and queues

Reading: Savitch 17.2 (Wed)


  programming assignment #4
Darwin's World
supporting implementation due Thu 3/22 at the start of lab
lab #9: Maze Solving programming assignment #4
Darwin's World
world setup due Thu 3/29 at the start of lab
  no class Fri 3/23

Week 10: 3/26-3/30

Topics: implementing stacks and queues; templates; class hierarchies and inheritance

Reading: Savitch 17.2 (Mon), 16.1-16.2 (Thu), 14.1 (Fri)


  • StackLL (Stack ADT, implementing collections classes, classes with dynamically-allocated memory, linked lists)
  • BankAccount (program design with inheritance)


lab #10: Templates programming assignment #4
Darwin's World
final program due Thu 4/5 at the start of lab

Week 11: 4/2-4/6

Topics: inheritance, polymorphism, abstract classes

Reading: Savitch 15.1 (Mon); 14.2*, 15.2 (Wed)
* you can skip the parts on "Protected and Private Inheritance" and "Multiple Inheritance" at the end of section 14.2


lab #11: Follow-the-Leader programming assignment #5
design due Thu 4/12 at 5pm

Week 12: 4/9-4/13

Topics: inheritance; trees; exam

Reading: Savitch 17.4 (Wed)


  • Critters (program design with inheritance)
lab: work on Photoshop design  
    midterm #2
in-class part Fri 4/13
take-home part due Thu 4/19 at the start of lab
exam review information
(solutions, in-class part and take-home part)

Week 13: 4/16-4/20

Topics: trees

Reading: Savitch 17.4 (Mon)



lab #12: 20 Questions programming assignment #5
final program due Tue 5/1 at 5pm

Week 14: 4/23-4/27

Topics: binary trees; recursion

Reading: Savitch ch 13 (Wed)



  • BinaryTree (binary tree class and implementation)
  • Recursion (implementing recursive definitions, recursive solutions to problems)
lab #13: Fractals  

Week 15: 4/30-5/4

Topics: recursion; wrapup

reading period


super deadline
no work accepted after Mon 5/7 10pm
final exam
Mon 5/7 7-10pm
exam review information

Valid HTML 4.01!