實驗室納新反思和新方向

liyishui發表於2024-03-27

實驗室納新反思

最近在展開實驗室講座和納新時,遇到的最突出的問題就是吸引來的同學漸漸離開了。

1. 宣講時不要神話acm

根據田野調查,對於零基礎同學而言對acm瞭解有限,難以透過諸如公費旅遊、拿牌好處等作為動力,加上acm本就有難度高的風評,如果只說"認識夥伴"、“堅持一個夢想”等,出發點肯定是好的,但是落到實處上有些難。

可以整理一份Q&A出來。

Q:學姐學姐,為什麼要學acm呢?

A:找工作、跳槽需要刷leetcode,考研複試需要刷演算法題,保研需要考csp或者機試,大二有《演算法與資料結構》這門課程,打打藍橋杯也可以水個獎項。如果你覺得acm很難,那不如先考慮自己需要學演算法開始。演算法是繞不開的一門課程。參與acm實驗室的講座,相當於提供一個培訓演算法的機會。不同的人都會有自己的收穫,起碼會提升演算法水平,在必須用到的場合更有自信;如果學得很好,那就有機會參加比賽呀~

Q:這樣聽起來演算法好難啊,我一定學不會吧,我一點基礎也沒有

A:不會~因為大家都是零基礎上來的,99%的人都是在大學學的程式設計。你看學校都敢收你了!

Q:那還有1%的人已經學過了,學姐為什麼不去招她們呢?而是要來給我們宣講。

A:因為高中學過oi不一定就很適合acm,這兩個風格和賽制都是不一樣的。

而演算法競賽需要的也不只是1%的選手,一個團隊不是靠所謂的“頂尖選手”支撐起來的。我們追求的是不同基礎和認知的人都能在學習中有自己的收穫。而且誰說零基礎學不好啦!要舉例子的話,最厲害的是wyy學姐,零基礎打到了word final,還有lz學姐,轉專業+零基礎,c語言更是大一下學期才補上的,打了區域賽的銅牌。

Q:但是我聽學長學姐說,演算法包含的範圍很大很廣,我怕我大學四年都學不完

A:演算法是很多沒錯的,看來你也對acm也有興趣,有去了解呢。但是呢,我們的比賽不只是考演算法,也有考思維,我們不一定需要你非常會寫程式碼,只要你有思想,想要鍛鍊自己的思維能力,我們就歡迎你的加入。而且我們是組隊參加比賽,所以得到的獎牌我們是隊伍共同擁有的,當然這裡面也有你的一份榮譽。演算法只是一部分需求,我們當然希望你學得越多越好,對你的未來也會更加地有幫助。就是說演算法並不意味著every thing!

Q:但是我感覺自己沒有天賦,數學也學得很一塌糊塗

A:acm中有一類題是數學題,但是並不是演算法題=數學題,還有很多腦洞大開的題目~考驗天馬行空的能力,或者考驗紮實的程式碼基礎,或者考驗思維能力(像上面說的那樣),同樣的數學也不意味著every thing!

關於天賦這個問題,不否認在某些方面有的人上手會更快,就像有人會跑得更快,有人視力更好。不妨把學習演算法的過程看成一條河流,在漂流的過程中會走出許多分支,然後你一定會走向自己的去路,雖然方向不一定一樣,但總歸是有在自己的路上前進的。所謂“進一寸自有一寸的歡喜”,我們希望大家都能有屬於自己的收穫,而非唯天賦論或者唯強者論(這何嘗不算一種等級制度)。

Q:我聽班導和知乎上說,打acm價效比很低呀!
A:價效比低說明含金量高呀(笑)如果是一定要拿一個牌才算是目標的話,確實要花費很多時間,也正是這些時間堆疊起了它的含金量。但是在嘗試的過程中,哪怕並沒有一個很明確的結果,在過程中學習到的演算法對未來的路也是很有幫助的。

