一、課程名稱:程式語言(Programming Languages)

二、授課教師:工科系/核工所 許榮鈞(rjsheu@mx.nthu.edu.tw)

三、教學方式:3學分(每週上課三小時)

四、課程說明:
如何充分利用並發揮電腦的功能?你應該了解電腦架構與運作基礎,學習透過數學與邏輯思考設計解題步驟,再利用程式語言(控制電腦執行的語法)來實現你的想法!這也是本課程的設計目的,學習利用程式語言來協助你解決問題,特別是一些重複性高或牽涉複雜計算的工作。我們可以利用程式語言來控制電腦的運作,達到自動化的處理以大幅增進工作效率。了解電腦工作的原理與如何建立演算法/解題方案(Algorithm)是程式設計最重要的核心。本課程主要以C語言為例介紹程式設計的基本概念,包括:變數、運算子、流程控制、函數、陣列、指標、字串、結構、輸入/輸出與檔案處理。上課內容同時搭配介紹Python直譯式程式語言,因其簡潔易學特性作為C語言學習的比較,課堂上所有案例都有C與Python程式碼可供學生對照學習。另外,許多工程領域的科學計算主要還是以FORTRAN語言為主,期末我們也會提及FORTRAN與其它語言的比較。若有時間也將簡介一些進階的資料結構概念,以利同學未來持續深入程式設計的領域。
課程內容章節如下:
1. Introduction to Computers, the Internet, and the Web
2. Introduction to C Programming
3. Structured Program Development in C
4. C Program Control
5. C Functions
6. C Arrays
7. Python Basics and Data Structures
8. C Pointers
9. C Characters and Strings
10. C Structures and Enumerations
11. C File Processing
12. Fortran, C/C++, and Python for Scientific Computing

五、指定用書 (Textbook)
1. P.J. Deitel & H. M Deitel, “C How to Program”, 6th/7th/8th Edition, Prentice Hall (2009/2012/2016)
2. A.B. Downey, “Think Python: How to Think Like a Computer Scientist”, 2nd Edition, O'Reilly Media (2015)

六、成績考核
1. Midterm (40%)上機考試(可攜帶教科書參考)
2. Final (40%)上機考試(可攜帶教科書參考)
3. Homework (20%)
4. Quiz (+5%)
學生使用AI的聲明:有條件開放,請註明如何使用生成式AI於作業或報告。