CSC 076N

C++ PROGRAMMING LANGUAGE

 

Syllabus

Text:                          Ira Pohl., "C++ by Dissection" Addison Wesley, 2002.

Dr. Steinmetz's Office Hours:    KRAMER SC 115                    12 - 1           PM                              T R
Office Hours                                                                               5 - 5:30      PM                               T R
                                                                                                  1:30 - 2:30  PM                                W

                                   Voice Mail:       (631) 244-3186
                                   E-mail:              steinmetz@acm.org
                                   Web Page:        http://dr-bill.net

Grading Procedure:    Approximately 8 - 10 Programs                            65%

                                  Midterm quiz                                                       15%
                                  (WEDNESDAY, 3/19)

                                  Final cumulative quiz                                            20%
                                  (WEDNESDAY, 5/14)

Topics

assignment operator; preprocessor directives; main(), comments, fundamental types, literals, constants, declarations, expressions.

output and the insertion operator << and cout.   input and the extraction operator >> and cin.

Formatting of output, using iostream.h and iomanip.h.   const declarations.

assignment operation, precedence and associativity.  Compound assignment operations.  Increment (++) and decrement operations (--).Control constructs.  Logical values and operators. bool type, relational operators.

if-else statement, switch and break statements.  The enum statement.  Examples.

Iteration.  The for, while, and do constructs.  Infinite loops.  Loop invariants.  Examples.

More on character processing and cin member functions get() and get(int).  Using software libraries ctype and math.  File processing using the fstream library.

Programmer defined functions.  Value versus Reference parameters.   Local objects.  const parameters.  Arrays; subscripting and initialization.   Arrays as parameters.  Introduction to Vector class.  Introduction to relationship between pointers and arrays.

parameter passing and vectors.  Application to sorting.   Two-dimensional arrays.

Character arrays and strings.  Null-terminated strings.  Pointer implementation; new() and delete() functions.  The string class.  Function overloading.  Function template's.   namespace and scope resolution.

Multiple file projects.  Preprocessor directive #ifndef.

Introduction to struct and class constructs.  The programmer-defined data type.  Information hiding, encapsulation, data members, member functions. public and private access.  Constructor, inspector, and facilitator member functions.

Class implementation.  Operator overloading.

Random number generation using rand() and srand().  Dice simulation.   Construction of primitive Stack type.  Class templates.

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.

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.

 

Reference

The inventor of the language has published a reference to C++:

Stroustrup, Bjarne, "The C++ Programming Language:Special Edition, 3rd Edition", Addison-Wesley, 2000.

 

Back to CSC 076N Home Page