CSC 076N

C++ Programming Language

 

Weekly Outline (Tentative)

  1. (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.
  1. (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. 
  1. (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

  1. (2/26)  Arrays.  Introduction to pointers.  Formatting of output, using iostream.h and iomanip.h; the stream manipulator setw().  The Vector class.   Examples.
  1. (3/5)  Arrays and vectors continued.  String processing.  The String class. 
  1. (3/12)  Programmer defined functions.  Value versus Reference parameters.   Local objects.  const parameters.  Templates.  Overloading functions using namespaces and the scope resolution operator.
  1. (3/19)  Introduction to records (struct).  Input files and peek() member function.  MIDTERM QUIZ.
  1. (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.
  1. (4/2)  Dereferencing pointers to records.  Adding I/O facilitators to classes.  Auxiliary (non-member) operators.  Operator overloading.  Header and implementation files.
  1. (4/9)  Incorporating overloaded operators into class.  Command line arguments.  Creating a complex number number class.
  1. (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

  1. (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. 
  1. (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.
  1. (5/14)  FINAL QUIZ

Back to CSC 076N Home Page