CPSC 427a: Object-Oriented Programming

Michael J. Fischer

Lecture 1
September 2, 2010

About This Course

Where to find information All information about this course is posted on the course website:

http://zoo.cs.yale.edu/classes/cs427/2010a/

There you will find:

The syllabus contains important additional information. Raed it!

Course mechanics

You will need a Zoo course account. Get it now!

You can’t submit work without it.

Submit your assignments on the Zoo using the script in /c/cs427/bin/submit.

I recommend that you buy the book Herbert Schildt, C++: The Complete Reference, 4th edition. It serves as a basic text for C++ as well as a reference manual.

Course Requirements: Homework assignments (~35%), two hour exams (~20% each), and a significant programming project (~25%).

Topics to be Covered

Major Areas

  1. Foundations (basics of objects and classes)
  2. Reusable software design (both language support and design technique)
  3. Programming for reliability
  4. Programming for efficiency
  5. Software toolset and framework design

Course goals - practical

Course goals - conceptual

Kinds of Programming

Two views of programming People program for different reasons.

Programming is …

  1. A means to solve computational problems;
  2. The process of software construction.

Problem solving

Desired properties of programs for solving problems:

Beginning programming courses tend to focus on programs to solve small problems.

Software Construction

Desired properties of software constructed for widespread use:

This course will focus on constructing large-scale software.

Programming in the large

C++ Programming Standards

Three commandments for this course From Chapter 1 of Exploring C++:

  1. Use C++ input and output, not C I/O, for all assigned work.
  2. Don’t use global variables. If you think you need one, ask for help. Your class-design is probably defective.
  3. Test every line of code you write. It is your job to prove that your entire program works. If you submit a program without a test plan and test output, the TA will assume that it does not compile and will grade it accordingly.

Can is not the same as should!

From Chapter 1 of Exploring C++: