Course Introduction
課程說明 (Course Description)
本課程之內容包括:C/C++ 語言基礎語法、程式寫作技巧與觀念及實作範例。透過課堂解釋實作範例搭配作業練習各主題的語法或技巧。
The course will introduce the basics of C/C++ and the concepts and skills of programming. Each theme will be instructed with examples and hands-on labs in-class or off-class.
指定用書 (Text Books)
- S. Prata, C PRIMER PLUS (自由購買)
- 課程講義 (Lecture notes)
參考書籍 (References)
國立清華大學開放式課程OpenCourseWare(NTHU, OCW) - 計算機程式設計一(資工版)
Introduction to C++ | Electrical Engineering and Computer Science | MIT OpenCourseWare
Introduction to C and C++ | Electrical Engineering and Computer Science | MIT OpenCourseWare
教學方式 (Teaching Method)
透過講義解說各主題的實作技巧,由學生練習、測試與完成相關之課堂實作或作業。 課堂會採用實體及線上混合教學,學生可在滿足防疫規定下參加現場授課,同時於線上平台直播,同學也可同步於線上平台留言發問。 學生課後可透過 eeclass 討論區及預約時段與授課老師及助教討論。
The course will introduce each theme with lecture notes. Students will practice each theme with Homeworks and hands-on labs in-class or off-class. The course will hold both physically and online. Students can attend class physically under Taiwan CDC COVID-19 guideline. Also, the course will stream on online streaming platform(s). Students can discuss in real-time on the online streaming platform(s). After class, students can use the discussion forum in the NTHU eeclass or make a reservation with instructor or TA.
教學進度 (Syllabus)
(9/11 updated) 週次皆為暫定安排,會依實際授課情形調整。
週次 (Week) | 主題 (Theme) | |
---|---|---|
Week 2 | 程式設計 & C/C++ 語言基本概念 | Basic Concept of Programming |
& C/C++ Language | ||
資料型態 & 格式化輸出與輸入(1) | Data Type & Formatted | |
Input/Output(1) | ||
Week 3 | 資料型態 & 格式化輸出與輸入(2) | Data Type & Formatted |
Input/Output(2) | ||
Week 4 | 資料型態 & 格式化輸出與輸入(3) | Data Type & Formatted |
Input/Output(3) | ||
運算子與運算式 | Operator & expression | |
Week 5 | 分支敘述 | Branch Statement |
迴圈敘述(1) | Loop Statement(1) | |
Week 6 | 迴圈敘述(2) | Loop Statement(2) |
Week 7 | 陣列與字串(1) | Array & String(1) |
Week 8 | 陣列與字串(2) | Array & String(2) |
Week 9 | 陣列與字串(3) | Array & String(3) |
位元處裡 | Bit manipulation | |
Week 10 | 期中評量 | Midterm exam |
Week 11 | 函式 & 參考(1) | Function & Reference(1) |
Week 12 | 函式 & 參考(2) | Function & Reference(2) |
Week 13 | 函式 & 參考(3) | Function & Reference(3) |
Week 14 | 結構(1) | Structure(1) |
Week 15 | 結構(2) | Structure(2) |
檔案 | File | |
Week 16 | 記憶體管理 | Memory management |
Week 17 | 前置處理器 | Preprocessor |
例外處裡 | Exception handling | |
除錯 & 斷言 | Debugging & assertion | |
Week 18 | 期末評量 | Final exam |
成績考核 (Evaluation)
暫定,會依實際授課情形調整。 (Tentative, will change during the course)
學期成績 (Grade) = 作業/實作 (Homework/Lab), 30% + 期中考 (Midterm exam), 30% + 期末考 (Final exam), 40 % + Bonus, 5%
(11/25 update) = 作業/實作 (Homework/Lab), 50% + 期中考 (Midterm exam), 25% + Extra Homework, 15% + 期末考 (Final exam), 25% + Bonus, 5%
相關網頁(Personal Website)
課程網頁 (Course website): https://stevenokm.github.io/i2p-nthu-math/i2p1
課程資訊
- 課程上課時間:每週四 15:30 - 18:10
- 前 1 - 1.5 小時講解今日主題
- 之後時間開放同學於現場或線上即時提問
- 課程上課地點:
- 綜三館 315 電腦教室 (座位47人,可出席人數 47 人,10/7更新)
- Youtube (Link: 上課錄影 - YouTube)
- Teams (團隊代碼: 0l2nz9s)
- 本課程開放加簽,原則上限制人數為 50 人,且參加實體課程需配合防疫規定。
- 請使用電子加簽系統加簽。
- 目前開放上限為本系大一生 47 人,並另有 10 人須審核加簽名額。
- 外系同學可線上加簽系統加選課程。
- 本課程有 Teams 團隊,需在申請完學校的 Office 365 帳號後即可使用連結加入,同學可多加利用團隊進行討論。
- 申請方式: Office 365 服務 (nthu.edu.tw)
- 外校同學可提供 office 365 帳號給助教協助加入團隊。
作業
- 每週作業會公布在課程網頁上,並使用 eeclass 平台繳交作業。
- eeclass 連結: https://eeclass.nthu.edu.tw/course/5088
- 作業會使用自動化工具檢查,若有批改上有問題可與助教詢問。
- 作業抄襲一律 0 分計算,並且不計入繳交次數。
- 作業須準時繳交,遲交則得到原始成績 80% 的分數。
期中 / 期末評量
- 期中 / 期末評量採斷網上機測試。
- 期中 / 期末評量會視疫情變化調整為其他方案。
- 同學皆可參加期中 / 期末評量。
老師資訊
洪奕文 E-mail: s106062802@m106.nthu.edu.tw
Office Hours: Every Mon. 14:00 - 15:00
Office Room: R2341, 2F, EECS Building
Note: 若要來研究室詢問問題,請 一定要預約時間 ,臨時來研究室詢問 不保證 能夠當下開放詢問。 若要約 teams 詢問也可以約 Office Hour 時段詢問。
TA infos
許廷碩 E-mail: tim890727@gmail.com
TA Hours: TBA
上課實況/錄影檔
Youtube (Link: 上課錄影 - YouTube)
Bonus
課程內容如果有錯誤,可以在每頁的右上方 "Suggest an edit" 使用 Github 進行修改,修改完畢後利用 Pull Request 的方式提交。
提交時註明學號以及姓名,並且每提交一次可以增加學期分數,配分依據修改幅度而定,每人總增加分數不超過 5 分。