CS 9F. C++ for Programmers
Current Schedule (Fall 2014)
- CS 9F: Paul N. Hilfinger, 200A Sutardja Dai
Catalog Description: (1 unit) Introduction to the constructs provided in the C++ programming language for procedural and object-oriented programming, aimed at students who already know how to program.
Prerequisites: Programming experience equivalent to that gained in CS 61A, CS 9B, or ENG 77N.
Course objectives: Students will learn constructs of the C++ programming language sufficient to implement an object-oriented design. In the process of learning the language, they will be applying knowledge of mathematics, science and engineering. As many of their projects require a fair bit of software engineering, they will also be making design decisions (algorithm, data structure, time-vs-space, etc) and considering various implementation trade-offs.
- Fundamentals: Types and Variables; input/output; flow of control; functions, value parameters, and reference parameters; classes, member functions, public and private data, use of interface and implementation files; scope; function overloading.
- Arrays, Strings, and I/O Streams: Indexing; multidimensional arrays; interaction of constructors for container/containee classes; straightforward use of files and string streams.
- Linked Structures: Pointers; new and delete; building and using linked lists and trees; use of iterators; the "this" pointer; copy constructors; destructors; memory allocation and deallocation.
- Class Design: Function and class templates; operator overloading; derived classes; virtual functions; friends.