親愛的同學們,
感謝各位對於這門課的興趣,2020年九月秋季班我們第一次開設這門跨學院的課程,2021年二月春季班是第二次開設,為了協助各位更了解這門課程是不是適合你,這封信會針對我們開課的目的、課程設計的方式、課程的要求與我們想招收的學生做一些說明。由於這門課是選修課程並非必修課程,當你決定來修這門課的時候,請認真思考你修課的目的是否與我們課程設計的核心概念相符合,我們希望把所有的教學資源用於協助真正需要的同學,由於有上學期的開課經驗,我們的教學團隊在下學期開課之前,檢討了上學期的教學與學習狀況,做了很多調整,其中一項是希望選課同學在一開始能有對修課過程有正確地理解,避免造成一場美麗的誤會,耽誤了各位同學的青春與錯置教學團隊一廂情願的熱忱。
開課目的
作為本門課授課老師,在決定開這門課時,心裏最想透過這門課教授給同學的事情有下面幾件事情:
- 讓同學學習如何透過運算思維的概念,知道如何運用科技來解決生活或是工作上的問題
- 建立程式自學的能力與建立為自己而學的學習態度
- 建立有效的教學相長流程
- 讓同學理解team work 與如何透過時間的累積來架構解決問題的方式
這門課是敏求智慧學院的大學部入門課程,我們設定給任何背景的同學都可以來選修,如果你從來沒有任何程式設計背景,這門課會透過作業來協助你學會基礎入門的Python programming, 有基本做final project 的能力, 如果你已經有python progamming 的基礎,那在這門課你可以更精進你的programming skill 以及用於解決更困難的問題。
「知道如何運用科技來解決生活或是工作上的問題」 不一定是工程師的事情,這一門課目的也不在訓練你成為一個很會寫程式的工程師,我們相信運算思維是一個數位時代的基本素養,編程能力是一個手段,有入門的基礎訓練,可以協助你理解自己的性向所在、如何與編程人員溝通、如何運用運算思維的基本概念成為一個更會拆解問題與運用科技來解決問題的人。
課程設計的方式
要能讓不同背景的同學在同一門課一起學習,有基本的教學難度,我們採取的方式是上課時盡量教授共同差異小的部分,透過作業與final project 來協助各位學習差異性較大的部分,課程的教授分幾部分:
- 基本教學
課堂上我們講授與討論運算思維的基本概念,每週回家作業以Udacity 的python programming 線上入門課程為輔,協助沒有程式基礎的同學練習自學程式,作業實作部分,我們針對是否有程式背景提供兩個不同作業的選擇,在課堂上我們每週會花一部分的時間讓同學問作業程式問題,同學也可以選擇老師與TA 的office hour 來問問題,另外FB 的課程群組也是同學能問問題與討論的一個方式。
新學期的作業我們做了一個調整,上學期修課的同學做了一個line APP 來解決與協助修課同學的一些問題,因此這學期我們的作業會是以一個完整的line APP for this course,作為所有作業的主要框架,這樣做有幾個好處,其一是你的每個作業做完都一定有一個完整的APP 可以讓你看到你學會的東西能啟動什麼服務與功能,其二是能協助你在期末project 發想解決問題的方式時,有基本的程式能力與框架可用,其三是我們希望每個同學都有機會來貢獻與協助這門課程的精進,所以這個作業所使用的line APP 是Playlab 裡一個open source project, 我們會長久維護與進行,歡迎所有同學修完課課之後,能透過這個project 做延伸的學習,同時讓你在這門課的收穫能成為你學習歷程或是將來找工作的一部分參考。
2. Case Study
這門課教授的所有知識都是為了讓同學成為更會解決問題的人,因此實務上的經驗累積與應用是讓知識能被實踐的一個重要過程,我們會透過Case Study 來進行,第一個探討的問題是如何為課程參與度打分數,在這個Case study 之後,同學會進行期末project分組與提案。新的學期我們事實上做了更大規模的示範,多了一個可以探討的Case study, 而且是每一位同學都身在其中的實例,包含 怎麼讓作業與課程的設計,能讓同學更有動機與更容易學習。
這兩個Case study 也示範了幾個以python 為基礎的程式技術:
- Web crawling
- Database
- LineBot
- Flask Web Service
有這些基本的參考範例,同學會有更多的期末專題發想空間與實作參考,上學期期末另外兩個最popular 的相關技術是:
- PyQT
- Open Data API
雖然我們在課程上不會cover, 但是有一些同學在期末專題或是homework alternative 做了一些整理與示範, 也會提供給同學參考。
在期中提案之後,同學會忙於自己的project, 我們會就同學的提案問題進行幾次的case study,如果還有時間,老師會就目前一些業界火紅的topic 進行case study
3. Invited Speaker
每學期我們都希望至少安排兩次特別來賓的演講,邀請的清單會在演講時間接近時公告,我們希望透過這些來賓,跟大家介紹外面業界的現狀與給同學一些學習求職的建議。
4. Final Project
這門課程我們不考試,有一半的成績是跟期末專題相關,期末專題以分組方式進行,請大家就自己想解決的問題進行期末專題的探討與實作,同時在專題的實作上,每個人要至少展現一部分用程式解決一個小問題的實作,2020 年秋季班的同學, 總共有8 組, 他們的期末專題想解決的問題如下:
- How To Book Train Tickets More Easily — 如何在連假時比較有效的搶回家的台鐵票
- 學習小幫手 — 如何讓這門課的教學與學習效果更好
- 如何減少助教批改作業的時間
- 讓程式溫暖城市 — 怎麼用科技的力量幫助在成大附近賣Bagel 的攤販
- 機車保養紀錄系統 — 如何用科技幫助自己家裡開設的機車行
- 如何協助想換跑道且不考慮轉校的成大學生
- 今晚我想來點…音樂靈感! — 如何協助音樂人做出能火紅的音樂
- 如何讓自用的股票投資策略更加完善
期末專題大概會在第11–12 周左右提案,到期末17–18週present時 約有1~1.5個月的時間可以實作,我們的作業會在前10週之內結束,剩下的時間都是以期末專題實作為主,因為期末專題每組不同,所以教學團隊會與每組安排課堂之外的一對一輔導時間,根據上學期的經驗,每次輔導大概在一小時左右。
選課的要求
這門課我們不點名,但是我們著重各種形式的課程參與,鼓勵大家提問跟參與討論,每週的作業預計是3小時的loading,如果你不習慣自學與查資料,有些同學會花到6 小時左右,基本的評分標準如下:
- Homework 30%
- Class Participation 20%
- Project 50% (10% for proposal, 40% for final presentation)
整體來說,你要在這門課及格的基礎是作業與project 要做到基本的要求,要有80 分的標準有兩個方法
1. 作業與project 的完成度與quality 高於平均
2. 達到60 分的標準後,用任何一種你覺得做得到的方式,展現高度的課程參與度
如果上面兩件事你都做到了, 成績就會在90分以上
期末時如果成績與你的預期有落差,老師會開放extra bonus points ,有一些同學為了爭取更好的分數,可以選擇提案加分的方式
這門課的評分標準設計,是希望同學能付出時間與努力來學到該學習的內容,教學團隊不只不希望為難同學,更希望幫助同學透過自己的努力爭取高分,而且每個人事實上只要願意花時間努力,都有高分的機會。
你是否適合修這門課的建議
以下類型的同學,我們會建議不要來選修這門課:
- 只是為了湊學分的同學
- 除了上課,沒有時間寫作業跟做final project 的同學
- 會想翹課的同學
這門課並非必修課,同時教室已經無法容納所有需要加簽的同學,因而我們希望把所有資源給適合的同學,我們不在意同學從何而來,但是我們期待同學來上課時會覺得花的時間有意義,並且有所獲得,除了我們教學團隊應該兢兢業業不斷努力於教學品質的提升,更需要同學跟我們一起努力。下面是上學期期中時針對Homework 的一份統計資料:
我們的Homework 相對於國外大學其實份量並不多,如果你去看Harvad CS50 這門給任何背景的人選修的有名課程, 一星期大概要花20–30小時做作業, 我們的預期是即便是修課學分數最多的大一生, 每學期修25學分的課,如果花1:1 的時間來做作業唸書,那作業的預期即是3學分的課程每週花3小時左右,但是每位同學的狀況不同,上述20% 覺得作業太多的同學,通常一週無法花不到3小時在這門課上,也因此不適合來修這門課。
有一組同學期末專題做了13位期中退選同學的原因調查,也一併提供給同學參考,希望各位來選修時能考量自身的狀況做評估。