EECS 211 - Fundamentals of Computer Programming II
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
REQUIRED TEXTBOOK: Deitel & Deitel C++ How to Program, 9th edition Prentice Hall; ISBN-10: 0133378713; ISBN-13: 978-0133378719
COURSE COORDINATOR: Prof. Larry Henschen
COURSE INSTRUCTOR: Prof. Wei-Chung Lin (Fall), Nan Jiang (Spring)
PREREQUISITES: EECS 110, 111 or any knowledge of any programming language
DETAILED COURSE TOPICS:
- 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