| 选课类别:计划内与自由选修 | 教学类型:理论实验课 |
| 课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
| 课程层次:专业基础 | 学分:2.5 |
本课程作为计算机科学技术专业的编程进阶和过渡课程,采取迭代渐进的教学模式,从回顾C语言程序设计的基础知识开始,逐步深入程序在计算机存储系统和操作系统运行的基本原理,将算法和系统联系起来,阐述如何借助系统的特性和编程语言让算法更加正确、高效的实现。本课程从程序的运行时环境开始,依次介绍数据的存储和处理,包括最底层的位运算和指针的使用,从内存的视角检视各种数据类型的构造和使用。然后围绕程序开发与调试的全流程,依次介绍各种确保程序正确运行和方便调试的技巧。在此基础上,介绍程序性能优化的基本概念和测量分析方法,并介绍常用的程序优化技巧,为初学者建立起高效编程的初步认知。最后,还介绍了并发编程和网络编程,从编程实践的角度学习对多核计算资源的使用以及多计算机间相互通信的方法,为操作系统、计算机网络等后续课程的深入学习打下良好的基础。
这门课26春第一次开,个人感到课程安排略有点乱。上课的讲义都是现讲现发,每次课后发的讲义都刚好编到这一堂课的内容为止,有时根本猜不到下节课会讲些什么。实验课与理论课的联系也没有预想中那么紧密,个人体验是实验课内容除了第一次(Linux系统)跟最后一次(程序优化)之外基本就是摆弄指针,并没有很好地同理论课对接。当然,因为这门课是第一次开,有这样的情况也是预料之中。
这门课总归来说还是教了不少有用的技能,例如在Linux系统上的基本开发操作,以及许多程序设计中的tricks。不过因为理论课主要是讲PPT,而实验课又没有很好地涵盖,于是不少内容都在考试后有所遗忘。我想,如果能把PPT上的展示放在次要地位,把实操展示放在主要地位,知识的讲解或许能更深入人心。
课程给分尚可。或许是因为今年第一次开,我以及身边同学得分都比较令人满意。此外,实验课拥有算法竞赛奖项的同学可以不参加实验,直接获得满分。期末考试也是开卷,可以任意携带纸质资料,实际上对携带的纸质资料没有专门限制。课程考核中唯一令人不满的是,在已经进行机考的情况下,仍有50分的手写代码。对于这种重实操的课程来说,手写代码实在是益处不大。
一个给分的参考:实验和机考拿满或接近拿满(理论上应该是满的,没看到具体分数),期末笔试80出头,最终94。不知道隔壁班给分怎么样。