Re: [分享] 大家來分享選修課的心得吧

作者: LeoSW (月夜飄雪)   2009-07-22 00:47:13
閑閑沒事 我也來寫一篇好了
先以這學期修的為主:p
課名:高等程式設計
教授:劉邦鋒老師
LeoSW:★★★★★
上課:
這門課以C and C++ 為主
上課用老師的講義 沒有課本 有些課會需要帶laptop
課程主要分為debug 跟 coding style 跟 演算法三個部份
debug的部份 會拿以前大一C programming時
一些神奇的9分bug 還有各處蒐集來的bug
上課時每個人要帶自己的laptop來練習debug
然後教一些可能會出現的bug 以及從一些徵兆大概怎麼去判斷bug在哪裡
coding style的部份則是經驗談
以討論怎麼寫程式 會讓程式好寫好讀好維護
以及一些C和C++的技巧 如operator overloading跟template programming等等
演算法的部份比較像是大二演算法的複習+實作
主要是講例子 用很多例子來討論演算法的應用
有教DP, Greedy, Divide and conqer, Graph Algorithm, 以及一些NPC問題
上課老師會點同學起來回答問題
不過不算點名 只是想了解同學的學習狀況
節奏對上課不少外系沒修過演算法的同學似乎有點快
上課風格就是P老師風格 有修過他的大一C programming的應該就知道
上課有時候會用到一些高中數學的基礎 不過我想應該也還好
主要是C跟OO跟Algorithm的基礎要有
作業:
第一個作業是拿以前自己覺得coding style不好的code
改過以後用紙本寫一份報告 描述自己改了哪些 為什麼要改
第二、三個作業就是coding 形式跟大一一樣 交到judge girl
一個是Divide and conqer 一個是Greedy
(我想之後可能會換別的演算法)
我想難度應該還好 有上課花點時間應該都問題不大
考試:
形式跟大一 C programming 一樣 上機考
這學期考三次 因為老師覺得考多一點大家壓力比較不會太集中
第一次老師覺得大家好像沒有跟上 所以考很簡單 造成太多滿分
第二次老師難度一下子調太高 又造成幾乎大家都落在10~20分 / 50分滿分
第三次成績好像就還好 分布的比較均勻
考試 4題/4hr 或 5題/5hr
環境跟方式都一樣 在judge girl上考
題目會是debug跟演算法為主
分數:
我不確定分數最後怎麼配分的 而且應該有調過分
最後我是拿95 分數大概看過去似乎落差有點大
70多個人好像有10多個人被當 就分數來說
我覺得是有努力就有分就是了
但是似乎也不算太好拿
心得:
這門課修完對C like的language會有相當程度的進步
以及對演算法的應用、programming style等等
我覺得都會有經驗上的進步
對於想要練coding的人應該會是一門不錯的課
至於拿過牌才進來的這門課應該也是一門很涼的課:p
課名:平行程式設計
教授:劉邦鋒老師
LeoSW:★★★★
這門課由於仍然和Google合作
因此在課程設計上較偏向各種parallel programming language的介紹
當然還是有提到一些parallel programming 的技巧
課程按照四種language來進行: OpenMP, Cuda, MapReduce, MPI
主要就是介紹這些language的用法 特性 以及環境
每種language佔3~5星期不等
沒有用課本 以老師的投影片為主
在介紹完language的特性環境及用法之後
課堂上都會有馬上要練習的coding
每堂課都會有一份派工單 上課前一兩天會放在課程網
在那堂課下課前要繳交派工單紙本
按照派工單的指示完成工作後打勾做記 以及寫下一些實際跑起來的數據
寫上姓名學號後該堂課下課交給助教(不確定有沒有列入成績)
派工單的內容主要是用平行的方法寫一些程式
然後會邊上課邊coding 所以會有一點累
也因此每一堂課都要帶laptop
其中因為MapReduce的部份是跟Google合作
所以會有一個星期是請Google的葉平博士來上課
談的是Google的一些設備、架構 跟MapReduce的Idea
另外由於系上機器不是很充足
加上這門課同時有太多人在共用機器
因此有幾次課 像是Cuda, MapReduce的時候
就發生硬體上的問題而導致上課停擺
這是我沒有把這門課打滿分的一個原因
希望之後修課的人可以有比較好的環境~
作業&考試:
這門課基本上沒有平時作業也沒有考試
只有上課的每日派工單 跟期末project
所以如果不希望回家以後有大量作業的可以考慮
派工單內容如前所述
期末project則是3~6人一組為原則
期末會有一個星期大家輪流presentation
題目是任何有關平行程式且用上課教的四種language為主
這應該就是這門課的主要成績
至於要做到什麼樣的程度...
我想這門課因為研究生滿多的 所以大體上大家都在有限的時間內
作出很不錯的成果
分數:
這門課分數看了一下
幾乎都落在86~91之間
似乎是以final project為主要依據
大致上只要final project有一定的水準都不會太差
心得:
除了機器上的問題
這門課在上課的時候會很需要注意力 以及coding的速度
如果對自己coding速度比較沒把握 也可以上課前先完成一部份
project的部份 題目選擇適中的就好
我們這組心血來潮跑去問大氣系的教授有沒有合適的題目
因此做了一個跟天氣預測有關的題目 導致最後延後完成 效果也不算太好orz
最後我們這組拿了86
而且之後還會繼續再跟大氣系的合作
如果有心 由於這門課滿偏不同language的熟悉
和parallel programming的應用
因此可以接觸到一些相關應用的議題上
也可以多接觸不同領域會需要parallel programming的部份
最後是這門課因為有project presentation的限制
所以有人數限制 除非實驗室有特別需求才可以額外加入
project如果是用MapReduce可以請葉平博士指導
但是一樣有人數限制(受到Google人力限制)
作者: purincess (purincess)   2009-07-22 01:59:00
派工單據說少交會扣分. 此外maprduce嚴格來說只有上1星期而已..另外1星期聽葉博士演講, 另外1星期看機器起乩xD
作者: wanquan (X-Y軸的世界)   2009-07-22 08:26:00
把標題換成是那一門課的課名會不會比較好呢?
作者: LeoSW (月夜飄雪)   2009-07-22 09:07:00
樓上這樣標題似乎會有點長 之後再合成一篇?
作者: hakusin (玄)   2009-07-24 01:25:00
)有看有推

Links booklink

Contact Us: admin [ a t ] ucptt.com