CS197C Syllabus


Course Description

General information about the course can be found here.

This course is a brief introduction to the C++ programming language for students with a good working knowledge of Java. Students are expected to have edlab accounts.

More specifically, We will be covering most of the features of the C++ language. Some of the topics we will cover include C++ datatypes, object-oriented features, libraries (the STL), memory management, and some advanced topics.

Important Note: Although this course is only one credit and only meets for eight weeks, it is more on the order of a "boot-camp" course rather than a "seminar" course, and as such will be difficult for the unprepared. This is much more a property of the course material rather than my teaching style - learning C++ consists of not only learning a new programming language, but learning a programming language with a huge number of features and a programming model that is lower-level (i.e., closer to the machine) than many of you may be used to. You will also have to learn to use a number of tools such as make and gdb that you may not have been exposed to - some of these will be vital if you are to successfully complete the assignments.


Pre-requisites

CS121 and CS187 or permission of instructor. More specifically, I expect you to have programmed in some language like C, or Java. You should also have some exposure to some data structures and algorithms in order to able to solve the assignments.

TENTATIVE Schedule

Class #DateTopics
1Jan 28, 2009Introduction, Compilers/Debuggers, Basics
2Feb 4, 2009 Data types + Functions
3Feb 11, 2009Pointers + References
4Feb 18, 2009Classes Basics
5Feb 25, 2009Advanced Class topics - Overloading + Inheritance
6Mar 4, 2009 Pointers Again
7Mar 11, 2009Standard Template Library (vectors+queues+stacks+maps)
8Mar 25, 2009 C++ Advanced topics + Conclusion

Grading


Policies and Procedures


Marc Cartright

This is taken from Nilanjan Banerjee's syllabus from Spring '08, with minor modifications by Marc Cartright