此外,在宣傳時儘量少一些對大佬的膜拜(不要再說誰誰誰六場上紫吊打xxx之類的了..六場上紫什麼概念?好像很厲害,但是跟此時還一知半解的人是沒有什麼關係的),多一些能落實到身邊的例子:三個人如何一起訓練一起合作一起奮鬥(這段可以做得熱血一點)、透過學演算法雖然沒有走到拿牌但是機試順利去了滿意的大學(舉真人的例子)、演算法學習的經歷使得簡歷很豐富,在尋找暑期實習時有幫助收到了offer,然後去了喜歡的公司工作(舉真人的例子)。

2. 宣講之後沒跟上

宣講之後沒跟上指的是沒有及時的講課和教程。結束後有很多同學來私聊我,提出了上述問題,還提出的其他問題是:如何加入實驗室?答:要透過選拔。如何學才能透過選拔?推薦去做cf、去註冊洛谷刷oj,但是都比較泛泛,沒有一個詳細的指南,往往是然後就沒有然後了..或許人不是突然跑掉的,是慢慢跑掉的。

而實驗室如何選拔,如何訓練,完全可以像上面的Q&A一樣寫成一個文件,每年刪刪改改拿出來用。

如果要做一個競品分析的話,隔壁西二線上的考核是很早就開始的,並且持續一整年。要學什麼也很清晰,還有階段性成果。而acm的選拔要等到大一結束後的暑假,在此期間實驗室這邊能提供的反饋,除了講課外都比較少。

要出階段性成果的話多組織幾場新生賽(而非校賽)?獎勵德育(學院特色類,活動類很容易滿)和獎品?對題目的要求倒沒有一定要原創,目的主要在於給大家一個反饋,可以多多多一些思維題/腦洞題,趣味+引導為主

然後講座方面也有問題。

3. peer presure同輩壓力

在講座方面有幾點問題:

1.開展講座時c語言還沒有上完,且從之後的掛科人數來看,c語言學得頗坎坷,這種情況下很多人不敢學習演算法。大一上就上演算法課,這個時間點有些早了。

2.人選問題。在講課水平、信服力上都有所欠缺。同齡人除非水平公認足夠高以外,很難把對方當成嚴肅的授課者,更多時候是小圈子裡的自娛自樂。此外,相對於同齡人來說,還是學姐學長會更有信服力,同齡人則明裡暗裡會有競爭壓力。知乎曾經有一個回答:天之驕子進入清北後是怎麼心態爆炸的?北大的計算機新生剛進機房,有的開機鍵都找不到,同齡人已經開始給ta們出題了,心理壓力可想而知。

現在大學不僅供應知識,還供應同僚壓力下的焦慮。有些人可以安慰自己,可大多尚未肯定自己的人,容易生活在競爭和別人的陰影中,害怕到忘了自己有多麼年輕,本來可以有那麼多熱情。

3.課堂的知識點太密集,講了很多但是講不清楚,導致吸收率很低。

4.宣傳畫風不對。整活和玩梗過多,光靠整活是沒法吸引人的。

新的方向

大晚上的越想越睡不著,實在是睡不著了,爬起來繼續開寫。

流程應該是這樣的:宣講 ——> 大一上的講座 ——> 冬令營 ——> 大一下的講座+新生賽+校賽 ——>和以前一樣的暑假集訓。

宣講

上面提到了宣講要去“神秘化”,此外宣講後Q&A、課程安排要及時跟上。Q&A要儲存下來(大概需要一個類似網盤的東西儲存共有資料,並且這些資料要可以傳承和修補)想用直接發。

大一上的授課

雖然還在學c語言,但授課不是不行,是一定要的,否則別的實驗室都在納新,acm都沒有動靜,人會跑掉很多。

但是授課內容一定要把握,在大家都在痛苦c語言時,最好就別講演算法。要講也是列舉、貪心、模擬,教大家如何使用online judge(註冊賬號、提交題目),如何除錯一段程式碼等等都可以。主要可以穿插著一些不用很會程式碼也能寫的趣味思維題(典型的構造、結論題),傳遞出這樣的意思:不是隻有高深的演算法和長長長的程式碼才是acm。

