CIS 330 C/C++ and Unix

Winter 2008 Syllabus


[ CIS 330 C/C++ Home Page | Assignments | Announcements ] Last updated 2008/03/14 11:14:53

       Week        Topics Reading
Week 1
1/9 & 1/11
  • Introduction and Overview
  • Differences between C++ and Java
  • Compiling a C++ program
  • Header Files
  • C++ Input and Output
  • Other libraries
C++ for Java Programmers, Chapters 0, 1, 9 and 12
A paper by Dennis Ritchie on the development of C
A bit of philosophy and history of C++ from Stroustrup's book.
A Tour of C++ from Stroustrup's book.
Selected lecture notes
Week 2
1/16 & 1/18
  • Programming Style
  • Preprocessor Directives
  • Arrays, Pointers, and References
  • Constant objects
C++ for Java Programmers, Chapters 2 and 3
A tour of the standard C++ library from Stroustrup's book.
Operator precedence table
Selected lecture notes on pointers and arrays
Week 3
1/23 & 1/25
  • More on Arrays and Pointers
  • Dynamic heap allocation
  • Function Pointers

C++ for Java Programmers, Chapter 11
Chapter 1 (Style) of The Practice of Programming (on reserve in Science Library)
Right-left rule for declarations
Example args.c
Example istackTest.c, istack.h istack.c
Week 4
1/30 & 2/1
  • C++ Classes
  • Constructors and Destructors
  • Operator Overloading
  • Copy Constructors and Assignment
  • Coding a string class
C++ for Java Programmers, Chapters 4 and 5
Selected lecture notes on C++ classes and operators
Example MyString.h and MyString.c and stringtest.c
Week 5
2/6 & 2/8
  • Review for midterm
 
Wednesday, February 13 Midterm Exam
Week 6
2/13 & 2/15
  • Unix makefiles
  • Unix shells: sh, ksh, csh, tcsh
  • Programming in the shell
  • Unix tools: diff, sed, awk, sort, tar, cscope
  • Version control - SCCS and RCS

Selected lecture notes on makefiles
Selected lecture notes on shells and tools
GNU make overview and manual.
Open source version of cscope
Week 7
2/20 & 2/22
  • Inheritance
  • Virtual Functions
  • Access control - public, protected, private, friend
C++ for Java Programmers, Chapter 6
Selected lecture notes on inheritance
Example Shape.h and shapetest.c
Example IntStack.h and Array.h, stacktest.c
Week 8
2/27 & 2/29
  • Templates
  • Namespaces
C++ for Java Programmers, Chapter 7
Template tutorial
Namespace tutorial
Selected lecture notes on templates
Example sort.h, sorttest.c, Set.h and settest.c
Week 9
3/5 & 3/7
  • Standard Template Library
  • Exceptions
C++ for Java Programmers, Chapters 8 and 10
Exception tutorial
SGI documentation for STL
GNU manual pages for C++ standard library
Documentation for modules in C++ standard library
All GNU documentation for C++ standard library
Selected lecture notes on exceptions
Example IntArray.h, exceptiontest.c
Week 10
3/12 & 3/14
  • Loose ends
  • Miscellaneous topics (e.g., variable argument lists)
  • Review

Interview with Bjarne Stroustrup: The Problem with Programming and More Trouble with Programming
Selected lecture notes on miscellaneous topics
Example vargs.c
Practice questions for the final and answers.
Tuesday, March 18, 10:15 AM Final Exam


datkins@uoregon.edu

Last updated 2008/03/14 11:14:53