The teaching assistant for this course is Mani Sundaram, office 15 CN,
373-3824. His e-mail is mani@ccs.neu.edu .

The grader for this course is Akochi Agunwamba. His e-mail address
is a5g6u7n8@ccs.neu.edu.
Please do not e-mail him for hints or help on the labs, write or
talk to Sergey or Mani instead. Akochi will answer your questions
on the status of your homework.

Here is the short sylabus for this class.
The detailed sylabus will be in the class packet, available
at the bookstore.

It is time to choose your Course Project.
For those of you who decide to do an arcade game, here is the demo code
for controlling objects in the graphics window. In the first example
the mouse pointer is used to control a mote on the screen, the other
two deal with keyboard arrows (and other keys). For the latter you
need to an extended version of the emulator,
ct_emu_vc_plus.zip on a PC,
or the file "ct_kbd.h" found in the Project Demos:Keyboard I and
Project Demos:Keyboard II folders on the Mac. See
changes.txt for the description
of the function int KeyDown() that polls the keyboard
and returns the code of the key currently held down. See the following
demos for usage.

Look at the solutions of the
previous midterm.
It was built around the problem that I started talking about
on Friday during the review lecture. The midterm was followed
by this extra assignment in
word counting, with this pre-processed text
fragment for testing.

You can have a look at the class materials
from the previous time I taught this course.

Notice the use of processor directives #ifndef ... #endif in the
header files. Read about these and other fundamental way of managing
a multi-file program here. Also,
see the C++ tips under Local Links below.

It is important that you understand how this example works.
The entire program is available in folder "ariadne" in the class directory
on Ambassador.

Look at the code for a self-expanding table class of
records (name, value). Then look at the self-expanding
template table class. The so-called
vector class of the Standard Template Library, described in Budd's
text, is based on similar ideas.

Finally, this the implemetation of
QuickSort, with the text reference.
Lecture notes on Binary Search and QuickSort will be posted shotly.

If you would like to work on a PC and are feeling adventurous,
have a look at my
emulator of some basic CoreTools functionality. I tried it with Visual C++
5.0 and 6.0, as well as with Borland C++ 5.0. It was reported
that my project files caused crashes. Therefore you need to create your own
projects. Basically you need to
1. Create a new empty Win32 Console Application project.
2. Add my files manually to it.

A more detailed detailed description is given in the HOWTOs below.

A preliminary version of the CT emulator Manual
list is available, thanks to Alexander Chervinsky.
A more detailed version is in the works. In the meantime read and run
this main_test.cpp,
which is a haphazard medley of various undocumented tests.
Source files:

Note: This is not an official release of CoreTools for PC,
and you should not count on much support.

You can (and should, when in doubt about the syntax of some CoreTools
function) look at the original Macintosh
CoreTools sources (authored by Prof. Rasala,
Prof. Proulx and Prof. Fell). The source is the best documentation,
or, as Obi-van Kenobi used to say, "Use the Source, Luke!".

The syllabus and the class schedule are available on Ambassador
(the CCS Systems Mac file server), in the
Course Directories:COM 1101:Students:Bratus
folder.

You are expected to read a lot of these texts on your own. Lippman and
Lajoie's book is also intended to serve as a reference in C++ for you.

Beyond the textbooks:

My favorite C++ reference (you can order it from Barnes & Noble) is
Paul J. Lucas, The C++ Programmer's Handbook,
Prentice Hall,
only 130 pages, has no "padding", but covers almost all
essential aspects of the language. Unfortunately, its
doesn't cover STL.

Bjarne Stroustrup, The C++ Programming Language,
Addison Wesley, now in 3rd edition.
Bjarne Stroustrup is the author of the original version of C++.
I recommend acquiring this book if you want to go beyond the
basics of C++. The 3rd edition covers STL and much more.