|
課程摘要 |
第一週 (104/02/24) |
- 課程簡介(b&w),
課程大綱, 參考書籍, 線上資料
- 以 C++ 製作物件導向程式的核心概念: 物件,
抽象化界面, 封裝,
繼承, 多型
- Homeworks:
|
第二週 (104/03/03) |
- 學習目標和 C 程式設計, 資料結構, 演算法有相當的差異: 希望能夠增進軟體系統的重用,
不要像免洗餐具一樣即用即丟, 希望能夠不斷地透過物件的組合來產生新的軟體: 解線性方程式範例
(b&w);
另外也希望不是結果對就好了, 希望程式是能夠很容易看得懂的, 是有 application
domain 的模型在裡面的。
- Abstract
Data Type: (b&w):
[Data Type + Operation] common part independent of
all implementations and instantiations
-
C++ Console I/O (b&w):
iostream: an object oriented I/O library
- Homeworks:
|
第三週 (104/03/10) |
- A
"Better" C Program (b&w),
codes
- C++
Console I/O (b&w):
an object oriented I/O library
- Making
and Using Objects (b&w)
- Objects
and Classes (b&w)
- Homeworks:
|
第四週 (104/03/17) |
- Objects
and Classes (b&w)
- C++
as a better C (b&w)
:
- single line comment
- struct, enum, union tags are type names
- new iostream library (object oriented
usage, type sensitive usage)
- cooperating with stdio (ios::sync_with_stdio())
- variable declaration on the fly
- definition vs. declaration (variable
and function)
- function signature and name mangling
- Homeworks:
- read Chapter 3, 4
- Common
C Programming Errors, local
copy
- Common
C++ Programming Errors , 2nd
link, local
copy
- How
to Debug Programs, local
copy
- Assertion
(b&w)
- detecting
memory leakage, local
copy, src1, src2,
src3
- 星期四 (104/03/19
21:00) 繳交 作業一
(b&w)
(範例執行程式, 測試資料 1,
2, 3),
作業繳交時間順延一週
|
第五週 (104/03/24) |
- C++
as a better C (b&w)
: (cont'd)
- parameter defaults
- #define vs. const variables
- new and delete
- stricter typing system
- typedef
- reference
(b&w)
- global scope resolution operator
- bool
- explicit type conversion
- Reference
(b&w)
-
Complex C/C++ Type Definitions (b&w)
- Dynamic
allocation of 2-dimensional array in C (b&w)
- Procedural Programming Example 6Balls
- Object Oriented Programming Example
3Bags Example
(b&w),
codes
- Homeworks:
|
第六週 (104/03/31) |
- Object Oriented Programming Example 3Bags
Example (b&w)
(cont'd)
- Constructors
and Destructors (b&w)
- More
Classes (b&w)
(Object composition and ctor, this pointer, return pointers)
- Homeworks:
|
第七週 (104/04/07) |
spring break
|
第八週 (104/04/14) |
- Common
C/C++ Memory Errors (cont'd) (b&w),
html version
- The
Big Three: Dtor, Copy Ctor, and Assignment Operator (b&w)
- Homeworks:
|
第九週 (4/21) |
期中考 (10:00-12:00) |
第十週 (4/28) |
- 期中考參考答案,
成績分佈
-
Friend Classes and Friend Functions (b&w)
- Homeworks:
|
第十一週 (5/5) |
- Basic
Object Design (b&w)
- More
Object Design (b&w)
- Homeworks:
|
第十二週 (5/12) |
- More
Object Design (b&w)
(cont'd)
-
Operator Overloading (b&w)
- Homeworks:
- read Chapter 12 operator overloading
- 星期四 (104/05/14
21:00) 繳交作業三
- 四星期後 (104/06/11
星期四 21:00) 交 作業四
|
第十三週 (5/19) |
- Operator
Overloading (b&w)
(cont'd)
- Inheritance
(b&w)
- Homeworks:
|
第十四週 (5/26) |
- Inheritance
(b&w)
- Homeworks:
|
第十五週 (6/2) |
- Advanced
Inheritance (b&w)
- Polymorphism
(b&w)
- Homeworks:
- review Chapter 14
- review Chapter 15
- 下星期四 (104/06/11
21:00) 交 作業四
|
第十六週 (6/9) |
- Generic
Programming (b&w)
- Homeworks:
- review Chapter 14 (page 604-623)
- 負面思考: OOP 真的有好處嗎? OOP
Criticism, OOP
Myth
- review Vol2, Chapter 1
- 星期四 (104/06/11
21:00) 交 作業四
|
第十七週 (6/16) |
- Exception
(b&w)
- Object
Oriented Design Smells and SOLID Principles (b&w)
- Homeworks:
- Agile Design (JH
talk, PH
talk)
- Constructor
vs. Factory (b&w)
- State
Diagram (b&w)
- UML
語法介紹, (b&w)
參考資料, UML
簡介, UML
Notations
- "An
Open Letter to Object Technology Newcomers", Alistair Cockburn
(local
copy)
- C++11 Sinyakov
intro, FAQ
- Patterns
in Enterprise Software
- 982期末考,
992期末考, 1002期末考,
1012期末考,
1022期末考
|
第十八週 (6/23) |
期末考 (9:30-12:00)
教室分配表
請提早 10 分鐘到 INS105 / INS B18 找你的座位
查詢自己的期末考考卷與成績
(請至考試作業區選取期末考)
1032期末考, 參考答案,
成績分佈
|