536 views
 owned this note
# 2017 年秋季作業說明 ###### tags: `sysprog2017` :::info :mega: 本頁為開設於台南成功大學資訊工程系的「[進階電腦系統理論與實作](http://wiki.csie.ncku.edu.tw/sysprog/schedule)」課程作業的注意須知,請詳閱。 ::: ## 共筆和繳交方式 本課程使用 [HackMD](https://hackmd.io/) 來輔助教學,所有的作業也一併使用該系統來追蹤和紀錄 - 新手教學影片: [從無到有學習HackMD](https://www.youtube.com/watch?v=r5FOR-YU33c) - 開發過程很重要,我們不接受「突然生出進度」這種事 ## 標注須知 下方只要是 `$` 開頭,就表示在 GNU/Linux 的終端機裡面輸入的指令,比方說 `$ sudo apt-get update`,就表示要輸入 `sudo apt-get update`。 ## 預先準備動作 * 安裝 GNU/Linux,建議安裝 [Lubuntu](http://lubuntu.net/) 16.10 (注意: 應安裝 64-bit 版本) * 注意: 不要透過虛擬機器,而是用==多重開機==直接裝在==實體機器==的硬碟中,記得先切割好硬碟 * 新手教學影片: [輕鬆學會 Windows / Ubuntu 雙系統安裝](https://www.youtube.com/watch?v=rjpBTT6AmeU) * 安裝相關開發工具 * [gnuplot 語法解說和示範](https://hackmd.io/s/Skwp-alOg#) ``` $ sudo apt-get update $ sudo apt-get install build-essential $ sudo apt-get install linux-tools-common linux-tools-generic $ sudo apt-get install cppcheck astyle colordiff gnuplot ``` * 關於 GNU/Linux 指令,請參閱 [鳥哥的 Linux 私房菜](http://linux.vbird.org/) * 本系列課程全程使用 GNU/Linux,全世界有十幾億台裝置內建 Linux 系統,學習 Linux 是相當划算的投資! * 務必細讀 ==[GNU/Linux 開發工具共筆](https://hackmd.io/c/rJKbX1pFZ)== * 沒有特別聲明的話,原始程式碼==應採用 [K&R style](https://en.wikipedia.org/wiki/Indent_style#K.26R_style)==,我們會透過 [Git Hooks](https://git-scm.com/docs/githooks) 強制要求保持一致的程式開發風格 * 參考資訊: [Recommended C Style and Coding Standards](http://ieng9.ucsd.edu/~cs30x/indhill-cstyle.html) * ==不用 Tab,而是 4 個空白==來進行縮排 * astyle 工具可進行程式排版,透過 Git hook 自動套用 K&R style 到程式碼: ![](https://i.imgur.com/AF7RTMM.png) ## 作業的範疇 每份作業的繳交分成 2 部份: * GitHub 上的程式碼,公開存取,而且要有完整的開發紀錄 * 延伸閱讀: [Git commit message 撰寫和改進實例](https://hackmd.io/s/HJQk5dt2x) * HackMD 上的「開發紀錄」:公開給大家指教 (需要設定為 Editable) 以上都該在指定的截止時間前完成,不接受補交。 ## 參考和抄襲 * 我們鼓勵學生多方參考各種材料,除了第一手資料以外,也包含其他同學的共筆 * 作業的開發紀錄和程式如果引用到參考資料時,務必指出來,特別是其他同學的共筆,除了給予 credit 外,還要附上充分的超連結資訊 * 無法認定出處的「參考」,則視同為「抄襲」,授課教師會斟酌給予學生澄清的機會