2018面向對象課程助教總結
時間過得很快,從2月份布置第一次作業起,到現在竟然已經快過了半年。
所有同學的總結部落格我都一字字的看了,幾乎都提到通過部落格作業學到了很多。有同學說“這門面向對象是我到現在最有大學感受的課程”,真的,我大一結束後也是這樣想的,如出一轍。
經曆了從零開始一股腦扔出一大堆新東西,第一次接觸部落格園、接觸Git、接觸Markdown,第一次寫部落格、第一次打開VS點下new project、第一次用C++編寫圖形界面……即使這個過程中挫折無數,但最終完成編碼的時候那種喜悅遠遠多于中間經曆的所有痛苦。這種感受大概隻有親自體驗過才會最明白。經常會在看大家部落格的時候無限感慨,回頭去看了自己以前的作業寫的啥:D。
當看到有同學吐槽說自己零基礎什麼都不會、缺少新技術的新手指導的時候,我是不太同意的。因為每次布置作業中,基本都有給出相應的參考連結。比如第一次開通部落格的作業中就給了markdown入門參考;後續編碼作業要求上傳github時也給出了西瓜學長的git教程和推薦參看廖雪峰的git使用教程等等,我認為這些就夠了。至于詳細地去教在遇到不會的東西時如何探索學習是沒有意義的,因為這個問題好像和解決方案本身就是一個閉環(?)我認為完全沒必要解釋。
關于個人作業
雖然前面說的是不必要阻斷探索空間,但可以改進的是,更多地對大一同學提供簡單的思路引導,抛磚引玉。比如電梯作業中關于bus和taxi的簡化思路是得到鄒欣老師提示後在第三次作業中才給出的,有一點晚,如果在第一次布置電梯作業的時候就先給出這樣的基礎提示,可能交作業的人會更多一些。當年西瓜學長那種手把手的通過作業一步步指導建構電腦作業(從讀入字元串處理、中綴轉字尾、用棧實作運算、GUI),脈絡清晰而且極其容易上手。今年的電梯一開始就極大的開放性和高難度,吓倒了一批人也确實不足為奇。這也展現了我作為助教的經驗不足啊,不應該在寒假作業一開始就把需求羅列的那麼詳盡龐大,如果把開學後的第一次電梯和寒假的第一次電梯對換一下,才比較合适。之後的個人作業可能需要在電腦和電梯做一個折中,因為按照電腦那次布置作業的方式,不提題目本身似乎不夠面向對象,手把手的要求會在寫代碼的過程中,出現同學自己的思路和作業要求不一緻,非得改成那樣就很别扭的問題。
總得來說,電梯作業還是留有相當多的遺憾,本來這個選題應該是很不錯的。足夠展現面向對象的優勢,題目本身雖有一定難度但也不是實作不了。但就結果來看,我覺得隻有5個不到的同學能稱上完成了這個作業。有位同學在總結部落格中說,“雖然已經過了這麼久,還是忘不了被電梯支配的恐懼。”我想最大的問題除了上面提到的寒假一開始難度太高,還有就是:
一、同學對完成題目的關注點偏了,全在聚焦排程算法(oj刷多了看什麼都是算法題),本應該先把能運作的電梯實作出來再優化(這其實也可以通過控制作業要求手動實作的,要是先不提排程兩個字就不會這樣了)。不過深挖優化算法也是好事呀,希望那些在總結中說“哪天掌握了算法就去改”的同學之後真的會做吧(雖然有了這句flag後,可能性就已經無限趨近0了hhh) 二、拖沓的時間太長,從寒假作業拖到開學作業還在電梯,别說完成作業的同學了,就算是我自己看部落格的時候都審美疲勞。不過這也和布置作業的時間規劃有關,如果在一開始就把作業次數根據題目難度和寒假時長規劃好,就不至于拖到開學了。
寒假布置作業的步調很亂,先前進了一大步,然後發現不對勁要原地等程度較弱的補齊,導緻第三次作業(控制台讀入改為檔案輸入輸出+需求小調整)對于一部分同學就稍改幾行代碼然後就能交了,部落格也一度尴尬。有了寒假的教訓,開學後的作業就明顯好了很多,漸進式前進+更多的提示。
還有遺憾的是,因為時間關系沒能對接上棟哥提過好幾次的電梯排程遊戲的網站。如果能加上的話,同學自己的代碼産生排程結果配合可視化的小人,趣味性效果會好很多。不過我有去看過,那個網站貌似隻支援js代碼,而且封裝的不夠,想用的話得開始就在作業要求裡規定一堆東西,成員變量和函數名和功能等等都要一緻。如果以後還是選這題,想對接可視化可能要助教自己開發,使得和具體編碼無關隻與輸入資料和輸出結果有關,然後提供API。
關于團隊作業
至于團隊項目,這一屆應該是第一次在C++課程中就接觸團隊程式設計。我也沒想到早就說好的王者榮耀大作業會是以團隊的方式進行,但意外的發現大家的完成度遠遠比我想象的高,那天在課堂展示的時候看到的都挺不錯呀(可惜棟哥竟然沒給助教提問的機會orz)。但是最嚴重的失誤就是,在作業要求中沒有關注github的簽入,我認為這導緻了最終結果稍微有失公允。如果要求階段的簽入量和團隊成員必須簽入的話,就不會存在到底是自己從頭開始逐漸建構還是把已有的别人的東西拿來稍作修改就上交應付的疑慮(這裡又不得不懊悔一下經驗不足)。
裝甲車隊是唯一一個有在github協作開發的,能看到團隊每個人都有簽入量(其他隊伍都是發檔案改來改去)。但也是最可惜的一隊,雖然每個人的能力都不錯,但一開始目光太高太遠,架構要完美代碼要優雅UI要炫酷,結果出現各種問題又加之作業時間很短,最終沒能完成想要的效果。課堂展示的時候就看着裝甲車隊長一臉生無可戀地挪動螢幕上的英雄一邊吐槽遇到的各種坑。後來我私下找了他們稍微提了下MVP的概念,一邊覺得沒有軟體工程概念之前玩團隊合作是真的很虛啊。當時在要布置團隊作業之前棟哥看完我拟的初稿,說不要強調軟工的套路,這門課是面向對象,以他們自己樸素的方式即可。我才反應過來自己不知不覺的在往軟工靠了,後面就在着重強調面向對象本身而不是團隊程式設計。是以大家即使完成度不高或者團隊合作不順利也不要氣餒呀,有收獲就足夠了,更多的軟工内容以後會學的。
還有一點就是,這學期的部落格作業拖太久了,應該在考試月之前就結束掉比較好,不然直接造成大家被期末考壓制着沒法多處分心,也影響了作業品質和教學效果。(雖然很大一個原因也是今年開學太晚了orz)
關于自己的助教經曆
說中途沒有疲憊心累過是不可能的,畢竟不是老師職業而是兼職助教,要在自己的事情中抽時間權衡、負擔今天再不布置出作業又要拖大家時間的責任。三次在動車上寫助教部落格,兩次是在去外地比賽的途中,一次是現在在回家的路上2333
當初自薦做了棟哥助教的原因也很簡單,就隻是覺得自己以前在課程中得到了西瓜學長和乾神的好多幫助,也想體驗一下做助教玩。但之後好幾次特别疲的時候就在想,我為啥要當助教呢?寒假那會特别迷茫,覺得在瑣碎的事情上花費了一大堆的時間也不知道到底收獲了什麼。後來去問了乾神,他安慰我說,這也是進入社會的鍛煉,特别是在耐心和運用自動化工具上。有疲憊心理很正常,一開始是熱情推動,後面就是使命感了,是以想着如何高效率的完成任務比較關鍵。
後面就心态放平了很多,盡力去協調和完成每一件事,加之自己事情的DDL結束,也更投入助教工作上了。雖然助教團隊也不隻是我一個人,但趙暢畢竟大二課程非常多,是以大多數時候還是我的任務更重一些,但也非常感謝是他在我忙于比賽的一段時間裡替我做了大量的評分工作。
每次不管是布置作業、回答問題還是點評部落格的時候,都會不知不覺的像是西瓜學長或者乾神那樣的方式,常常翻看他們以前的助教部落格,想着他們是怎麼做的。看到不少同學都在總結部落格中提到謝謝助教的幫助,是真的很開心了,感覺之前做的事情都并沒有白費~
這次的建構之法助教教育訓練沒有參加,可能是因為棟哥今年開始不再上軟工實踐了,也就沒有多問。之後還會做助教嗎,對我還是未知數。