程式初步:中學生的第一堂C++課

/* 認識C++ */
Dennis Ritchie (1973)設計出C語言之後,C語言一直是程式語言發展中重要的典範。現今多數更為高階的程式語言都類似C語言的風格,甚至是很多程式語言底層的實作。軟體隨著需求而日益複雜,為了減緩架構複雜度所帶來的不便,支援物件導向設計 (object-oriented programming, OOP)的程式語言也陸續誕生,其中Bjarne Stroustrup (1983)所提出的C++影響最為深刻。至今C++仍是軟體開發的主流語言之一[0]。

/* 課前說明 */
本課程以C++為例,引導學員在理論與實作中建立計算思維 (computational thinking)。透過深入淺出的解說,學員可以了解計算機運作的模型 (computation model),認識程式設計的精神與運作的細節 (還在不知所以然嗎?),同時培養抽象思考的能力與累積解題的經驗。就以這堂課當作進入資訊領域的起點,大家一起來認識CS吧!(注意:本課程需要大量練習與腦力激盪,過程辛苦但是如同打電玩一般,我們享受於破關升級的成就感。)

此外,本課程涵蓋十二年國民基本教育課程綱要科技領域[6]的程式設計演算法大學程式設計先修檢測[7]的考試範圍,歡迎國高中生一同參與,希望讓你第一次學習程式就能夠站穩灘頭堡!

[0] TIOBE Index
[1] 十二年國民基本教育課程綱要國民中學暨普通型高級中等學校 - 科技領域
[2] 大學程式設計先修檢測 (APCS)

課程大綱

第零章:課程簡介 (syllabus, briefing computer systems, first program: ``Hello, World.'')
第一章:資料型態、變數、運算子 (data types, variables, and operators)
第二章:流程控制 (flow controls)、常見的演算法 (classical algorithms)與演算法分析
(analysis of algorithms)
第四章:陣列 (arrays)
第五章:函數與遞迴 (functions and recursion)
第六章:指標 (pointers)
第七章:結構與類別 (struct/class)

註0:本課程以中文教材中文授課,僅保留英文專有名詞供學生參考。
註1:課程中間會有一次小測驗,最後有一次期末考,模擬APCS考試中的觀念題與實作題。

Updated on 2019/11/4.

適合對象

國高中生與大一新生,具備基本算數與英文能力者;若需要通過APCS考試者,需要高中數學能力,例如對數函數log。

開發環境

C++1x on Dev-C++

近期班次

注意事項

  • 上課地點:台灣大學資訊工程學系系館 詳細位置;教室號碼將於開課前一日公佈於官網"最新消息"中。
  • 上課教材:開課後將公布教學網站給同學查閱。
  • 結業狀況:請上官網”結業名單”查閱是否合格及可領取證書進度。

講師介紹

  • 國立臺灣大學資訊工程學博士候選人

  • 交通大學電信工程研究所 碩士

  • 中央大學電機工程學系 學士

(一) 服務經驗

  • 國立臺灣大學 腦與心智科學研究所 兼任研究助理 (2014.8--present)
  • 中國信託商業銀行 全球金融商品交易處 期貨自營部 實習研究員 (2014.1--present)
  • 國立臺灣大學 資訊工程學系 資訊系統訓練班 講師 (2014.1--present)
  • 國立臺灣大學 資訊工程學系 課程助教:計算理論、離散數學、財務演算法 (2012.9--present)

(二) 研究興趣

  • Financial computing
  • Analysis and design of algorithms
  • Quantitative finance, econometrics, and algorithmic trading
  • Statistics and machine learning
  • Computing theory and programming language design

(三) 程式語言

  • MATLAB, Java, C, C++, Python

(四) 教學特色

  • 中文授課,課程教材以英文為主。適合規劃出國求學或對科學/技術理論有興趣的學員。
  • 授課時數:於本訓練班教學時數累計至2020年2月5日為4860小時。