CS 368 C++ Syllabus

SYLLABUS

This syllabus will be updated as the semester progresses - make sure to check it regularly.

The readings are from the recommended textbook.

Week 1:

Topics: course information, history and high-level differences, simple C++ program, booleans, constants, enumerations
Read: Ch. 0: Introduction, Ch. 1: Basic Types and Control Structures
Links: Lecture 01 notes, simpleProg.cpp,

Week 2:

Topics: structures, arrays, vectors
Read: Ch. 2: Functions, Arrays, Strings, and Parameter Passing
Links: Lecture 02 notes, cardExample.cpp
Program: Program p1 Due Feb 20, 8:00 PM

Week 3:

Topics: variable-references-pointers, parameter passing, pointer basics
Read: Ch. 3: Pointers and Reference Variables
Links: Lecture 03 notes, pointerBasics.cpp

Week 4:

Topics: pointers to structs/classes, arrays, dynamic allocation, pointer caveats
Read: (Ch. 3 continued)
Links: Lecture 04 Notes
Assignment: Homework hw Due Mar 3 10:00 PM

Week 5:

Topics: abstract memory model, reference variables, passing params to and return values from functions
Read: Linked List Review
Links: Lecture 05 Notes; staticVarExample.cpp

Week 6:

Topics: .h and .cpp files, defining classes, multi-file compilation
Read: Ch 4: Object-Based Programming: Classes
Links: Lecture 06 Notes
Program: Program 2 Due Mar 27 8:00 PM

Week 7:

Topics: constructor features: typecasting and explicit, initializer lists, default values for parameters
Read: Ch. 4 (continued)
Links: Lecture 07 notes

Week 8:

Topics:"Big Three" - copy constructor, copy assignment, destructor
Read: (Ch. 4 continued)
Links: Lecture 08 notes; example: IntList.h, IntList.cpp, testIntList.cpp, Makefile
Program: Program 3 Due April 10 8:00PM

Week 9:

Topics: operatorX syntax and use, Member vs. Non-member options (assignment and arithmetic ops), overloading +, *, ++
Read: Ch. 5: Operator Overloading, Unix utilities (see gdb and valgrind links in menu)
Links: Lecture 09 notes

Week 10:

Topics: non-member and member function pair option (<< op),
friend option (relational operators), overloading ++ and --
Read: (Ch. 5 continued)
Links: Lecture 10 notes
Program: Program 4 Due April 24 8:00 PM

Week 11:

Topics: console I/O, overloading >>, file I/O
Read: Ch. 9: Input and Output
Links: Lecture 11 Notes

Week 12:

Topics: string class manipulators, C strings, C formatters, C I/O,
Read: (Ch. 9 continued)
Links: Lecture 12 Notes

Week 13:

Topics:templated functions and classes
Read: Ch. 7: Templates
Links: Leture 13 Notes
Program: Program 5 Due May 10 8:00 PM

Week 14:

Topics: containers, iterators, and algorithms in the Standard Template Library
Read: Ch. 10: Collections: The Standard Template Library
Links: Lecture 14 Notes

Week 15:

Topics: iterators, generic algorithms, function objects
Read: (Ch. 10 continued)
Links: outline