CATALOG DESCRIPTION:  Object-oriented programming, classes and data hiding, dynamic object construction and destruction, derived classes and inheritance, virtual functions; functions, call by value/reference, overloading; abstract data types; standard template libraries; exception handling; introduction to UNIX, file processing, process management.

  • This course is a required Core course in the CS curriculum in McCormick and Weinberg

Both sections of this course have required discussions that are on Tuesday and can be either 1- 1:50  or 2- 2:50 (check with instructor).

REQUIRED TEXTBOOK: Kip R. Irvine, Assembly Language for x86 Processors, 7th edition, Prentice Hall, 2014 (Fall), Deitel & Deitel C++ How to Program, 9th edition Prentice Hall; ISBN-10: 0133378713; ISBN-13: 978-0133378719 (Winter & Spring)

COURSE INSTRUCTOR: Wei-Chung Lin (Fall) Sara Owsley Sood (Winter, Spring)

COURSE COORDINATOR: Prof. Larry Henschen

COURSE INSTRUCTOR:  Prof. Wei-Chung Lin (Fall), William Hendrix (Winter), Nan Jiang (Winter), Jonathan Gemmell (Spring)

PREREQUISITES: EECS 110, 111 or any knowledge of any programming language


  • Introduction to software engineering.
  • Basic data types, variables, computer arithmetic, expressions, parentheses.
  • Basic I/O – cout, cin.
  • Introduction to classes – defining ones own data types
  • Flow of control – sequential, test-and-branch, and iteration. Boolean expressions.
  • Arrays, pointers, and strings.
  • Functions: call by value and call by reference, references vs. pointers, stack frames.
  • Function overloading
  • Introduction to classes:
  •         Structures and classes, data hiding and encapsulation.
  • Public and private members, constructors, unions.
    Interface vs. implementation.
    Class destructors and copy constructors, the = operator, deep versus shallow copies.
    C++ operator overloading.
    Heap space, the new/delete operators.
    Inheritance and derived classes, is-a hierarchies and composition of classes.
    Virtual functions and polymorphism.
    Linked list processing: stacks and queues, trees and recursion..
    Introduction to UNIX – processes, file management, redirection and piping, make files.


Varies by instructor