Java基礎程式設計班

Java[0]是一種泛用型 (general-purpose)程式語言,在不同平台上安裝Java虛擬機 (Java Virtual Machine, JVM),可執行Java編譯後的位元碼 (byte code),使得程式設計者可以享受"Write Once, Run Anywhere"的便利性。Java完全支援物件導向設計 (object-oriented paradigm, OOP),讓程式設計師撰寫具備擴充性的程式結構,利於開發複雜度較高的應用軟體;Java的整合開發環境方便管理大型專案,加上優秀的記憶體管理機制以及豐富的函式庫,可大幅增進程式開發效率,諸如Spring[1]與安卓 (Android)[2]。Java作為開發高度可靠和安全軟體的語言,同時支援多執行緒來處理如多媒體等計算強度高的應用程式。根據2018年TIOBE的統計,Java為程式語言排名中使用人數最多的前三名[3][4]。2015年末開始吹起一股金融科技化 (Financial Technology, FinTech),最受歡迎的程式語言是Java[5]。本課程我將仔細介紹Java的語法與重要的程式設計概念,期許學員可以獨立完成Java程式撰寫;更希望透過本課程傳授的內涵,強化學員在資訊領域內的自我學習能力。另外,本課程也將涵蓋大學程式設計先修檢測 (APCS)[6]的內容,若學習程式上有遇到問題或者是想要建立大圖像 (big picture)的話,也歡迎來一起打怪。






[0] About Java
[1] Spring Framework
[2] Android
[3] TIOBE Index
[4] The 2018 Top Programming Languages
[5] The top ten technology skills at BAML, Barclays, Credit Suisse, Citi, Goldman Sachs, JPMorgan, Morgan Stanley and UBS (2015.4.16)
[6] 大學程式設計先修檢測 (APCS)

課程大綱

一、基礎程式設計
1. 概論:計算機運作簡介 (computation model)、介紹JDK與Eclipse、第一隻Java程式
2. 資料型態、變數、運算子 (data types, variables, operators)
3. 流程控制:條件式、迴圈 (selections and loops)
4. 演算法分析 (analysis of algorithms and Big-O)
5. 陣列 (arrays)
5.1 排序演算法
5.2 搜尋演算法
5.3 資料結構簡介 (data structure tutorial: linked list)
6. 函數與遞迴 (methods and recursion)

二、物件導向設計
1. 物件與類別 (object and class)
2. 封裝 (encapsulation)
3. 物件之間HAS-A的關係
4. 物件之間IS-A的關係:繼承 (inheritance)與介面 (interface)
5. 方法覆寫與多型 (method overriding and polymorphism)
6. 不可變物件 (immutability)
7. 列舉型態 (enum types)
8. 內部類別與匿名類別 (inner class and anonymous class)
9. 拋錯與例外處理 (exception throwing and handling)

三、物件導向設計的應用
1. 字串與正規表示法 (strings and regular expressions)
2. 檔案輸出與輸入 (file I/O)
3. 圖形介面設計 (gui design)

註0:updated on 2018/12/6
註1:課程教材主要以英文為主,授課過程以中文為主。英文目前仍為科技領域主要語言,想長期進入資訊領域者,應具備"透過英文學習"的基本能力。
註2:本課程教的不只是程式語言,而是程式語言背後的思考路徑和模型。先有想法才有語言,所以不可能只會語言不會思考。還在學一堆語言但是沒有想法嗎?

適合對象

1. 無程式撰寫經驗的初學者。
2. 具備其他程式語言能力的學員。
3. 課程涵蓋AP Computer Science指定教材,亦適合提早學習Java的美國/歐洲學校學生。

開發環境

JDK8 + Eclipse

近期班次

  • 第307期 開課日期:2019.01.05 即將額滿

    上課時間:每週(六)(日)
    9:00 AM ~ 12:00 PM
    上課日期:2019.01.05 ~ 2019.02.24
    學費:新生新台幣5000元整

    備註: 2/1-2/10春節; 因春節放假
    上課日期:1/5.6.1/12.13
    1/20.1/26.27.2/16.17.2/24

    詳細資訊

  • 第308期 開課日期:2019.01.14 招生中

    上課時間:每週(一)(二)(三)(四)(五)
    9:30 AM ~ 12:30 AM
    上課日期:2019.01.14 ~ 2019.01.25
    學費:新生新台幣5000元整

    詳細資訊

  • 第309期 開課日期:2019.01.28 招生中

    上課時間:每週(一)(二)(三)(四)(五)
    9:30 AM ~ 12:50 AM
    上課日期:2019.01.28 ~ 2019.02.15
    學費:新生新台幣5000元整

    備註: 春節放假:2/1-2/10
    上課日期1/28-1/31,2/11-2/15
    共九堂一次上課3hr20min,共計30小時整

    詳細資訊

  • 注意事項

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

    講師介紹

    • 臺灣大學資訊工程學系 博士班
    • 交通大學電信工程研究所 碩士
    • 中央大學電機工程學系 學士

    // 服務經驗

    • 在本班已教授超過100個班,累計教學時數3,000個小時
    • 國立台灣大學 腦與心智科學研究所 兼任研究助理 (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

    // 教學特色

    • 中文授課,課程教材以英文為主。適合規劃出國求學或對科學/技術理論有興趣的學員。