看板 Soft_Job 關於我們 聯絡資訊
大家好,小弟是117的資結助教。 其實這個問題應該是問老闆,老闆決定就好, 只是我對於這個有點實際的問題很想聽聽目前在業界的大大們的意見。 目前有一份作業是這樣的,老師課堂上有教賀夫曼編碼,因此要實作一隻程式 這隻程式能夠以賀夫曼編碼完成壓縮以及解壓縮。 當我當年修課時,我原先以為這應該是很簡單的問題,然而當了助教之後才發現 事實上能夠完成這項作業的人遠低於我當年的預期。 ((大概一兩成吧... 而且還發現這個通過率其實是常態。 也就是其實當年和我修課的同學,他們就算是寫不出這份作業,卻也還是畢業了。 也就是其實當年在寫這份作業的學長姐 ...... ...... 其實我個人在學期初是希望這份作業在今年的通過率能夠超過八成, 因此在今年的作業標準上,其實是比往年還要嚴格不少, 例如編譯期發現警告就會被我退件,或者是發現memleak、未定義行為也會被我直接 退件。 *這門課的作業被退件之後,假如在期限內可以無限次補交。 只是以目前而言,其實通過狀況沒有比去年高多少,甚至比去年更低!不過,今年  和去年並不是使用同一份測資,因此在去年可以通過的答案,到了今年不一定可以直接  通過。(我當年的交作業被我今年其中一個測試資料幹掉了XD) 所以問題來了,基本上我會想這麼做的主要動機是為了同學好,因為我會希望我在  寫這份作業的時候在不影響分數的前提下,助教盡可能的點出會產生BUG的點,以及如  何修正,因為在大學時期能夠養成好的習慣對於未來就業是有幫助的。    然而在通過率如此低卻還能畢業的情況下,似乎就算寫出來的Code滿滿的警告,  在業界上還是能用的?    假如是這樣的話,是否這樣要求同學其實是有些過份?     ===================== 話說假如只是用想的話,priority queue + binary tree輕鬆就解決掉了  但是同學有些會掛在賀夫曼編碼的buffer開不夠大,  以致於當測資是單斜樹的時候會噴掉,或者是沒有考慮到singed和  unsigned char的問題。(看看最近有點紅的大富翁黑特文XD) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.182.115
realbout:不過分,119以上大學的水準不要變低了 12/12 07:51
qrtt1:『業界』標準,這個詞存在太多變數了 :) 12/12 08:08
meowyih:117是那間? 12/12 08:31
SansWord:不過份,有警告就退件這點很值得尊敬,卻是工作常態。 12/12 08:50
leiyan:我以前做demo就好 看文你應該有強制語言 這樣不太好 12/12 09:00
其實我覺得就算不強制語言,同學應該還是只會C\C++啦XD 這份是大二作業,我們Lab另外一份碩一的就沒有強制語言,頗歡樂的XD
bndan:讚同你的做法.但台灣軟體業的水準扣除掉某些創投和外商 其他 12/12 09:01
bndan:的哪怕現在再叫他回去寫huffman code 能通過的可能也沒5成.. 12/12 09:04
tooto1985:業界屬商業導向,能賺錢就是好code,管他編譯警不警告! 12/12 09:12
其實我有點擔心的就是這種問題,因為有可能因為作業時間佔比增加,排擠到他去想 其他狀況。
leiyan:有些警告(像最佳化)通常都是不理會的 這樣就退你人緣會... 12/12 09:29
哈..哈哈
jengjian:能在你測試資料以內跑出正確結果就是沒問題了。 12/12 09:39
其實也不一定,因為有的時候是看到後面同學的程式碼才想到可能有某種問題 例如看到 #define MAXLENGTH 500 char buf[MAXLENGTH]; 然後程式中出現 scanf("%s",buf); 那這時候我的測資就有能可拉大,不再是十幾個字元 *這份作業要求輸入兩個字元可重覆之字串,取內部字元作集合進行集合運算 然後退件內容大概會這樣寫 EX: 同學您好,當測資超過500個字元時程式會出錯。 比較有Sense的同學會知道該改用getc或是cin配c++的String 比較沒Sense的同學,下一次的版本就會變成 #define MAXLENGTH 1000 ... 所以當測資會過的時候,其實不代表就是沒問題了XDrz
hungys:113的資結第一次作業也是這題,不過測資可能沒很暴力吧我想 12/12 09:44
zanyking:霍夫曼寫一個禮拜應該要一定可以過吧?這不是很難的東西 12/12 11:02
GoalBased:如果你是位同學好,不是退他件,而是教他為什麼 12/12 11:17
ldkrsi:有警告就要退件太嚴了吧 12/12 11:27
AOK:你可以針對Warning的部份去設計測資 如果你無法重現讓Warning 12/12 11:59
AOK:成真的的環境 代表那些Warning在目前情況下是多餘的 12/12 12:01
AOK:或是你可以參考下面有人回的那些Warning應該是需要注意的 12/12 12:01
AOK:而不是一有Warning就退 大學生應該也快期末了 不是只有這作業 12/12 12:03
我覺得設計出Warning的黑名單也許是可以嘗試的方向 因為像是跳出unused variable這種,其實我是覺得必要性沒那麼高, 但是有可能代表上面宣告 int vari,varj; 然後複製貼上兩行 vari = inputi; vari = inputj; 第二行忘記改 ※ 編輯: pichubaby 來自: 140.117.182.115 (12/12 12:54)
bobju:霍夫曼編碼法 真懷念 那時看書上演算法就把它實作出來 一個 12/12 12:48
bobju:小小的壓縮程式 12/12 12:48
bobju:不過對數學系來說 只在乎對原理有沒有理解 不在乎實作 12/12 12:51
cha122977:不需要到就退件吧 可以沒warning給100分 每多一個扣5分 12/12 13:02
pichubaby:其實退件可以補交就是了 12/12 13:07
michael0728n:你有給編譯環境跟CFLAG嘛,沒有的話寫程式的人很難保 12/12 13:11
michael0728n:證沒有Warning 12/12 13:11
michael0728n:還有作業有spec說最多吃多少data嘛?不設一個MAX等測 12/12 13:12
michael0728n:資比OS給的記憶體大小大還是要炸掉@@" 12/12 13:12
hicoy:所以這些規定你有先說明嗎? 不然的話誰知道? 12/12 13:18
pichubaby:在題目要求內,當是往年的測資要求沒這麼高的樣子 12/12 13:32
pichubaby:主要還有一點是因為硬碟GG,導致今天測資我自己生 12/12 13:33
freeman921:我也好奇MAX_LENGTH之類的有是先規定嗎??? 12/12 13:59
題目在這邊http://par.cse.nsysu.edu.tw/~cbyang/course/ds/ds_index.htm 習題二 所以其實是沒有規定,只是最先注意到這個問題,是看到有同學使用gets被跳警告 然後想到測資裡面其實有這個缺陷存在(buffer overflow) 再確認過題目要求之後才確定同學應該要能處理夠大的資料才行 ※ 編輯: pichubaby 來自: 140.117.182.115 (12/12 14:11)
RiotGames:考慮到 singed 的話就是前期容易被壓 12/12 14:18
pichubaby:沒考慮到的話那就是會有後期金貝貝阿 12/12 14:46
peanut97:像ACM程式競賽的題目也會講明 輸入的測資最大是多大 12/12 14:57
peanut97:如果沒講清楚 那是不是所有輸入都要做成能接受"大數"? 12/12 14:57
gmoz:你測資要給定阿 測資變來變去怎麼叫測資XDD 12/12 15:02
gmoz:業界雖然很多會變來變去 但像這些東西一定會要案主講清楚啊 12/12 15:03
gmoz:你作業的原始目的是弄清楚霍夫曼編碼 而不是程式例外處理吧:p 12/12 15:03
gmoz:所以你的課是寫程式的課? 12/12 15:05
b6byc:實際上,常常有警告...雖然說不應該啦. 不過人來人走,沒人管. 12/12 17:08
zaknafein:好難 12/12 17:18
AGanPTT:別嘗試想滿足所有人,也別自以為是在對學生好,年齡與經 12/12 18:07
AGanPTT:驗的差距導致的價值觀不同,花費過多的心力累的只有自己, 12/12 18:07
AGanPTT:然後只會換掉學生的謾罵。 by 過來人 12/12 18:07
gmoz:淚推樓上 12/12 19:30
edward13:這.. 我想可能要先把code complete看完才能寫作業 12/12 20:12
lTERRAl:我倒是覺得大學應該先教python C/C++ 學用跟實際差距過大 12/12 21:35
lTERRAl:程式應該是幫助人解決問題為主 不是反過來製造問題 12/12 21:36
lTERRAl:尤其要著重在如何培養解決問題的興趣 而不是扼殺熱情 12/12 21:39
s25g5d4:幫推 12/12 23:12
pichubaby:其實我個人認為... python不是自己看看就好了((理性勿戰 12/13 00:32
hicoy:學C是為了後面的OS鋪路阿 12/13 00:41
VVll:資工系學c/c++不是基本中的基本嗎0.0 12/13 02:51
lTERRAl:資工先學C/C++ 只是個政治上正確的事情 實務上並不是 12/13 03:05
lTERRAl:當學習第一個程式語言 會影響你對程式學習的興趣動力 12/13 03:06
lTERRAl:直譯式的程式語言 可以讓你更快速進入程式設計的思考邏輯 12/13 03:08
usoko:不要把大學部跟業界相比 你可以加開助教課程鼓勵學生來聽 12/13 03:33
usoko:也不用在意通過率這種問題 都成年人了 作業交了屍體出就是當 12/13 03:34
usoko:必修還怕你不認真嗎 選修再來煩惱這個吧 12/13 03:35
meowyih:完全不能理解 "資工系" 第一個語言學Python的好處在哪 :p 12/13 07:14
meowyih:如果是要外行人快快樂樂學程式, 不如學JavaScript好了, 好 12/13 07:15
meowyih:歹可以拿筆記本寫寫然後開個IE就能玩, 更有成就感 XD 12/13 07:15
TonyQ:用 ie 的話得到的不是成就感吧 12/13 10:30
Ansaga:我在IE得到了好多我一輩子都不想得到的東西orz 12/13 13:39
f1234518456:我從用IE的人身上學到好多東西阿 脾氣變越來越好了 12/13 20:02
popoblue:老闆是花錢請你作功能 不是要你寫0錯誤的程式的 @@ 12/13 23:21
popoblue:說真的你寫的情況 真實的工作場合都有遇到 只能說習慣了 12/13 23:21
ninepoints:MAX_LENGTH那樣做並不奇怪,重要的是爆掉的error hand 12/14 06:18
ninepoints:dling吧,現實世界並不存在無上限的memory 12/14 06:19
renice:就算會寫又怎樣..還不是22k..不如考國考 12/14 12:26
Sirctal:樓上鬼扯 軟體業薪水再慘 碩士在北部都有40以上好嗎?? 12/14 13:23
usoko:樓上漏了一點 要四大碩(或是加上中字輩)比較容易40以上 12/14 13:41
Sirctal:會嗎?? 我很多朋友私校的一樣有40k以上標準阿 12/14 16:34
cancerjung:117好懷念 12/16 00:24
miname:原po想要通過率高的話就加開助教課程讓大家帶屍體來debug 12/16 18:08
miname:新手連google都不知道要下啥關鍵字, 讓他自生自滅一定死的 12/16 18:09
miname:不要把教學的工作丟給高中時就有底的同學, 他們沒義務 12/16 18:10
miname:要禁止compile warning的話, 你有把gcc全部warning教過一遍 12/16 18:19
miname:嗎? 不教而殺謂之虐... 12/16 18:20