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程式撰寫經驗的學員。

開發環境

實體課程注意事項

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

校園防疫措施詳情連結

公務員全程參與課程學習後可於課程結束後申請登錄公務人員學習時數

課程影片觀看期限至課程結束後一週關閉

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

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

近期班次

講師介紹

(一) 經歷

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

(二) 學歷

臺灣大學資訊工程研究所博士 (主修財務工程)
交通大學電信工程研究所碩士 (主修電磁波)
中央大學電機工程學系學士

(三) 研究興趣 & 專長

- Financial Engineeering, Quantitative Finance, and Algorithmic Trading
- Algorithms, Computing Theory, and Programming Languages
- Data Science and Business Intelligence using AI Techniques
- System Administration (Linux) and High Performance Computing

(四) 教學特色

1. 中文授課,課程教材以英文為主,適合規劃出國求學或對科學技術有興趣的學員。
2. 2014 年始服務於本班,累計授課時數至 2025 年 7 月 11 日為 13010 小時。