Java 進階程式設計班

Java 進階程式設計班

1. 介紹常見的設計模式 (design patterns),透過OOP的語法建構可以高度重複使用的現代軟體工程;
2. 接續基礎班未能交代的概念與語法,例如:泛型 (Generics)、Reflection、Annotation、JDK8才引進的lambda表示式、Stream框架與Optional型態,最後介紹常見Java Collections;
3. 講授併行程式 (concurrent programming)的撰寫。佐以介紹作業系統的基礎知識 (如:多工、工作排程、程序與執行緒),介紹Java的API撰寫多執行緒的應用程式,並如何排除平行程式中會遭遇的問題;透過Concurrent框架實現高階併行化程式。
4. 我們最後導入Spring框架,利用SpringBoot整合不同的模組,實現一個以購物車為例的電子商務應用。

註0:進階班內容可能因為當期個人的偏好或者學員的需求而有些許調整。

課程大綱

## Design Patterns
- Creational patterns: singleton, factory method, abstract factory
- Structural patterns: adapter, bridge, proxy, decorator, sharing (interning, flyweight)
- Behavioral patterns: iterator, strategy, observer (publish/subscribe)
- Model-control-view (MVC) model

## Advanced Java
- Generics
- Collections: List (ArrayList & LinkedList), Map (TreeMap & HashMap)
- Lambda expressions and Stream API
- Optional: alternative to null (a billion-dollar mistake)
- Reflection and annotation

## Concurrent Programming
- Java Virtual Machine (JVM)
- Basic concepts of operating systems (OS)
- Thread & Runnable
- Race condition, mutual exclusion & synchronized methods/blocks
- Producer-consumer problem (bounded-buffer problem) & semaphores
- Dining philosophers: deadlock, livelock, starvation
- High-level concurrency framework: thread pools, fork-join pools, asynchronous processing, concurrent data structures

## Java Spring e-Commerce: Shopping Carts
- Dependency management: Maven & Gradle
- Spring Framework: Inversion of Control (IoC) & Aspect-Oriented Programming (AOP)
- Database: MySQL
- Front-end catchup: HTML, CSS, and React.js

註0:更新於2021/3/31。
註1:課程教材主要以英文為主,授課過程以中文為主。

適合對象

擁有Java程式撰寫經驗的學員。

開發環境

近期班次

  • 第359期 招生中

    課程類別:假日班下午

    開課日期:2022.06.18 ~ 2022.07.17

    上課時間:

    週 (六)(日) 1:00 PM ~ 4:00 PM

    學費:新生新台幣5000元整

    注意事項:

    本班為實體課程,常見QA詳情連結

    本班會視疫情滾動式調整為同步遠距教學。(會再另外EMAIL通知學員)

    (一)退費期限:開課日後⅓時數內,詳情連結

    (二)查詢結業狀況:結業名單連結

     

  • 講師介紹

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

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

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

    (一) 服務經驗

    • 國立臺灣大學 腦與心智科學研究所 兼任研究助理 (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, C#

    (四) 教學特色

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