CS A220 Course Schedule and Homework


WEEK 1: 1/16 - 1/18

Lecture 1: C++ vs. C, data-oriented vs. procedural languages, chess example
Lecture 2: "class" syntax, private data, object-oriented design, in-class: "player" object

Read chapter 1, review structs from CS1

WEEK 2: 1/23 - 1/25

Lecture 3: In-class: continue "player" object; constructor syntax, overloading
Lecture 4: Cancelled (Thursday, January 25th)

Read chapters 2-3.

WEEK 3: 1/30 - 2/1

Lecture 5: In-class: write "rational"; operator syntax. Design: independent of application, portability, leanness.
Lecture 6: In-class: add lowest_terms (private member), clean up output, const syntax

HW#1: Programming project 3.2 (complex numbers) due Tuesday 2/6.

WEEK 4: 2/6 - 2/8

Lecture 7: Design: language/UI independence, printing/parsing with strings.
Lecture 8: In-class: finish rational printing/parsing, intro to string class.

Read about pointers/new/delete in Chapter 7.
HW#2: Complex number printing/parsing due Tuesday 2/13.
You should also turn in a description of your proposed individual semester project before 2/15.

WEEK 5: 2/13 - 2/15

Lecture 9: In-class: first cut at string class, use for "print" and "parse".
Lecture 10: In-class: discuss dynamic memory, leaving "resize" function as HW.

Read 4.1-4.3 of the book (abstract data types/arrays).
HW#3: Smart (resizable) string object due Tuesday 2/20.

WEEK 6: 2/20 - 2/22

Lecture 11: In-class: discuss container classes of various types (stack, list, array).
Lecture 12: In-class: work on resizable array of strings.

Read 4.6 (stacks).
HW#4: Array of strings object due Tuesday 2/27.

WEEK 7: 2/27 - 3/1

Lecture 13: Discussion of stack implementation, "dc", intro. to group project.
Lecture 14: Start semester project in earnest, discussing specific classes, etc.

Review the notion of recursion in Chapter 6.
HW#5: "dc" stacking desk calculator due on Tuesday 3/6.

WEEK 8: 3/6 - 3/8

Lecture 15: Group project (and for all class meetings starting after spring break)
The midterm exam is Thursday, March 8th

Read Chapter 13 (trees).

WEEK 9: 3/20 - 3/22

Withdrawal deadline is Friday, March 23rd

Read Chapter 10 (object-oriented design).

WEEK 10: 3/27 - 3/29

Design of your individual semester project is due Thursday 4/5.

WEEK 11: 4/3 - 4/5

Read Section 12.6 (hash tables).

WEEK 12: 4/10 - 4/12

Read handout on exception/error-handling (throw and catch).

WEEK 13: 4/17 - 4/19


WEEK 14: 4/24 - 4/26

"Beta version"/testing-plan for individual semester project is due Tuesday, 4/24.

WEEK 15: 5/1 - 5/3

Thursday, May 3th is the last day of class

Final release of individual semester project due 5/3.