一、課程說明
課程名稱中的 Fun 有兩個含意:
1. Functional Programming;
2. 希望讓寫程式變得更有趣。
這門課使用 Scala 程式語言,介紹 Functional Programming 概念。
對象是熱衷程式設計、喜歡壓榨腦力、習慣苦中作樂的同學。

二、指定用書
Functional Programming in Scala (Chiusano and Bjarnason)

三、參考書籍
1. Programming in Scala: A Comprehensive Step-by-Step Guide (Odersky, Spoon, and
Venners)
2. SICP (Abelson, Sussman, and Sussman)
3. Scala Cookbook (Alexander)

四、教學方式
每個星期 3 小時課堂講解與討論
每個月挑選一個周六舉辦一次 12 小時 Hackathon
同學們三人一組,作業和 Hackathon 的分數都是以小組為單位評分
個人的學期總成績則會依照課堂參與及平時表現而有差異 (10%)

五、教學進度
Overview of Functional Programming
Lambda Calculus
Scala Programming Language
Functions as Values
Immutable Objects
Pattern Matching
Working with Lists
Collections and Combinatorial Search
Lazy Evaluations
Actor Models

六、成績考核
60%: 12 次作業
30%: 3 次 Hackathons
10%: 課堂參與及平常表現

七、可連結之網頁位址
To be announced.