1062 (107/02-107/06) 課程內容摘要

download all pdf slides 4up for print 106/02/24,1up for print 107/03/26, color 106/02/24, single pdf

Youtube 課程視訊紀錄: 1052 2A, 1062 2A (Thu 2,3,4, Tue 2,3,4), 1062 2B (Fri 6,7,8, Mon 6,7,8)

2A, 2B 兩班的投影片基本上是一樣的, 也許有一點點臨時修改, 不過我不是錄音機, 每次講的時候
我也會不斷地思考怎樣傳達, 所以兩班上課的講法也許有一點點的調整, 你可以交互參考看看

  課程摘要

第一週
2A:107/02/22(四)
2B:107/02/23(五)
INS101

  1. 課程簡介 (b&w), 1052 視訊紀錄: 1, 2), 課程大綱, 參考書籍, 線上資料

  2. 物件導向程式的核心概念: 物件, 抽象化, 界面, 封裝, 繼承, 多型

  3. 本週視訊紀錄:1062 2A:1,2,3 1062 2B:1,2,3

  4. Homeworks:
第二週
2A:107/03/01(四)
2B:107/03/02(五)
  1. 學習目標和 C 程式設計, 資料結構, 演算法有一些差異: 希望能夠增進軟體系統的重用, 不要像免洗餐具一樣即用即丟, 希望能夠不斷地透過物件的組合來產生新的軟體: 解線性方程式範例 (b&w), coder vs. programmer

  2. Abstract Data Type (b&w, 1052 視訊紀錄): [Data Type + Operation] common part which is independent of all implementations

  3. C++ Console I/O (b&w, 1052 視訊紀錄:1,2,3): an object oriented I/O library

  4. 本週視訊紀錄:1062 2A:1,2,3 1062 2B: 1,2,3,4

  5. Homeworks:
第三週
2A:107/03/08(四)
2B:107/03/09(五)
  1. Making and Using Objects (b&w, 1052 視訊紀錄:1,2)

  2. A "Better" C Program (b&w), codes

  3. Objects and Classes (b&w, 1052 視訊紀錄:1,2,3)

  4. 本週視訊紀錄:1062 2A:1,2,3,4 1062 2B: 1,2,3,4

  5. Homeworks:
第四週
2A:107/03/15(四)
2B:107/03/16(五)
  1. Objects and Classes (b&w) (cont'd)

  2. C++ as a better C (b&w, 1052 視訊紀錄:1,2,3) :
    • 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())

  3. 本週視訊紀錄:1062 2A:1,2 1062 2B: 1,2

  4. Homeworks:
第五週
2A:107/03/22(四)
2B:107/03/23(五)
  1. C++ as a better C (b&w, 1052 視訊紀錄:1,2,3) :
    • variable declaration on the fly
    • definition vs. declaration (variable and function)
    • function signature and name mangling
    • parameter defaults
    • #define vs. const variables
    • new and delete
    • stricter typing system
    • typedef
    • reference (b&w)
    • global scope resolution operator
    • bool
    • explicit type conversion

  2. Dynamic allocation of 2-dimensional array in C (b&w)

  3. 本週視訊紀錄:1062 2A:1,2,3 1062 2B: 1,2

  4. Homeworks:
第六週
2A:107/03/29(四)
2B:107/03/30(五)
  1. Procedural Programming Example 6Balls

  2. Object Oriented Programming Example 3Bags Example (b&w, 1052 視訊紀錄:1), codes

  3. Constructors and Destructors (b&w, 1052 視訊紀錄:1,2)

  4. 本週視訊紀錄:1062 2A:1,2 1062 2B: 1,2

  5. Homeworks:

第七週
2A:107/04/05(四)
2B:107/04/06(五)

spring break

下星期 (2A: 107/04/12 星期四 21:00, 2B: 107/04/13 星期五 21:00) 繳交 作業二

第八週
2A:107/04/12(四)
2B:107/04/13(五)
  1. More Classes (b&w, 1052 視訊紀錄:1,2) (Object composition and ctor, this pointer, return pointers)

  2. The Big Three: Dtor, Copy Ctor, and Assignment Operator (b&w, 1052 視訊紀錄:1,2,3)

  3. 本週視訊紀錄:1062 2A:1,2,3 1062 2B: 1,2,3

  4. Homeworks:
第九週

107/04/19(四)

    期中考, ClosedBook

    2A: 18:40-21:00, 教室分配表, INS101 / INS B01
    2B: 18:40-21:00, 教室分配表, INS105 / INS B03

    請提早 10 分鐘到教室找你的座位

第十週
2A:107/04/19(四)
2B:107/04/27(五)
  1. 期中考講解, 成績分佈 2A, 2B

  2. Friend Classes and Friend Functions (b&w, 1052 視訊紀錄: 1)

  3. 本週視訊紀錄:1062 2A:1,2 1062 2B: 1,2

  4. Homeworks:

第十一週
2A:107/05/03(四)
2B:107/05/04(五)

  1. Basic Object Design (b&w, 1052 視訊紀錄: 1)

  2. More Object Design (b&w, 1052 視訊紀錄: 1)

  3. 本週視訊紀錄:1062 2A:1,2,3 1062 2B: 1,2

  4. Homeworks:
第十二週
2A:107/05/10(四)
2B:107/05/11(五)
  1. More Object Design (b&w) (cont'd)

  2. Operator Overloading (b&w, 1052 視訊紀錄:1,2)

  3. 本週視訊紀錄:1062 2A:1,2,3 1062 2B: 1,2,3

  4. Homeworks:
    • read Chapter 12 operator overloading
    • 下星期四 (2A: 107/05/17 星期四 21:00, 2B: 107/05/18 星期五 21:00) 繳交 作業三
    • 三星期後 (2A: 107/05/31 星期四 21:00, 2B: 107/06/01 星期五 21:00) 繳交 作業四
第十三週
2A:107/05/17(四)
2B:107/05/18(五)
  1. Operator Overloading (b&w) (cont'd)

  2. Inheritance (b&w, 1052 視訊紀錄:1,2,3)

  3. 本週視訊紀錄:1062 2A:1,2 1062 2B: 1

  4. Homeworks:
第十四週
2A:107/05/24(四)
2B:107/05/25(五)
  1. Inheritance (b&w) (cont'd)

  2. 本週視訊紀錄:1062 2A:1,2 1062 2B: 1,2

  3. Homeworks:

第十五週
2A:107/05/31(四)
2B:107/06/01(五)

  1. Polymorphism (b&w, 1052 視訊紀錄:1,2,3)

  2. Advanced Inheritance (b&w, 1052 視訊紀錄: 1)

  3. 本週視訊紀錄:1062 2A:1,2 1062 2B: 1,2

  4. Homeworks:
    • review Chapter 14 Inheritance and Composition
    • review Chapter 15 Polymorphism and Virtual Functions
    • read Vol. 2, Chapter 6 Multiple inheritance
    • 本週 (2A: 107/05/31 星期四 21:00, 2B: 107/06/01 星期五 21:00) 繳交 作業四
第十六週
2A:107/06/07(四)
2B:107/06/08(五)
  1. Hiding & Overriding Examples (b&w, 1052 視訊紀錄: 1)

  2. Generic Programming (b&w, 1052 視訊紀錄:1,2)

  3. 本週視訊紀錄:1062 2A:1,2 1062 2B: 1,2

  4. Homeworks:

第十七週
2A:107/06/14(四)
2B:107/06/15(五)

  1. Exception (b&w, 1052 視訊紀錄: 1)

  2. Object Oriented Design Smells and SOLID Principles (b&w, 1052 視訊紀錄: 1)
    這些都是教你如何運用繼承來應付需求的改變, 繼承的語法簡單, 但是錯誤的使用繼承會造成極大的負面效果, 那就不要用吧!! 可是不用它的話, OOP 不只是跛腳, 根本就斷頭了....

  3. C++ 11 (b&w)

  4. 本週視訊紀錄:1062 2A:1,2,3 1062 2B: 1,2,3

  5. Homeworks:

第十八週

107/06/21(四)

    期末考, ClosedBook

    2A: 18:40-21:00, 教室分配表, INS101 / INS B01
    2B: 18:40-21:00, 教室分配表, INS105 / INS B03

    請提早 10 分鐘到教室找你的座位

    查詢自己的期末考考卷與成績 (請至作業欄選取期末考)

    參考答案, 成績分佈

    尾聲

 

    C++ sucks because you will get C back.

    唉呀呀! (C++ 的笑話不太多, 看得懂這個笑話的同學需要瞭解 postfix 的 operator++(int), 需要知道它只是暫時的數值, 所以當 learning = C++; 時, 顯然 learning 變數裡得到的和 learning = C; 是一樣的) 難怪很多同學辛苦地磨了一個學期還是只得到 C, 包括成績還有寫出來的程式都是, 名字一開始就取錯了嘛, 改名叫做 ++C 或是 B 的話, 至少會學到一點和 C 不一樣的東西, 叫做 ++++C 的話 (那不就是 A 了), 說不定大家都輕鬆地學會了 XD (咦, prefix 的 operator++() 有 lvalue? 是耶, 只有 prefix 的有 lvalue)

C++ 物件導向程式設計課程 首頁

製作日期: 02/25/2018 by 丁培毅 (Pei-yih Ting)
E-mail: pyting@mail.ntou.edu.tw TEL: 02 24622192x6615
海洋大學 電機資訊學院 資訊工程學系 Lagoon