Python Programming for Humanities

人文學群的 Python 程式入門

Lab Session

課程大綱

週次 日期 內容 投影片連結
1. 09/12 課程簡介 (no lab session)  
2. 09/19 脈絡:程式思維、開發環境 🔗
3. 09/26 觀察:分析問題(變數、指派、數字與字串) 🔗
4. 10/03 規則:語法結構(條件式、對應表) 🔗
5. 10/10 (國慶日)  
6. 10/17 功能:操作資料結構(資料結構方法) 🔗
7. 10/24 迭代:程式流程控制(迴圈) 🔗
8. 10/31 分工:程式組織(函數) 🔗
9. 11/07 期中考準備 🔗
10. 11/14 (期中考)  
11. 11/21 樣式:正規表達式 🔗
12. 11/28 剖析:分析中文文字檔案 🔗
13. 12/05 田野:網路資料蒐集 🔗
14. 12/12 存取:檔案與資料讀寫 🔗
15. 12/19 文本:電腦與自然語言 🔗
16. 12/26 展演:視覺化與呈現 🔗
17. 01/02 期末報告  
18. 01/09 繳交期末報告  

Python 作為人文學群的程式語言

「學程式」是全民運動:十二年國教科技領域課綱草案也預定將程式列為必修,甚至下伸至國中;坊間的職業訓練課程也教程式,幾乎是就業保證;大眾媒體亦報導眾多「非本科」學生因興趣自學程式,而進入相關產業獲得優渥待遇。的確,寫程式的前景大好,在機器學習、深度學習、資料科學當紅的時代,能夠寫程式好像變成基本能力。

但學程式對人文學群的實踐者而言有另一層意義。最近十幾年來,社群媒體、電子商務、個人媒體、甚至物聯網(IoT)、區塊鍊(block chain)應用,都是之前從未有過的人類活動,這些活動特殊之處是其軌跡存於數位世界。對比以往人文學群的經驗對象來自於訪談、問卷、實驗法、文本、民族誌探詢實際的人、部落、族群、社會;現在,人類文化社會活動的痕跡卻以數位形式儲存,可能在個人運算裝置(手機、筆電、桌機),更可能存在於某雲端伺服器(Google, Facebook, Instagram, Dcard)。人文學群實踐者在現代反而須透過人造物,電腦,才得以近用(甚至更大膽的用語是認識)人類活動在數位世界產生的真實投影。學程式,在這個意義下,重要性遠遠不止實用考量,而更是因程式是我們和電腦溝通的管道,它是我們得以認識人類在數位世界活動的窗口。

Python是近幾年當紅的程式語言,語法看似簡單卻完全不減其強大的表達功能。Python具有活躍的社群,提供各式各樣的套件(packages)、問答與教學資源,學習者或開發者都能有堅實的社群支持。

學習「寫程式」不只是學語言,也是學新世界,而接觸程式世界的第一步是培養「計算思維」。Lab Session的目的是讓大家有機會熟悉如何透過「計算思維」思考問題,並將思考過程用Python程式語言表達出來。期待這個能力「帶得走」,因為人類的文化社會活動總是複雜,我們永遠需要更多的觀點,更大膽地創新揭示層層疊疊的新世界。

請配合…

保持正面思考

在短短幾個月從無到有學會Python,需要很多時間和心力,老師和助教也相信大家的學習熱誠和能力。可是萬一有其他事件轉移了你的注意力(社團、朋友、家庭、熱戀、失戀、其他課程等等),也請保持對於Python以及程式設計的正面態度。既然選了課,至少期待你能藉機認識Python。即便現在和Python無緣,以後可能還是會有緣。

主動學習

學程式很難,也正因為難,所以很有趣。老師及助教群會盡可能將如何學程式的內容設計成一套有系統的課程安排。然而,學習是很個人的事,每個人都有自己的經驗、能力、動機和節奏,一套課程設計不可能完全適合每個學生。如果你行有餘力,目前線上有相當多各式各樣不同的線上學習資源,如CodecademyLearnpython等等,或者在網路上各個部落格也都有相關資源,甚至也有免費的教科書。多試著和Python說說話,認識他/她的需要、個性、抱怨、牢騷,你們會漸漸變熟的。

分享包容

寫程式、想問題是一種說故事的方法,每個人說的故事都不一樣。我們總會比較喜歡某些故事和比較不喜歡某些故事,可是這不影響他們的價值。如果你之前已經對程式語言很有經驗,但還是選擇來上這門課,就當作聽聽其他人說故事;若有機會,也歡迎分享自己的故事。

請配合課程要求

助教希望能夠幫助大家快快樂樂且充實地度過這個學期的課程。助教課、作業都請大家盡量配合參與。如果作業有問題,歡迎找助教幫忙。

作業繳交規定