Java基礎程式設計班

Java是一種泛用型程式語言,大量運用於開發可執行於嵌入式裝置、網路或桌上型電腦等環境的應用程式。透過在不同的硬體平台上安裝Java虛擬機(Java Virtual Machine, JVM),多數平台可執行Java編譯後的位元碼(byte code),使得程式設計者可以享受"Write Once, Run Anywhere"的便利性。Java完全支援物件導向設計(object-oriented paradigm, OOP),讓程式設計師撰寫具備擴充性的程式結構,利於開發複雜度較高的應用軟體;Java相關的整合開發環境方便管理大型專案,加上優秀的記憶體管理機制以及豐富的函式庫,包括I/O和網路介面到圖形使用者介面工具等,可大幅增進程式開發效率。Java作為開發高度可靠和安全軟體的語言,同時支援多執行緒來處理如多媒體等計算強度高的應用程式[1]。根據2016年TIOBE的統計,Java為程式語言排名中使用人數最多的前三名[2]。2015年末開始吹起一股金融科技化(Financial Technology, FinTech),最歡迎的程式語言是Java[3]。本課程將完整介紹Java的語法與重要的程式設計概念,期許學員可以獨立完成Java程式撰寫;更希望透過本課程傳授的內涵,強化學員在資訊領域內的自我學習能力。






[1] About Java
[2] TIOBE Index http://spectrum.ieee.org/computing/software/top-10-programming-languages
[3] The top ten technology skills at BAML, Barclays, Credit Suisse, Citi, Goldman Sachs, JPMorgan, Morgan Stanley and UBS (2015.4.16)

課程大綱

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

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

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


註0:updated on 2018/6/5
註1:課程教材主要以英文為主,授課過程以中文為主。英文目前仍為科技領域主要語言,想長期進入資訊領域者,應具備"透過英文學習"的基本能力。
註2:本課程將適量介紹演算法與資料結構作為程式範例。
註3: 詳細課程內容請見Java Programming

適合對象

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

開發環境

JDK10 + Eclipse

近期班次

  • 第298期 開課日期:2018.07.21 名額已滿

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

    停止報名 詳細資訊

  • 第301期 開課日期:2018.07.30 名額已滿

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

    停止報名 詳細資訊

  • 第304期 開課日期:2018.09.01 名額已滿

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

    停止報名 詳細資訊

  • 注意事項

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

    講師介紹

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

    // 服務經驗

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

    // 教學特色

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