Course Syllabus, C++ Programming - Intermediate


This page last updated on: Mar. 31, 2002


Contents:


General Information

Course Name

C++ Programming: Intermediate
Certificate: C++ Prog 712 A
EDP: 59137 022

Instructor

Cliff Green

Instructor Contact Info

E-mail: cliffg@codewrangler.net
Phone: 206-363-9852 (7 pm - 9 pm), 425-867-7234 (1 pm - 4 pm)

Note: I occasionally travel out of town or have work project commitments, so phone call and e-mail replies might take an extra day or two during those periods.

Term

Spring 2002, Apr. 1 - Jun. 10, Mondays 6:00 - 9:00 pm, UW Main Campus, Mary Gates Hall, room 242
Note: no class on May 27 (official holiday)

Textbooks and Other C++ Resources

The required textbooks for this course are: Two highly recommended textbooks for this course (quite a bit of lecture material will be taken from both of them): Other C++ resources include these recommended books and links: Other C++ Resources

Course Requirements

The minimum requirements for passing the course are:

Description, Prerequisites, and Objectives

This course will have the following main areas of concentration:
  1. Continue learning the syntax, features, and capabilities of C++. This includes discussing the advantages and disadvantages of various features, and when to use them.
  2. Continue learning object-oriented design and generic programming concepts. To gain the greatest benefits from using C++ as a programming language, a solid understanding of object-oriented and generic design principles is necessary. The introductory course provides the basic concepts of OOD, and the intermediate course will start applying these concepts in more depth, and introduce various design idioms and design patterns.
  3. A focus on both class design and class usage. The introductory course emphasizes class usage, with most of the class design and declarations provided as part of the assignment. The intermediate course will delve deeper into the techniques and issues associated with effective class design. There will be a continued emphasis on using pre-written C++ class libraries, particularly the standard C++ library, useful for quickly and effectively developing applications.
  4. Learn selected design patterns and how to apply them. Design patterns are becoming a major force in software design, and this course will introduce students to a selected set of design patterns and how to use them in solving design problems.
Effective C++ class design and implementation tends to partition C++ programmers into two groups - the application developers who use C++ class libraries to solve application level problems and objectives, and the developers who design and program the class libraries. Using C++ class libraries tends to simplify and speed application-level development compared to traditional C programming methodologies, while designing and implementing the class libraries themselves tend to be harder than the typical C programming approaches. The introductory course provides basic design and implementation techniques of class library development, while also concentrating on the benefits and techniques of using C++ libraries from the application level. The intermediate and advanced C++ courses will delve deeper into the more complex aspects of class library design and implementation

A number of software development side-topics will be discussed as time allows, including testing techniques, exception handling strategies, portability issues, design tools, software components, and software development methodologies.

Prerequisites

Familiarity with most of the C++ language fundamentals and features is expected. There will be review of basic C++ topics as appropriate, but the reviews will be minimal and targeted to various topics. Specific prerequisites include that the student: Access to a C++ compiler supporting templates and C++ exceptions is required, as these features will be used in this class. All input and output will be character and text based, so a windowing environment is not required.

Objectives


Grading and Assignment Info

80% of the grade will be from the course project and assignments, and 20% from tests. The emphasis of this class is on the project and assignment work, since it is a C++ programming course. There will be two tests, one at mid-term and one final. The tests will be relatively simple and short, aimed at verifying you are the true author of the assignments, and covering the basic concepts from the lectures.

Important -  Other Grading and Assignment Info


Administrative and Legal Info

The following page contains information on classroom closure situations, assignment originality and plagiarism, and disability accomodations: Administrative and Legal Info


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