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