跳到主要內容區

Python語言程式設計 - 外文系三年級 劉子綾

課程名稱Python語言程式設計      授課教師工程科學系 游濟華老師
心得分享者外文系三年級 劉子綾
修課動機
對即將升上三年級的我,這個暑假算是一個轉換期。過去兩年的課程多半是在討論、分析文本與文本中角色性格和語言學中度過,未來則是得考研究所。因此,想趁這個機會,藉由成大跨域模組化課程,幫助自己踏出舒適圈,探索自己對於程式語言的興趣和上手程度,而這也跟我未來想要進入科技業擔任專案經理有相關。並且,在本科系專業外,讓自己多學習一項技能,相信能夠在求職時擁有多一些籌碼。在看了課程大綱說明此門課對於新手算是友好後,便鼓起勇氣報了Python語言程式設計課程,也為這個暑期增添了些新鮮的意義。
授課風格
此門課進行的方式,以講解和實作兩者並重,讓學生們能夠即時地應用上午所學的概念於下午的作業中。雖說是作業,但老師的課程規劃通常會留白下午的時間,讓同學們能夠以最無負擔的方式,在課程上將所有Lab完成,減輕回家後獨自一人面對程式碼的焦慮感。
游濟華教授的講解方式非常循序漸進,有別於Youtube的程式影片中,講者有時會省略一些新手須知的基礎。除了講授之外,老師也會親自帶著學生應用其剛教授的概念,現場寫程式碼示範給同學們看,這是我認為與其他缺少互動的課程差異較大之處。在實作課程方面,則是每天都有至少五到六名的助教,輔助同學們完成作業。在編寫程式碼卡關時,同學能夠隨時向助教請教問題,並且檢視自己在程式的邏輯上是否有所缺漏,以及應注意的細節等,助益頗大。
課程介紹
這堂課程,由介紹程式語言的基本觀念起步,先協助同學們釐清 「為什麼要學程式設計?」、「程式設計的本質是什麼?」、「為什麼是Python?」這三個大哉問,引領我們反思並更加堅定自己的修課動機。在接下來五天的過程中,課程規劃以Input, Processing and Output 作為基石,課後讓同學實作出體重的單位轉換和程式自動生成整數除法的商數以及餘數練習。第二天則以Decision Structures和Repetition Structures為主軸,以與電腦互動的剪刀石頭布小遊戲實際應用當日所學,讓使用者能夠依提示出拳後,由電腦回應其比賽結果,更進階則是要重複操作直到使用者勝出為止。當日第二份作業則是要寫出一份讓電腦在特定範圍內猜出隨機數字的遊戲程式碼。漸漸地,課程變得愈加有挑戰性。第三天開始,我們圍繞在Functions and import 和Graphical User Interface (圖形使用者介面) 兩個大主題。在Functions and import部分,要實作出應用二分法找根的程式;圖形使用者介面的作業,則是讓我們設計出能夠實際讓使用者操作的按鈕與排版,以此讓使用者方便查詢高鐵任一起點站至終點站的票價。
最後,我們迎來的挑戰是Datatype List 和Class and Object。首先,使用者將輸入一連串的數字,接著,電腦需要將原始數據羅列出後,移除使用者所指定的數個極端值,並分別呈現出修改過後的數列,以及挑出的極端值。在寫完原始程式碼後,更要將其加入排版以及數個按鈕,轉化成使用者介面的型態,使其更像一個可供操作的遊戲。
在上完所有基礎課程後,老師以兩個實作Lab作為最終的成績考核。第一份,是要我們以輾轉相除法找出最大公因數;第二份,則是要設計出一個使用者介面,方便使用者輸入利率以及年分,即可根據要求計算出單利或是複利的結果。此兩份Lab充分結合前面課程所需應用的各種觀念,也再次替所有同學們重新加強一遍 GUI 的實作,作為課程的收斂。
心得
修習這門課程,對我來說真的是個很忐忑的決定與巨大的挑戰。畢竟,是與我的主修外文系較無關聯且原先較無興趣的新領域。我一直都很擔憂,如果自己完全學不來的話,是否就代表自己與這個日漸成為趨勢的 Software engineering 無緣了。果真,在課程的中段開始,我感受到,寫程式就好比一門藝術,有時沒有靈感,或是起初的方向錯誤的話,即會卡在同一個關卡上,陷入死胡同。而此時,沒有旁人的引導,是很難將自己的邏輯導引回正確的思路上的。
所幸,在這堂課程中,老師與助教,甚至是同學們,都非常熱心地願意耗費大量時間與心力,一一協助我們編寫程式碼。即使已經過了下課時間,仍然很有耐心地留下陪伴我們。在他們的幫忙之下,我才能夠從一度很想放棄這門課的挫折中堅持下去。藉此,我也發現,當自己想要學習新的技能時,身邊能夠有一群同樣充滿動力的夥伴,是一件非常有助益於學習的一件事。
欲習得程式語言這門藝術,有些「師傅引進門,修行在個人」的意味在內。我認為這門課是真的有考量到新手小白所需要的概念,一步一步地帶領我們,也提供了能夠發問、討論和得到反饋的場域,讓人能夠在碰上問題時得到即時的幫助。我想,這是在學習相較抽象的概念時非常必須的定心丸。此門課傳遞了很完整的程式語言架構給我們,也導入能與真實世界接軌的GUI使用者介面教學,很清楚地替我們指引了未來能夠繼續深入程式語言的方向。
在修習這門課後,所造成的影響和學習動力是有延續性的。而我也從中發現,編寫程式碼是一個會讓人上癮的過程,因為寫程式能夠讓人立即地執行且看見結果,若順利寫出程式碼,能夠得到立即的回饋。即使寫錯,程式也會指出錯誤,讓人有跡可循,上網查找資料除錯。這更啟發了我,要勇於面對失敗和打擊,以及勇敢嘗試的心態。時常,在腦中盤算個各種解法,都不如實際一行一行地將初始的構想,敲在電腦螢幕上。即使最後跑出了error,也不過就是再重新出發一次罷了。在一次又一次的試驗後,總是會慢慢地接近終點。勇敢地嘗試,總比停滯在原點還更有機率成功。
學習編寫程式這條路是永無止盡的,雖然我發覺自己沒辦法無痛的上手,但跨域模組化課程給了我很好的機會試誤,讓未來的我在學習其他程式設計課程時,有個基礎能夠繼續深入。我想,跨域模組化課程的使命,並不是在短短一周內即教會學生所有知識,其更重要的功能在於,以為期一周,較平易近人的時長和從零開始的課程設計,帶著學生跨越「萬事起頭難」的門檻,交給我們一把鑰匙,推開不同領域的門,接著讓我們自己的學習動力,真正地落實跨領域學習。
關鍵字 #成大模組化 #密集學習 #程式語言 #跨領域學習 #踏出舒適圈

瀏覽數: