CS368: Learning a New Programming Language
SYLLABUS - Lec 1, Spring 2015

Note: this syllabus is tentative and subject to change - make sure to check it regularly.

The readings are from the suggested textbooks. CJP = C++ for Java Programmers, CP = C++ Primer

Week  
1 (1/21)
Topics: course information, history, high-level differences, pros of C++, simple C++ program
Read: CJP: Ch. 0
CP: Ch. 1 (p. 1 - 10)
Other: course information handout, example: Simple C++ Program
2 (1/28) 
Topics: constants, enumerations, structures, arrays
Read: CJP: Ch. 1, Ch. 2 (2.1, 2.2)
CP: Ch. 2 (2.1, 2.2, 2.6), Ch. 3 (3.3, 3.5.1, 3.5.2, 3.6)
Other example: cardExample.cpp
3 (2/4) 
Topics: vectors, parameter passing, pointer basics
Read: CJP: Ch. 2 (2.2, 2.3), Ch. 3
CP: Ch. 2 (2.3 - 2.5), Ch. 6 (6.1, not 6.1.3, 6.2, not 6.2.6, 6.3, 6.4, 6.5.1)
Other handouts: Variables, References, Pointers; pointerBasics.cpp
4 (2/11) 
Topics: pointers to structs/classes, arrays, dynamic allocation, pointer caveats
Read: CJP: Ch. 3 (continued)
CP: Ch. 3 (3.5.3), Ch. 6 (6.6)
Other handout: Pointers; P1 due: Friday, 2/13
5 (2/18) 
Topics: abstract memory model, reference variables, passing params to and return values from functions
Read: CJP: Ch. 3 (continued)
CP: Ch.6 (6.1-6.3)
Other handout: C++ Abstract Memory Model / Parameter Passing
6 (2/25) 
Topics: .h and .cpp files, defining classes, multi-file compilation
Read: CJP: Ch. 4
CP: Ch. 7
Other handout: Multi-file Compilation, IntList Example
7 (3/4) 
Topics: makefiles, constructor, member initialization
Read: Makefiles Overview (see link in menu),
CJP: Ch. 4 (continued)
CP: Ch. 7 (continued)
Other Hw due: Monday, 3/2; handout: Defining Classes
8 (3/11) 
Topics: "Big Three" (copy constructor, copy assignment, destructor)
Read: Unix utilities (see gdb and valgrind tutorial links in menu),
CJP: Ch. 4 (continued)
CP: Ch. 7 (continued), Ch. 13 (13.1)
Other Try using gdb (for practice) and valgrind (to fix the memory leaks) on the IntList example code
9 (3/18) 
Topics: operatorX syntax and use, member vs. non-member options (assignment and arithmetic operators)
Read: CJP: Ch. 5
CP: Ch. 14 (14.1, 14.3, 14.4)
Other P2 due: Monday, 3/16; handouts: Operator Overloading, Polynomial Example
10 (3/25) 
Topics: explicit, member / non-member function pairs
Read: CJP: Ch. 5 (continued)
CP: Ch. 14 (continued), Ch. 7 (7.5.4)
Other handout: More Operator Overloading
11 (4/8) 
Topics: overloading <<, friend, overloading relational operators, console I/O, overloading >>
Read: CJP: Ch. 5 (continued), Ch. 9
CP: Ch. 7 (7.2.1), Ch. 14 (14.2)
Other handout: Overloading I/O Operators, P3 due: Thursday, 4/9
12 (4/15) 
Topics: overloading ++ and --, condition states, string class, C strings
Read: CJP: Ch. 9 (continued)
CP: Ch. 14 (14.6), Ch. 8 (8.1), Ch. 3 (3.2, 3.5.4. 3.5.5)
Other handout: Overloading ++ and --, Conditions States, and Strings
13 (4/22) 
Topics: file I/O, manipulators, C I/O
Read: CJP: Ch. 9 (continued)
CP: Ch. 8 (8.2), Ch. 17 (17.5)
Other handout: I/O; P4 due: Friday, 4/24
14 (4/29) 
Topics: templated functions and classes, more template features, containers
Read: CJP: Ch. 7, Ch. 10
CP: Ch. 16, Ch. 9
Other handout: Templates
15 (5/6) 
Topics: iterators, generic algorithms, function objects
Read: CJP: Ch. 10 (continued)
CP: Ch. 11, Ch. 10, Ch. 14 (14.8)
Other handout: STL overview; P5 due: Friday, 5/8
Last Updated: 5/6/2015     ©2015 Beck Hasti