Except for an additional lecture on Tuesday, September 2, all required
lectures will be on Thursdays 12:20-1:10 in Olin Hall 155. We may
schedule optional lectures on Tuesdays pending interest.
The only prerequisite of this course is that you have already taken
one computer science class (such as CS 100). We won't expect you to
know any specific languages, but you should be familiar with
programming concepts (such as i/o, and recursion) and simple data
structures (such as queues, lists, and trees).
The newsgroup cornell.class.cs213, where I will
post announcements and errata. Please feel
free to also use this forum to discuss issues interesting to the class.
Stroustrup, Bjarne. The C++ Programming Language, 3rd
edition. This is the standard reference for C++, written by the
creator of the language. If you keep programming in C++ after this
course, you will definitely want to own this book.
Optional:
Chapman, Nigel. The Late Night Guide to C++. As
Stroustrup's book is more of a reference manual, this may be
easier. However, it is aimed at experienced programmers.
Some of you who want to immerse yourselves in C++ may want to look at
the magazine Dr. Dobbs Journal. This is aimed at the professional
developer, though many of the articles are pretty interesting.
I've also put together a page of Web C++
resources that might come in handy.
The main software for the course is Metrowerks CodeWarrior for the
Macintosh. CodeWarrior 11 is available in all CIT labs that have
machines with the capacity to support it, including Upson B7, MVR G83,
abd Sibley B8. Personal copies of CodeWarrior are available at the
Campus Store. Except when we need to use specific libraries or
facilities unique to the Macintosh or CodeWarrior you may use any
version of C++ that is available to you. However the course staff may
not experience with your particular version and may not be able to
help.
If right now you are wondering, "What is the minimum amount I can do to
pass this course?" drop the class right now. This class is not
required for any degree plan that I know of, and if you just need
hours there are easier ways. That said, your grade will depend on your
proficiency of C++ at the end of the course. How this translates into
points, percentages, averages and curves will remain unspecified.
All homework assignments will be done individually, and will be
designed to be a reasonable amount of work for one person. With your
classmates, feel free to converse about problem solving tactics,
discuss language constructs, and help out with small annoying bugs.
However, any further collaboration is a violation of the Code of
Academic Integrity. Please ask if you are unsure.