大家好,
我從以前就有一直這個問題,
在大學裡面像是資料結構、演算法這種課程,
一定會希望學生自己去實作一些基礎的功能,
而這些功能又常是STL等等函式庫裡有提供的,
如果作業的批改當中沒有辦法一一的去看學生的code,
要如何避免學生偷懶去使用某些特定的container或function?
最簡單最直觀的方法,就是針對每一份code去移除code裡面這些被include的header,
甚至去把那些lib直接從原本的路徑移開或者重新命名。
可是有什麼比較有效率的做法嗎?
例如在makefile當中去禁止,
或者用寫一些可以讓編譯器預處理掉這些lib的code。
不知道大家有沒有什麼經驗?
#ifdef _GLIBCXX_VECTOR 就 #error 之類的?
作者: Sylveon (ä»™åç²¾éˆ) 2016-12-08 12:49:00
114我不是很想告訴你,可以加-D_GLIBCXX_VECTOR 之類的把一些東西弄掉
作者:
Caesar08 (Caesar)
2016-12-08 12:55:00如果學生直接找source code貼上呢?
作者: Sylveon (ä»™åç²¾éˆ) 2016-12-08 13:15:00
有人這樣幹過啊,可是那位本來就很強,要不要認真實作是學生的事,一直搞下去也只會變成補洞大會而已,也有可能把其他正常的Code搞爛
作者:
CoNsTaR ((const *))
2016-12-08 13:34:00我大一的時候讀了幾本深入剖析 stl 之類的書 資結作業我都比照 SGI stl 的寫 還記得不過是一個 linked list 我寫了兩天 總共 1100 多行 XD
作者: Sylveon (ä»™åç²¾éˆ) 2016-12-08 13:35:00
有的~
作者:
CoNsTaR ((const *))
2016-12-08 13:36:00當時其實還滿擔心助教說我是複製貼上 stl 的,不過還好沒有
作者:
pttworld (批踢踢世界)
2016-12-08 14:03:00撰寫簡易讀取資料夾底下程式檔案逐行比對之程式。
作者:
chchwy (mat)
2016-12-08 17:03:00這種簡單的批次文字掃描用grep吧不然用notepad++也可以對整個目錄搜尋 不需要自己看
感謝大家的意見 貼上整個source code的這個 能成功也只能說本來就很厲害XD
作者:
Ommm5566 (56天團)
2016-12-11 13:26:00有辦法 但是出作業的人負擔會比較大你寫好一個template框架 然後要求學生去Inheritance這個框架去擴充完成作業甚至連main()裡面都寫好,要求這邊不能動不過這樣已經有點TDD味道了
作者:
wtchen (沒有存在感的人)
2016-12-11 17:40:00Coursera有些C++的課就是這樣弄的。