Instructor: Dr. Lihong Zhang, Faculty of Engineering and Applied Science, Memorial University of Newfoundland, Email: lzhang@mun.ca, Tel: (709) 864-4638, EN-3031
Lectures: Three lectures per week. Mondays, Wednesdays, and Fridays 15:00 – 15:50, all in EN-1054
Office Hours: Tuesdays and Thursdays
Assignment Due Dates (Tentatively): A0 (Sept. 20), A1 (Sept. 27), A2 (Oct. 4), A3 (Oct. 18), A4 (Oct. 25), A5 (Nov. 1), A6 (Nov. 8), A7 (Nov. 15), A8 (Nov. 22)
Labs: 9 lab sessions in EN-3000/3029
Midterm Test (Tentatively): Oct. 16
Evaluation Scheme:
Assignments:
12 %
Midterm exam: 30 %
Final exam: 58 %
Website: The formal D2L-based course website is available at http://online.mun.ca/
Contents:
Review: commands and operators, control structures; functions and variables:
scope, lifetime, storage class, pass-by-value, declaration vs. definition,
privacy; arrays & string; library objects.
Pointers: notation, equivalence of pointer notation to array notation, passing
by pointer, pass-by-reference.
Structures: declaration, definition and usage, pointers to structures, structure
assignment, abstract data types.
Classes: data and function hiding, member functions, access control, objects,
declaration versus instantiation, static members, inline functions.
Object Creation: constructors and destructors, default constructors,
overloading, default arguments, copy constructors, shallow vs. deep copying.
Ad Hoc Polymorphism: conversions, binary operator overloading, unary operator
overloading, friend functions, assignment and subscript overloading.
Inheritance: code reuse, derived and base classes, the protected access control,
code reuse, virtual functions, abstract base classes, multiple inheritance.
Parametric Polymorphism: function templates, signature matching, class
templates, inheritance.
Although not formally taught, examples and assignments will emphasize and
explore such fundamental data structures as arrays, stacks, and queues.
Textbook:
Frank L. Friedman and Elliot B. Koffman, Problem Solving, Abstraction and Design Using C++ (5th Edition), Addison Wesley, 2006, ISBN: 0-321-45005-1. (Note: The textbook is not mandatory. It is specified only as a backup. The lecture notes are the primary resource and are available on the web in a form that may readily be printed.)
Last Modified: Thu., Aug. 29, 2013 (at 16:00) by Lihong Zhang