反馈1:
软件实现技术课程总结 (1)
本学期的《软件实现技术》课程顺利结束了。作为选择这门课的学生,我在这里对这门课做一个回顾,并总结一下我对这门课的一些感受。
《软件实现技术》这门课是微软和北大软件与微电子学院合作的一门课程,课程的主要目的是介绍微软的开发方法和微软的企业文化,用企业的眼光对学生提出要求,并通过“Learn by doing”的方式提高学生的软件工程的综合能力。课程的老师有的来自微软,授课方式不拘一格,课堂中充满了挑战和激励。
《软件实现技术》包括了以下几大块的内容;这些内容相互补充,相互影响:
· 理论知识的讲解——这一方面主要是软件与微电子学院的老师来讲解。理论知识是必不可少的,即使是实践课也是一样。
· 作业和课堂练习——这个就是“Learn by doing”的体现,有些作业和测试要求当场完成或规定时限完成,还有些作业则是用结对编程的形式完成。多种方式的结合能更有效地弥补能力的不足。平时的作业中加入评分机制评价优劣,并和激励机制共同作用促使学生们竞争。这种“胡萝卜+大棒”的管理方式在实际工作中很常见,而对于学校的课程确是难能可贵。
· 讲座和活动——这是比较有意思的地方。从中我们可以更深入了解微软的企业文化,扩大自己的知识面。知识面过窄是做软件很忌讳的一件事,这一点上这门课考虑得很周到。
· 团队项目——作为一门实践课,项目是必不可少的。课程要求学生组织成团队,开发一个项目。《软件实现技术》的项目要求体现微软的开发方式,并从商业的角度考虑项目的价值和意义;这使得开发项目更加接近实际企业的真实情形,而不是仅仅从学术方面的角度考虑。最后项目结束后还需要公开答辩和发布测试。
我从这门课中收获不少,主要是这几个方面的内容:
· 从技术角度看,我通过实践提高了自己软件开发的能力;在小组项目中,我作为一名Developer,掌握了COM组件,C++的ATL和IE插件编程相关的知识。我最终获得了“最佳Developer”的荣誉和奖励。
· 这门课系统讲解了微软的开发方法,增加了我对实施软件工程的整体上的认识。
· 团队项目和结对编程让我对团队协作有了许多有价值的感悟;我对小组中不同角色的责任的认识也随之加深了。
学习这门课,必须要严格要求自己,不能有“及格就好”的心态。这学期在开这门课时试听的学生有很多人,而看到第一个编程作业时就只剩下19人。我为我选择了这门课感到荣幸,因为我过了“态度”这一关。这正如我所喜欢的一句话:“人无高下,心有高低”。通过付出,这门课回应了我的期待;我也因此获得了在MSRA实习的机会。现在看来,选修这门课是我正确的选择。
对于今后开的这门课程,我的建议是学生不要等到分组后再分角色,而是先分角色再组合。每个人分第一角色和第二角色,并对自己担当角色的能力评分,优先考虑担当第一角色。最后组合时通过能力高下进行分组及个人最终角色的确定。判定方法可以是小组成员总自评分不得小于某一最小值,也可以是其他方法。