課程名稱 |
計算機程式設計 COMPUTER PROGRAMMING |
開課學期 |
99-1 |
授課對象 |
|
授課教師 |
陳信希 |
課號 |
CSIE1921 |
課程識別碼 |
902 48050 |
班次 |
|
學分 |
2 |
全/半年 |
半年 |
必/選修 |
|
上課時間 |
星期二6,7(13:20~15:10) |
上課地點 |
計資212 |
備註 |
A6:量化分析與數學素養領域。 總人數上限:52人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/991compuprogramming |
課程簡介影片 |
|
核心能力關聯 |
本課程尚未建立核心能力關連 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
本課程有別於一般程式設計介紹傳統程式語言,例如C(C++)語言,擬教授Python。Python是一種高階程式語言,已經廣泛被應用於系統的開發和設計,例如Google把Python選為官方程式語言之ㄧ,大家所熟悉的YouTube,Python是其中的關鍵語言。MIT將Python列為學生學習的第一種程式語言,引導非電腦科系的同學「如何像電腦科學家一樣思考」;瑞典Lund University將Python作為科學計算基本工具;…。
Python語言具有以下特點:語法結構清晰,簡單易學易懂,適於入門學習;支援很多開放碼軟體,黏稠性高,易與現有程式/模組整合,降低程式開發門檻,應用於不同領域等。本課程的目標是透過Python程式語言,引導非電腦科系的學生擁有數理邏輯的能力,同時由程式設計的推理過程,學習解決問題的方式,並以範例說明如何整合自由軟體,處理較複雜的問題。
本課程涵蓋下列課題:
1. Python程式設計環境:介紹Python歷史、與其他程式語言比較、解決問題技巧、環境安裝、網路資源等
2. 型態和運算:介紹Python內建物件型態,包括數字、字串、串列、辭典、檔案等。
3. 敘述和語法:介紹Python敘述,設定、表示式、和列印,if測試,while和for迴圈等基本語法。
4. 函式:介紹函式基本概念,變數範圍規則和引數,及進階函式,學習如何組織程式,供再使用。
5. 模組:介紹模組設計基本概念,學習運用模組套件,並以應用範例組織較大程式元件。
6. 類別和物件導向程式設計:介紹物件導向程式設計基本概念,和Python 所提供之物件導向程式設計工具。
|
課程目標 |
Python語言具有以下特點:語法結構清晰,簡單易學易懂,適於入門學習;支援很多開放碼軟體,黏稠性高,易與現有程式/模組整合,降低程式開發門檻,應用於不同領域等。本課程的目標是透過Python程式語言,引導非電腦科系的學生擁有數理邏輯的能力,同時由程式設計的推理過程,學習解決問題的方式,並以範例說明如何整合自由軟體,處理較複雜的問題。 |
課程要求 |
|
預期每週課後學習時數 |
|
Office Hours |
每週二 16:20~17:20 備註: 每週上課結束後,助教在上課電腦教室,輔導學生。 |
參考書目 |
參考教材
(1) Mark Lutz, Learning Python, 3rd Edition, O'reilly, 2008.
(2) Zelle, John. Python Programming: An Introduction to Computer Science. Wilsonville, OR: Franklin, Beedle & Associates, 2003.
參考網站:MIT OpenCourseware
(1) A Gentle Introduction to Programming Using Python (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2010/)
(2) Introduction to Computer Science and Programming (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/) |
指定閱讀 |
本課程使用自由軟體,包括程式設計環境和指定閱讀教材都可以由網路下載。指定閱讀教材原文為英文,已經由OSSF自由軟體鑄造廠翻譯成中文。
(1) 中文版
OSSF自由軟體鑄造廠中文譯版:如何像電腦科學家一樣思考,http://www.openfoundry.org/en/tech-article/
(2) 英文版
Allen Downey, Think Python: How to Think Like a Computer Scientist, Green Tea Press, Needham, Massachusetts http://www.greenteapress.com/thinkpython/thinkpython.html |
評量方式 (僅供參考) |
No. |
項目 |
百分比 |
說明 |
1. |
Quiz |
50% |
每堂課會配合課程進度,規劃上機練習,讓同學馬上了解機器操作,和程式演練。練習完後,將結果繳交給助教。如果該堂有事,請事先通知助教,補交上課練習題。
(附注: 此處的占分比不是最終分數的占分比) |
2. |
Homework |
40% |
總共會有 3 - 4 次的程式作業 (homework),繳交規則會跟該作業一起公布,原則上每個作業都不會太大 (例如 30-50 行左右的小程式)
(附注: 此處的占分比不是最終分數的占分比) |
3. |
Other |
10% |
(附注: 此處的占分比不是最終分數的占分比) |
|
週次 |
日期 |
單元主題 |
第1週 |
9/14 |
(1) 課程內容,目標,電腦教室介紹
(2) 程式語言簡介:解決問題之道,直譯器與編譯式環境,Python 語言的特色,與其他程式語言比較,Python 應用實例,網路資源。 |
第2週 |
9/21 |
Python直譯器環境介紹:安裝和使用。 |
第3週 |
9/28 |
程式語言基本組成:變數 (Variables),表達式 (Expressions) 及 陳述 (Statements)。 |
第4週 |
10/05 |
程式語言基本組成:函數 (Functions)。 |
第5週 |
10/12 |
範例分析一:以介面設計介紹程式設計一些概念。 |
第6週 |
10/19 |
程式流程控制:條件式 (Conditionals) 及 遞迴 (Recursion)。 |
第7週 |
10/26 |
進階函數設計。 |
第8週 |
11/02 |
程式流程控制:疊代法 (Iteration)。
|
第9週 |
11/09 |
資料結構:字串 (String) 及其相關操作。 |
第10週 |
11/16 |
範例分析二:文字處理 (Word Play)。 |
第11週 |
11/23 |
資料結構:串列 (List) 及其相關操作。 |
第12週 |
11/30 |
資料結構:辭典 (Dictionary) 及其相關操作。。 |
第13週 |
12/07 |
資料結構:元組 (Tuple) 及其相關操作。 |
第14週 |
12/14 |
範例分析三:資料結構的選擇。 |
第15週 |
12/21 |
基本應用:用 Python 處理檔案 |
第16週 |
12/28 |
物件導向程式:Python 的類別 |
第17週 |
1/04 |
物件導向程式:類別、函數及成員函數。 |