俗話說萬事起頭難,但也有例外的時候。國立政治大學資訊科學系助理教授江玥慧老師回憶起107學年度第一次開自然科學領域通識課程「程式設計概論」的經驗,語氣裡仍掩不住興奮:「那一年修課的學生,有很多人是真的喜歡,而且很清楚自己是要投入寫程式這件事,所以也很願意接受挑戰。」以往外系學生修不到的程式設計課程,終於變成通識,第一時間搶著修的都是有志之士,加上各系所學生不同創意碰撞火花,讓老師也是新鮮感與成就感滿滿。然而,常態開課後,班上漸漸出現為填補通識學分而來的同學,當老師滿腔熱血,學生卻只想要又甜又涼的學分……真正的挑戰,正要開始。
不甜不涼,痛快撞牆
「我不想規避這些不同,因為我們就是不一樣,可是這些不同也有可能變成一個轉機。」江老師認為,在教學場景裡,老師與學生互為主體,不管是看待寫程式或面對通識學分的態度,雙方是互相影響、共同建構學習經驗的。她不願意因學生的態度便妥協為甜涼學分,而是帶著學生「撞牆」,「我的課程設計的準則是,你可以不是最厲害的,但是你一定要有意願動手做,只要願意練習,都可以從我這邊拿到分數。」
不妥協為甜涼課,很大原因是江老師看見了學生自己沒意識到的職涯之牆。在教育部108課綱的結構下,明(111)年起進入大學的高中生,在入學前即已具備程式設計的基礎,甚至可能很小就接觸寫程式,江老師舉例,她自己使用的程式工具,念小學六年級的外甥已經在學了。所以,從學生的立場來看,已出社會一段時間的學長姐們多少已培養程式能力,而後面追來的學弟妹們早已熟悉程式設計,而現在在學的大學生,很可能會是「斷層」的一群。然而,這些「危機感」對於還在校的同學來說仍很模糊,難以轉換為學習動力,於是江老師更堅持不能放鬆寫程式的要求,持續給學生牆、更陪學生撞牆,「如果學生願意,我會在課堂中提供那樣子的學習活動,引導他嘗試。所有的嘗試都不會一次到位,在學校的好處就是它有一定的容錯度。」
不只學程式,也學溝通
除了看見程式語言能力在未來的必要性,江老師也在程式教學裡實踐她對於「通識課」的想法。「在什麼時候,你可以看到不同領域的人怎麼樣看待世界的方式,怎麼樣解決問題的不一樣的角度?只有透過通識課。」通識教學場域的一大特質,是學生來自多元領域,因此江老師想培養學生「跨」領域,不只是資訊科技,而是其他各院系不同學生所關心的問題與思考方法。「假如你是商學院的學生,你可以藉著這門課看見文學院的同學、社科院的同學,你可以看到他們心目中哪些問題是值得解決的。」所以,江老師對這門課的定位,不是要把學生變成工程師,而是希望提供一個跨領域窗口:「通識課如果不做這個,什麼課做呢?」
看見不同領域關心的問題之外,江老師也帶著學生理解自己不熟悉的事物。在她的課堂上,各組同學要練習出題,並且交換給別組解題,再彼此觀摩答案。在這個過程中,學生不只是學會思考如何有效的成立問題,更要跳出自己的問題框架去解別人的問題。有趣的是,出題組與解答組想出來的答案,常常完全是不同的事情。江老師笑說,她自身做了多年的系統開發,深知需求端與程式開發端的所思所想本來就很常兜不在一起,所以她也期待讓學生在這過程裡練習去對話與理解他人,並且把原非自身熟悉領域的主題,轉化理解後變成自己可以寫程式來對應。
學習與「error」共處
除了練習動手做及跨域對話,江老師也陪著學生與「error」共處。「在我們從小到大的教育體制中,有一樣東西把我們框住──就是我們其實很不喜歡看到error,很不喜歡犯錯,覺得error就是一個否定。可是,在學程式的過程中,error會反復出現,而且它出現越多,表示你練習越多,你會進步得越多。」江老師說,這個過程會一再顛覆學生習以為常的「好」的學習模式:「在學生心目中,好的學習應該是一步到位、一定100分,可是偏偏學寫程式過程中,如果真的花苦工去學,反而有很多時間是卡關的。」江老師觀察到,很多同學一看到error message,就會直覺的抗拒,「一看到就把它按掉,把它關掉。」此時,她會與學生溝通:「那個錯誤資訊不是在否定我們。」電腦是一板一眼的東西,它沒有辦法像人有這麼大的彈性空間去「腦補」資訊,所以跟電腦溝通必須很精準,「error message」就是電腦給出來的溝通提示:「我以為你的錯誤是什麼,我可以告訴你我誤解的地方在哪裡,然後你要不要修正一下,來告訴我你想要叫我做什麼?」在這個「與電腦溝通」的過程中,學生也能練習打破「不能看到紅字」的這件事,去包容並且用比較正面的角度去看待「error」的意義。
程式設計課的下一步
在江老師心目中,沒有完美的程式設計通識課,每一次的課程都需要因應學生而調整。除了在每次課後花5分鐘時間寫下自己在課堂上的觀察,以及參與各種教師社群分享也觀摩他人教學經驗之外,江老師心中一直有一個很明確的想法:「這堂課要教的學生,以後不是要當工程師。」以現階段來說,這類的普及性程式課關注的是「寫程式可以做什麼?」但隨著越來越多的人擁有相關能力,江老師希望能將重心轉移到程式設計「應該做什麼」。尤其,接下來108課綱的學生入學之後,在擁有程式設計基礎能力的條件下,對他們來說,最挑戰的也許已經不是學寫程式本身,甚至學生自己可能也很清楚,寫程式可以做到什麼,因此,江老師已經開始思考,「我們可能要幫助學生的是,引導他們去判斷:我會寫程式,但是我應該拿它來做什麼?不應該拿它來做什麼?」
可以預測,江老師的這門「程式設計概論」永遠不甜不涼,永遠有牆可撞,也永遠會有破牆而出的壯闊在前方。
(文字整理/曾令愉)
江玥慧老師專訪影片:在程式教育的路上 我們一起學習一起成長