[請益] 大學部資料結構作業標準
大家好,小弟是117的資結助教。
其實這個問題應該是問老闆,老闆決定就好,
只是我對於這個有點實際的問題很想聽聽目前在業界的大大們的意見。
目前有一份作業是這樣的,老師課堂上有教賀夫曼編碼,因此要實作一隻程式
這隻程式能夠以賀夫曼編碼完成壓縮以及解壓縮。
當我當年修課時,我原先以為這應該是很簡單的問題,然而當了助教之後才發現
事實上能夠完成這項作業的人遠低於我當年的預期。
((大概一兩成吧...
而且還發現這個通過率其實是常態。
也就是其實當年和我修課的同學,他們就算是寫不出這份作業,卻也還是畢業了。
也就是其實當年在寫這份作業的學長姐 ...... ......
其實我個人在學期初是希望這份作業在今年的通過率能夠超過八成,
因此在今年的作業標準上,其實是比往年還要嚴格不少,
例如編譯期發現警告就會被我退件,或者是發現memleak、未定義行為也會被我直接
退件。
*這門課的作業被退件之後,假如在期限內可以無限次補交。
只是以目前而言,其實通過狀況沒有比去年高多少,甚至比去年更低!不過,今年
和去年並不是使用同一份測資,因此在去年可以通過的答案,到了今年不一定可以直接
通過。(我當年的交作業被我今年其中一個測試資料幹掉了XD)
所以問題來了,基本上我會想這麼做的主要動機是為了同學好,因為我會希望我在
寫這份作業的時候在不影響分數的前提下,助教盡可能的點出會產生BUG的點,以及如
何修正,因為在大學時期能夠養成好的習慣對於未來就業是有幫助的。
然而在通過率如此低卻還能畢業的情況下,似乎就算寫出來的Code滿滿的警告,
在業界上還是能用的?
假如是這樣的話,是否這樣要求同學其實是有些過份?
=====================
話說假如只是用想的話,priority queue + binary tree輕鬆就解決掉了
但是同學有些會掛在賀夫曼編碼的buffer開不夠大,
以致於當測資是單斜樹的時候會噴掉,或者是沒有考慮到singed和
unsigned char的問題。(看看最近有點紅的大富翁黑特文XD)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.182.115
推
12/12 07:51, , 1F
12/12 07:51, 1F
推
12/12 08:08, , 2F
12/12 08:08, 2F
推
12/12 08:31, , 3F
12/12 08:31, 3F
推
12/12 08:50, , 4F
12/12 08:50, 4F
→
12/12 09:00, , 5F
12/12 09:00, 5F
其實我覺得就算不強制語言,同學應該還是只會C\C++啦XD
這份是大二作業,我們Lab另外一份碩一的就沒有強制語言,頗歡樂的XD
推
12/12 09:01, , 6F
12/12 09:01, 6F
→
12/12 09:04, , 7F
12/12 09:04, 7F
推
12/12 09:12, , 8F
12/12 09:12, 8F
其實我有點擔心的就是這種問題,因為有可能因為作業時間佔比增加,排擠到他去想
其他狀況。
→
12/12 09:29, , 9F
12/12 09:29, 9F
哈..哈哈
→
12/12 09:39, , 10F
12/12 09:39, 10F
其實也不一定,因為有的時候是看到後面同學的程式碼才想到可能有某種問題
例如看到
#define MAXLENGTH 500
char buf[MAXLENGTH];
然後程式中出現
scanf("%s",buf);
那這時候我的測資就有能可拉大,不再是十幾個字元
*這份作業要求輸入兩個字元可重覆之字串,取內部字元作集合進行集合運算
然後退件內容大概會這樣寫
EX:
同學您好,當測資超過500個字元時程式會出錯。
比較有Sense的同學會知道該改用getc或是cin配c++的String
比較沒Sense的同學,下一次的版本就會變成
#define MAXLENGTH 1000
...
所以當測資會過的時候,其實不代表就是沒問題了XDrz
→
12/12 09:44, , 11F
12/12 09:44, 11F
推
12/12 11:02, , 12F
12/12 11:02, 12F
推
12/12 11:17, , 13F
12/12 11:17, 13F
推
12/12 11:27, , 14F
12/12 11:27, 14F
推
12/12 11:59, , 15F
12/12 11:59, 15F
→
12/12 12:01, , 16F
12/12 12:01, 16F
→
12/12 12:01, , 17F
12/12 12:01, 17F
→
12/12 12:03, , 18F
12/12 12:03, 18F
我覺得設計出Warning的黑名單也許是可以嘗試的方向
因為像是跳出unused variable這種,其實我是覺得必要性沒那麼高,
但是有可能代表上面宣告
int vari,varj;
然後複製貼上兩行
vari = inputi;
vari = inputj;
第二行忘記改
※ 編輯: pichubaby 來自: 140.117.182.115 (12/12 12:54)
→
12/12 12:48, , 19F
12/12 12:48, 19F
→
12/12 12:48, , 20F
12/12 12:48, 20F
→
12/12 12:51, , 21F
12/12 12:51, 21F
→
12/12 13:02, , 22F
12/12 13:02, 22F
→
12/12 13:07, , 23F
12/12 13:07, 23F
推
12/12 13:11, , 24F
12/12 13:11, 24F
→
12/12 13:11, , 25F
12/12 13:11, 25F
→
12/12 13:12, , 26F
12/12 13:12, 26F
→
12/12 13:12, , 27F
12/12 13:12, 27F
→
12/12 13:18, , 28F
12/12 13:18, 28F
→
12/12 13:32, , 29F
12/12 13:32, 29F
→
12/12 13:33, , 30F
12/12 13:33, 30F
推
12/12 13:59, , 31F
12/12 13:59, 31F
題目在這邊http://par.cse.nsysu.edu.tw/~cbyang/course/ds/ds_index.htm
習題二
所以其實是沒有規定,只是最先注意到這個問題,是看到有同學使用gets被跳警告
然後想到測資裡面其實有這個缺陷存在(buffer overflow)
再確認過題目要求之後才確定同學應該要能處理夠大的資料才行
※ 編輯: pichubaby 來自: 140.117.182.115 (12/12 14:11)
→
12/12 14:18, , 32F
12/12 14:18, 32F
→
12/12 14:46, , 33F
12/12 14:46, 33F
推
12/12 14:57, , 34F
12/12 14:57, 34F
→
12/12 14:57, , 35F
12/12 14:57, 35F
推
12/12 15:02, , 36F
12/12 15:02, 36F
→
12/12 15:03, , 37F
12/12 15:03, 37F
→
12/12 15:03, , 38F
12/12 15:03, 38F
→
12/12 15:05, , 39F
12/12 15:05, 39F
推
12/12 17:08, , 40F
12/12 17:08, 40F
推
12/12 17:18, , 41F
12/12 17:18, 41F
推
12/12 18:07, , 42F
12/12 18:07, 42F
→
12/12 18:07, , 43F
12/12 18:07, 43F
→
12/12 18:07, , 44F
12/12 18:07, 44F
推
12/12 19:30, , 45F
12/12 19:30, 45F
推
12/12 20:12, , 46F
12/12 20:12, 46F
→
12/12 21:35, , 47F
12/12 21:35, 47F
→
12/12 21:36, , 48F
12/12 21:36, 48F
→
12/12 21:39, , 49F
12/12 21:39, 49F
推
12/12 23:12, , 50F
12/12 23:12, 50F
→
12/13 00:32, , 51F
12/13 00:32, 51F
推
12/13 00:41, , 52F
12/13 00:41, 52F
→
12/13 02:51, , 53F
12/13 02:51, 53F
推
12/13 03:05, , 54F
12/13 03:05, 54F
→
12/13 03:06, , 55F
12/13 03:06, 55F
→
12/13 03:08, , 56F
12/13 03:08, 56F
推
12/13 03:33, , 57F
12/13 03:33, 57F
→
12/13 03:34, , 58F
12/13 03:34, 58F
→
12/13 03:35, , 59F
12/13 03:35, 59F
推
12/13 07:14, , 60F
12/13 07:14, 60F
→
12/13 07:15, , 61F
12/13 07:15, 61F
→
12/13 07:15, , 62F
12/13 07:15, 62F
→
12/13 10:30, , 63F
12/13 10:30, 63F
推
12/13 13:39, , 64F
12/13 13:39, 64F
→
12/13 20:02, , 65F
12/13 20:02, 65F
推
12/13 23:21, , 66F
12/13 23:21, 66F
→
12/13 23:21, , 67F
12/13 23:21, 67F
推
12/14 06:18, , 68F
12/14 06:18, 68F
→
12/14 06:19, , 69F
12/14 06:19, 69F
推
12/14 12:26, , 70F
12/14 12:26, 70F
推
12/14 13:23, , 71F
12/14 13:23, 71F
推
12/14 13:41, , 72F
12/14 13:41, 72F
推
12/14 16:34, , 73F
12/14 16:34, 73F
推
12/16 00:24, , 74F
12/16 00:24, 74F
推
12/16 18:08, , 75F
12/16 18:08, 75F
→
12/16 18:09, , 76F
12/16 18:09, 76F
→
12/16 18:10, , 77F
12/16 18:10, 77F
→
12/16 18:19, , 78F
12/16 18:19, 78F
→
12/16 18:20, , 79F
12/16 18:20, 79F
討論串 (同標題文章)