CSC 076N
C++ Programming Language
Weekly Outline (Tentative)
- (1/29) Overview of the object oriented paradigm. Review of imperative
language constructs and programming structures. Introduction to assignment operator;
preprocessor directives; main(), comments, fundamental types, literals, constants,
declarations, expressions. Introduction to output and the insertion operator << and
cout. Introduction to input and the extraction operator >> and cin.
Construction of first C++ program. if-else statement, switch and break
statements.
- (2/5) Discussions of assignment operation, precedence and associativity.
Increment (++) and decrement operations (--). Compound assignment operations.
Summary of components of C++ program, including header files and compile-link cycle.
Character processing including member functions get() and get(c). The end of
file constant EOF. The ctype library. Introduction to text file processing;
the <fstream.h> library.
- (2/12) Iteration. The while and for
loops. functions; value and reference parameters. Control constructs.
Logical values and operators. bool type, relational operators. The enum
statement. Examples.
(2/19) NO CLASS
- (2/26) Arrays. Introduction to pointers. Formatting of output, using
iostream.h and iomanip.h; the stream manipulator setw(). The Vector class.
Examples.
- (3/5) Arrays and vectors continued. String processing. The String
class.
- (3/12) Programmer defined functions. Value versus Reference parameters.
Local objects. const parameters. Templates. Overloading
functions using namespaces and the scope resolution operator.
- (3/19) Introduction to records (struct). Input files and
peek() member function. MIDTERM QUIZ.
- (3/26) Extending the struct construct to class.
The programmer-defined data type. Information hiding, encapsulation, data
members, member functions. public and private access. Constructor,
inspector, and facilitator member functions. Application to the circle class.
- (4/2) Dereferencing pointers to records. Adding I/O facilitators to
classes. Auxiliary (non-member) operators. Operator overloading. Header
and implementation files.
- (4/9) Incorporating overloaded operators into class. Command line
arguments. Creating a complex number number class.
- (4/16) Implementing linked lists. The friend access
modifier. Nontrivial destructors. Random number generation using rand() and
srand(). Dice simulation. Construction of primitive Stack type. Class
templates.
(4/23)
SPRING RECESS -- NO CLASS
- (4/30) Pointers. lvalues and rvalues. The address operator & and
the indirection operator *. Pointers as parameters. Constant pointers and
pointers to constants. Object-oriented analysis and design. Data abstraction
and the abstract data type (ADT). Casting of parameters and function overload
resolution. Dynamic data types.
- (5/7) Inheritance. The is-a, has-a, and uses-a relationships. Base
class versus derived classes. public inheritance and private inheritance.
Single inheritance versus multiple inheritance. Polymorphism. virtual
member functions. Abstract base classes.
- (5/14) FINAL QUIZ
Back to CSC 076N Home Page