CSIE 149528

Fall 2011

Object-Oriented Programming
Announcements |  General information |  Schedule

Announcements: (12/27 update)

Instructor:

Teacher Assistant (TA):

Textbook

Reference Documents:

Course Description:

Topics include:

  1. C++ Object Model
  2. Classes and Objects
  3. Constructors and Destructors
  4. Inheritance
  5. Virtual Functions and Polymorphism
  6. Operator Overloading
  7. Exceptions
  8. Generic Programming
  9. Standard Template Library
  10. Term Project

Prerequisites:

Grading policy

  1. Homework 40%
  2. Midterm Exam 20%
  3. Final Exam 20%
  4. Attendance and quizzes (出席點名數次+小考4次) 20%

Examinations:

Schedule(Return to top of page)

Week Course Material Covered Reading / Homework / Test
1 (9.12-9.16, 1 hr) How to solve it
Note︰中秋節放假 (9/12)
How to solve it
TCSE paper
2 (9.19-9.23, 3 hrs) How to solve it
Ch 1: C++ Basics (console input/output)
Example: applying how to solve it (math vector in C)
Ch 6: class - member function, data member, public, and private
 dot product of vectors
作業批改原則以及繳交上傳方式 
HW1
dot product of vectors - Vector version 1
3 (9.26-9.30, 3 hr) Ch 6: class - member function, data member, public, and private
Ch 7: constructors and destructors
Ch 10: dynamic memory allocation and deallocation
dot product of vectors - Vector version 2
dot product of vectors - Vector version 3
runtime memory model
4 (10.03-10.07, 2 hrs) Ch 6: class: Encapsulation
Ch 4: Parameters and Overloading
Note︰停課一次(10/05)

dot product of vectors - Vector version 4

HW2

5 (10.10-10.14, 1 hrs) Ch 4: Parameters and Overloading
Note︰雙十節放假 (10/10)
unit testing
6 (10.17-10.21, 3 hrs) Unit testing with CppUnitLite

Refactoring the vector program
 

dot product of vectors - Vector version 5 (with unit tests)
HW1_Solution
HW3
dot product of vectors - Vector version 6 (refactored into four files)

7 (10.24-10.28, 3 hrs) Ch 8: Operator Overloading, Friends, and References
Ch 9: Strings
Design for testability
Operator overload and Design for testability
Vector version 7 (Design for testability)
Vector version 8 (testing const member functions)
HW4
8 (10.31-11.04, 3 hrs) Matrix and vector
Ch 12: Streams and File I/O
Ch 10: Pointers and Dynamic Arrays
Matrix and Vector: version 1
Matrix and Vector ppt
HW2 and HW3 Solution
9 (11.07-11.11, 3 hrs) Midterm Exam: Date: 11.7 (Mon) 8:30 am ~ 9:45 am
   covers material up to 11/02.
   Most problems will be programming problems.
   30% of the marks will be from homework.
Matrix and Vector, version 2
10 (11.14-11.18, 3 hrs) Ch 16: Templates
Ch 7: static member functions and stl vector
design for testability: exception
University 1
Classes, responsibilities, and collaborations
UML
Matrix and Vector, template, factory, and exception handling
HW5
University version 1
11 (11.21-11.25, 3 hrs) University 1
UML
University ppt
12 (11.28-12.02, 3 hrs) University 2, 3
Classes, responsibilities, and collaborations
University version 2
HW6
University version 3
13 (12.05-12.09, 3 hrs) From object-based to object-oriented: Sorting
Ch 14: Inheritance
Sorting
HW7
14 (12.12-12.16, 3 hrs) Ch 15: Polymorphism and Virtual Functions
 
HW8
15 (12.19-12.23, 3 hrs)

Ch 20: Patterns and UML

Design Pattern: Strategy
C++ STL principle
16 (12.26-12.30, 3 hrs) Ch 19: Standard Template Library
University 4 wrap-up
Code: University 3 (iterator)
Code: University 4
PPT: University 4 (update)
HW9
17 (1.02-1.06, 3 hrs) Linkage to Software Engineering: Introduction to Scrum Introduction to Scrum
18 (1.09-1.13, 1 hr) Final Exam Date: 2012/1/9 (Mon) 8:30 am ~ 10:00 am
   covers all materials this semester.
   Most problems will be programming problems.
   30% of the marks will be from homework.