同樣的,為了吸引人講座要有德育。

如果有同學不滿足於這些簡單講座怎麼辦?很好!把寒假的題單和影片整理出來發給大家,說這是去年冬令營的內容,大家可以自己趕進度,提供自學的方向,但是沒時間也不著急,寒假還會分層次講,最重要的是先有個熱情和印象。

課程安排一定不要在期末,講授者和學習者都忙不過來。

冬令營

寒假時考完c語言,就可以開始學演算法了,大體模式可以參照2024寒假那樣,主要模式為影片+ppt+題單,感覺反饋還可以。為了兌現之前能幫忙找工作、刷leetcode的承諾,這個時期按照專題穿插講一些leetcode真題和考研複試真題、ds課程的歷年考試題,會顯得非常實用。

不過在人選和課件質量上要好好把控,這裡很吃人力。

時間安排上我唯一的經驗是大家年前最有激情,年後懈怠了很多,所以放假幾天後就可以兩三天安排一次,直到除夕前3天左右。

結營的時候可以組織一場結束賽,簡單組一套卷子,包含一部分講過的原題,不一定要原創。取成績優異的前30%、60%、100%髮結營證書和小禮品。

那結營證書有什麼作用?其實作用有限,意思意思一下,最多告訴學妹學弟們可以寫到簡歷裡:“參加福州大學acm團隊組織的演算法冬令營,並獲得優秀營員。”

性質有點類似於西二線上宣傳自己能開實習證明,位元組青訓營開的結營證明。既然隔壁都宣傳自己能開實習證明,也有人心動了,那我們開個結營證明咋啦!小禮品就是趣味性了,送小黃鴨、大enter鍵、程式設計師周邊等等。

大一下的講座+新生賽

大一下開學時,經過了上學期c語言的學習和一個寒假的訓練,大家的接受能力開始上來了,可以講更多入門演算法。這時的講座就可以圍繞著專題講座展開。人選問題上面有討論過,最好講述人要有經驗、內容不宜過難。

到這裡如果前面做得好,沒有勸退太多人,總會有新人來。但是隻靠講座反饋有點不足,除了穩定的專題講座外可以多辦2場新生賽。

為什麼強調是新生賽?理由:校賽太難了,並且有很多大二的同學、甚至大三的同學參與,對大多數新同學來說還是太難了,哪怕有簽到題還是會有人籤不上,第一次打比賽就枯坐了很久會對自己深深懷疑。

新生賽則一定強制只能新生參與,並且按照高中是否學過oi分組:潛力組/經驗組,這樣對手限定為和自己水平更可能相近的人,成長最快。

新生賽的組卷原則上和冬令營結營賽一樣,不一定要原創,但重在思維和所教授的東西,不能超綱。這樣可以檢驗所學,出卷壓力也小,甚至很快就能組出來(快速挑些合適的題目)。

新生賽可以在一定程度上模擬xcpc比賽的現場:現場可以發個氣球(實現上來說,只要招志願者實時算新的過題記錄+吹氣球即可,志願者的招募在某種意義上也是一種宣傳,而且銅盤的志願時長不好搶,志願者是一定能招滿甚至是用搶的),賽後現場講題,抽獎品(這裡前期準備需要買禮物和氣球)。

兩場可以一場是個人賽,一場是團隊賽。之前要一直到暑假八月份才能組上隊,感受"有隊友"的感覺,但是其實可以早點讓大家體驗一下何為團隊合作,acm組隊的魅力在哪。

那花費這些人力物力舉辦新生賽意義在哪?

主要是給同學參與感和反饋,以及讓大家瞭解xcpc的現場氛圍。這樣大家有了已經投入的沉沒成本,參與的意願和能力也會更大。

並且在新生賽中表現優異的同學可以分組別按比例收為"預備隊員"。

這裡的"預備隊員"是一個重點。

其實本質上也和以前是一樣的,沒辦法動到正式隊員在賽區名額分配上的優勢(這點難以解決,本質上是資源極其有限的問題,除非蛋糕能做大..)不過哪怕不打區域賽,也可以想辦法提升預備隊員的各類機會。

那要如何提升呢?提升機會就是給好處,有啥好處?

對同學來說:
1.可以跟別人說自己打acm有成果了,是預備隊員。(笑)嚴肅地說,可以作為一段經歷寫到簡歷裡面去。
2.可以拉一個預備隊群聊,每週除了日常的專題講座外,在cf的group上掛好訓練,最好是掛個兩場,必參與一場。美其名曰:“提供特別訓練”。
3.可以在實驗室有工位,工位是身份的象徵。在這之前最好不要在實驗室開放工位,容易被有oi基礎的同學壟斷,形成有排外性的小團體。
4.可以參與實驗室的有償教學任務。
5.可以組織大型活動和比賽(比如組織第二年的新生賽和冬令營,也蠻鍛鍊人的,很多校級部門宣傳也是說來這裡可以鍛鍊組織能力,大平臺啥啥啥的)
6.獎勵打各省省賽的機會,但是自費,實驗室幫忙申請名額。自費的話如果距離沒有到坐飛機,三個人均攤花費不算很難接受。而實驗室在這點上主要是資訊來源多,能提供申請名額這種服務,不然新生是沒有訊息和關係網的。最大的問題是安全性,以前每次出去都有學姐學長帶隊,如果沒有人帶隊不太合適,一定要有人去的話,又是自費,這個人選還蠻難的,除非實驗室有辦法出這個人出行的錢。如果也沒有辦法資助,也沒有人帶隊,老師很在意的安全性解決不了,那這點還是得作廢了。

對我們來說:
1.這些相對來說有經驗的人可以成為第二年給新生分享經驗的授課者,而且0基礎的出身和只差一歲的年齡,和新同學們交流會更有說服力。這些人還可以作為來年冬令營、來年新生賽的組織者,可持續發展!
2.既然已經當上了預備隊員,就有了沉沒成本,再衝擊正式隊員的可能性更大,這些人更可能來參與暑假集訓。

但細看會發現其實沒有辦法給預備隊員多少好處,甚至可以說基本沒有,該打選拔還是要選拔,名額沒法多還是沒法多,沒辦法許諾大家每個人都能打區域賽。真正功利性的獎勵只有有償教學,人家還不一定願意。但是既然都想辦新生賽了,選點人出來給點小甜頭也不錯。這樣就有比賽,有體驗,有參與感,有身份和名號,有成本。

關於變成校選課

校選課的話是科學類,我們學院不用修習科學類,開不來。如果是專業選修課的話,大一比較少專業選修,基本都是大二開始,大一都在忙著上公共課。此外選修現在難以解決的問題是希望好過,能水。絕大多數人選修課都是希望好過才選的,而非感興趣。

總結

基本上是圍繞著1.要有階段性反饋2.要有一個明晰的教學路線3.要有更多學演算法的實際好處
這三點展開的,能比較有效地解決新人氛圍問題,真要實踐起來肯定要做很多改動。

成本主要在開頭難,要有人組織這些事情,不過非原創出題+穩定的志願者來源已經把成本儘量壓縮了,人力的話只要第一年能吸引一些人願意過來參與,第二年就會好很多。如果能做起來,也算多一個新的傳統了。

今年我也是剛開始接觸這些事項,有很多事情想不明白,感覺做不好也是很煩躁和難過。晚上突然想到了好多,現在看來同學也跑得差不多了,這其中應該有各類主觀客觀原因(比如學習者的學業壓力、團隊早期宣傳的不足、授課者的教學速度),總歸發生了,咋挽救呢..繼續講課也是能講的,就是比較難保證吸引新人來了。但是新生個人賽/團隊賽想辦一場的話感覺還是能辦的,甚至不是我們acm團隊的,學院學習部也辦過。我個人的話願意組織這個事情,也願意講課。

深夜爆發的思緒,可能很多考慮欠缺,實踐起來很難,不過想得太多就會怯懦反而不敢做事了,還是先寫下來。

相關文章