進階物件導向程式設計
Advanced Object-Oriented Programming
| 節 | 週一 |
|---|---|
N 12:20–13:10 | 進階物件導向程式設計 EE634(光復) 3 節連堂 |
5 13:20–14:10 | |
6 14:20–15:10 |
* 根據陽明交大上課時間表所列
Phase I — Learn Programming with AI 生成式 AI 已能快速產生程式碼,但「能產生程式」並不代表使用者真正理解程式。 學生必須先具備閱讀與理解程式的能力。 * 物件導向程式設計基礎,複習物件導向程式設計(OOP)觀念。 * Cover more on advanced topics in OOP and software engineering, such as design pattern. * Include the rest OCW materials including computational efficiency (complexity) and basic machine learning. * 熟悉國內外Programming Interview出題方向。 Week 1–10 AI 主要扮演: Tutor / Explainer / Debugging Coach 學生可以使用 AI: • 解釋程式概念 • 解釋程式碼 • Trace program execution • 提供學習提示 • 解釋 error message • 比較不同演算法 • 解釋 computational complexity 但課程仍要求學生建立獨立理解與解題能力。 Week 11 進行: Closed-AI Midterm Examination 完全不使用生成式 AI,以傳統考試確認學生是否真正具備 Computer Science 與 Programming 基礎。 Phase II — Build Software with AI Week 5–16 學生以專題實作做中學: Build 學生學習使用 AI 提升軟體開發效率。 Verify 學生必須能測試、審查並驗證 AI-generated software。 核心原則: AI can generate code. Students are responsible for correctness. 如何讓 AI 寫程式? 更重要的是: 如何知道 AI 寫的程式是對的? * 訓練學生具有設計中大型軟體作品的能力。 * Study and learn from real-world repo (not toy example anymore) * Extended your game with AI or more advanced interfaces such as 3D or VR/AR (OOP C# in Unity). Welcome and Have FUN!
UEE1302 (Introduction to Computer Science and Programming (in C/C++) or equivalent course EEEC10008 Object-Oriented Programming (in C/C++ or Python) or equivalent course
無備註
a. 使用學校New e3網站。每位同學準備筆電、需有GitHub帳號。 b. 物件導向程式設計課程包含線上OCW自學、授課與實驗。實驗課程的規劃、內容、作業題目由老師設計提供,讓同學熟悉程式語言的撰寫方法。另外由助教帶領,配合每週上課內容作上機操作的練習,作業繳交等輔助教學。並從動手實作之中習得解決問題之能力。 * 下午時段:線上OCW課程自學 * 實體授課與上機操作(地點:EE635) c. 本課程將使用MIT OCW課程單元(含OCW課程錄影)進行輔助教學。 * MIT OCW https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/ * MIT OCW https://ocw.mit.edu/courses/6-0002-introduction-to-computational-thinking-and-data-science-fall-2016/ * https://oceanai.mit.edu/ivpman/pmwiki/pmwiki.php?n=Lab.HomePageCPP d. 程式設計學習希望project-based learning,整合所學製作出一個軟體遊戲或者小型軟(硬)體系統。期末專題製作以2-3人一組,讓學生能夠學習如何分工合作互相討論,同時也能訓練如何將多個檔案串接為專案。
Assignments: * We have in-class tutorial/lab each week, and the lab materials typically include 3 specific tasks (programming/algorithm/system work). and students are expected to finish the lab materials during the class. * We will use Windows WSL2 and VS Code with GitHub Copilot or Cursor IDE. * We will use Jupyter Notebook for assignment submissions. Exams: There will be close-AI midterm exam. Evaluations: In-Class Lab/Tutorials (30%), Midterm Exam (25%) Final Presentation and Term Paper/Report (30%, including Git Commits) Class Participations (10% GitHub Commits, 5% Other Participations)
教師未提供此項資料
| 週次 | 主題 |
|---|---|
| 第 1 週 | Introduction OCW: Tuples, Lists, Aliasing, Mutability, and Cloning Lab 01: Machine Installation (Windows + WSL) IDE (VS Code) 2026-09-07(一) |
| 第 2 週 | OCW: Recursion and Dictionaries Lab 02: Git, GitHub Copilot 2026-09-14(一) |
| 第 3 週 | OCW: Testing, Debugging, Exceptions, Assertions Lab 03: PyTest and Unit Test 2026-09-21(一) |
| 第 4 週 | 教師節放假 2026-09-28(一) |
| 第 5 週 | OCW: Object Oriented Programming Lab 04: C++ OOP and Build Tool Project Idea Discussions (1) 2026-10-05(一) |
| 第 6 週 | OCW: Python Classes and Inheritance Lab 05: MOOS-IvP (1) 2026-10-12(一) |
| 第 7 週 | OCW: Understanding Program Efficiency, Part 1 Lab 06: MOOS-IvP (2) Project Idea Discussions (2) 2026-10-19(一) |
| 第 8 週 | 期中考週 OCW: Understanding Program Efficiency, Part 2 Lab 07: PyBind11 Project Proposal Due 2026-10-26(一) |
| 第 9 週 | OCW: Searching and Sorting Lab 08: CUDA 2026-11-02(一) |
| 第 10 週 | OCW: Introduction and Optimization Problems Lab 9: LeetCode Project Progress (1) 2026-11-09(一) |
| 第 11 週 | OCW: Optimization Problems Lab 10: 期中考題庫介紹 2026-11-16(一) |
| 第 12 週 | OCW: Graph-theoretic Models Lab 11: Midterm Preparations Project Progress (2) 2026-11-23(一) |
| 第 13 週 | 期中考 Midterm 2026-11-30(一) |
| 第 14 週 | OOP Project Preparation (1) Lab 12: AI Agent (1) Project Progress (3) 2026-12-07(一) |
| 第 15 週 | OOP Project Preparation (2) Lab 13: AI Agent (2) 2026-12-14(一) |
| 第 16 週 | Project Presentation 2026-12-21(一) |
Required: * Introduction to Computation and Programming Using Python, third edition: With Application to Computational Modeling and Understanding Data by John Guttag Suggested: * Elements of Programming Interviews in Python by by Adnan Aziz, Tsung-Hsien Lee, Amit Prakash * Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries, by Steven F. Lott, Dusty Phillips * Mastering Python Design Patterns - Second Edition by Kamon Ayeva , Sakis Kasampalis
- 地點
- By appointments
- 時間
- By appointments
- 聯絡方式
- 王老師: hchengwang@nycu.edu.tw 助教: kevin07260903@gmail.com
