Cliff's Teaching Info and Technical Resources

This page last
updated on:

Apr. 22, 2002

Contents and Related Link

Cliff's Non-Technical Web Pages

Overview

I teach UW Educational Outreach / Extension C++ Programming courses one night a week (typically every  quarter except for Summer). I'm currently teaching C++ Intermediate (Spring quarter 2002). The syllabi, lecture notes, assignments, and solutions for each course are available  here as Web pages, as well as common course info, various C++ articles I've written and some miscellaneous technical info.       

All of the solution and general utility code has been compiled without syntax errors or warnings  under Metrowerks CodeWarrior Pro for Windows (version 6.0). As time and access allows, the solution and utility code is also compiled under the latest versions of Microsoft Visual C++, GCC, and any other available compilers. Comments and suggestions are always appreciated, particularly if buggy or non-standard C++ code is found. Extensive effort has been put into making all of the solution code ISO / ANSI C++ standard compliant.

There are links to the common grading / assignment information, C++ resources, compiler tips, and design patterns examples within the syllabi pages and lecture notes, as well as links to each of those areas over in the left portion of this page (yellow cell).


Shared Files and Utilities

I encourage using the general utility classes and functions as provided here:  Utility Classes and Functions .  Another high quality set of libraries that I consistently use throughout my code is from Boost.org: http://www.boost.org/ as well as the Loki library from Andrei Alexandrescu: http://www.moderncppdesign.com/. The utility and solution code has comments in the form  that Doxygen or Doc++ (or similar utilities) can use to produce documentation HTML files:  http://www.doxygen.org/

Soundex source files needed for assignments and two dictionary files that can be used in assignment testing:

  • bigpal.txt - Large palindrome, for testing (provided by Rick Sood, original attribution to Peter van der Linden from "Expert C Programming - Deep C Secrets").
  • dict1.zip - Zip file (81KB, expands to 230KB, 25K+ words) of dictionary words (each separated by new-line).
  • dict2.zip - Bigger zip file (502KB, expands to 1.7MB, 174K+ words) of dictionary words (each separated by space or new-line).
  • money.h - Header file for Money class (illustration only, not to be used in real applications).
  • soundex.c - Implementation file for soundex function (provides 'soundex code' phonetic processing).
  • soundex.h - Header file for soundex function as described above.
 

 C++ Programming: Intermediate

Syllabus, Lecture Notes, Tests, Misc

Assignments

Assignment Solutions

  • aaa.cpp - Implementation file for (placeholder) and (more placeholder) classes
  • aaa.h - Header file for (placeholder) and (more placeholder) classes

C++ Programming: Introduction

Syllabus, Lecture Notes, Tests, Misc

Assignments

Assignment and Exercise Solutions

  • acct.h - Header file for templatized bank account classes
  • acctmain.cpp - Bank account classes application file
  • defdict.txt - Test default dictionary file
  • dict.cpp - Implementation file for Dictionary class
  • dict.h - Header file for Dictionary class
  • pal.cpp - Implementation file for palindrome class
  • pal.h - Header file for palindrome class
  • palmain.cpp - Application for palindrome class
  • parse.cpp - Implementation file for file parsing functions
  • parse.h - Header file for file parsing functions
  • spellchk.cpp - Spell checker application source file
  • spelldoc.txt - Test document file for spell checker app
  • tstdict.cpp - Test driver for Dictionary class
  • tstword.cpp - Test driver for Word class
  • word.cpp - Implementation file for Word class
  • word.h - Header file for Word class

Foundations of Object Oriented Analysis and Design

Syllabus, Lecture Notes, Tests, Misc

Assignments

Assignment Solutions


C++ Programming: Advanced (old - some links not working)

Syllabus, Lecture Notes, Tests, Misc

Assignments

Assignment Solutions

  • pal.cpp - Implementation file for palindrome (using the standard library) assignment
  • point.h - Point classes header file (not published yet)
  • poly.h - Polygon classes header file (not published yet)
  • proxy.cpp - Proxy base, Factory and FactoryMgr classes implementation (not published yet)
  • proxy.h - Proxy base, Factory and FactoryMgr class declarations (not published yet)
  • proxypoint.h - ProxyPoint classes (not published yet)
  • proxypoly.h - ProxyPoly classes (not published yet)
  • spellchk.cpp - Implementation file for the spell checker assignment

This page constructed by Cliff Green, Copyright © 2000-2002.