(个人向)数据科学的 Python 基础课程测评
《数据科学的 Python 基础》是 2021 级起的学院培养计划中大二上的学院核心课,同时也是一门本研合上课程,由现任首都经济贸易大学研究生院副院长阮敬教授开课。

这门课每周 3 学时,12 周结课,记 2 学分。值得指出的是,课程有参考书《Python 数据分析基础》,为阮敬老师编著,目前已更新至第三版(但亲测第二版够用,干货满满)。

课程的主要内容为:编程基础理论、Python 简介与环境搭建实践、Python 编程基础、Python 编程进阶、Python 数据预处理、Python 数据描述与探索性数据分析、Python 数据可视化、Python 数据分析与统计建模。(摘自课件)
课程的考核方式如下:
出勤(10)+ 平时作业(40)+ 期末考试(50)
- 出勤
每节课会有扫码签到(这也是光华教务的统一要求),光华教务要求的签到不算严格,课前、课间、课下都可以签到。但从这学期来看。扫码签到对实际出勤率的约束实在是有限,因此阮敬老师在中段往后的课程会有突击抽查签到环节。
- 平时作业
以 2022 年秋季学期为例,这学期一共布置了 6 次作业,每次作业都和该周课程紧密关联。而随着课程的推进,难度不断上升,作业的难度也近似线性增加,每次作业花的时间也近似单调增加。作业主要还是考察技能,较少考察编程思想,因此听课认真、态度认真地完成作业应该都可以得到高分。
顺带补充一下,作业会要求提交源代码(可以是 .py 或者 .ipynb 文件)和 PDF 两种版本。老师会在第一节课提示大家自行下载 Anaconda,可以使用 Anaconda 提供的环境,也可以直接使用 Python 命令调用 jupyter notebook。我也很是推荐 jupyter notebook,它能集成代码和文字(markdown),能很美观、有条理地用作记录,并且可以方便地导出为 PDF、HTML 等格式。
- 期末考试
因为是 12 周结课的课,期末考试安排在最后一次课,那么时间大致在 11 月底或 12 月初。期末考试是开卷的,注意“开卷”指的是可以使用任何纸质资料,不能使用电子资料。期末考使用手机扫码填写问卷,题目全为选择题但随机。具体规则为
【考试提醒】
- 本次考试采用手机扫描二维码答题的形式,题型全部为客观题。请保证考试期间手机电量充足,必要时可以准备手机充电器或者充电宝。
- 考试系统会对你的答题情况进行自动识别,包括但不限于 IP 地址识别、页面切换识别等。如出现考试违规情况,系统自动将考试成绩作废,请自觉遵守考试纪律。
- 本次考试为开卷考试,开卷材料仅限纸质材料。除了手机答题之外,禁止使用 ipad、电脑等其他电子设备。
【考试系统细节】
1、考试时长 120 分钟;
2、考试题目一共 91 题,共 100 分;
3、只能用手机微信扫码答题,考虑到可能会有紧急情况,允许切屏 10 次,超出该次数会取消继续作答权限;
4、提交试卷前,可以预览答卷;
5、考试时请不要轻易退出考试界面,因是随机顺序考题,退出考试界面需要重头开始答题(而且已答题目不会保存答案,需要重新作答);
6、答题时如果超过 600 秒(10 分钟)没有任何操作,则自动强制交卷。
题目也类似于这门课的定位,主要是考察基本技能是否掌握,并没有过多地考察编程思想和思维能力。选择题以基础题居多,数据分析的题目我个人推测也是受考试形式限制而几乎没有考察,数据可视化更是没有涉及。初看到 91 题时我是懵的,因此不妨透露一下第一题:

而对于基础题,我感觉难度类似于《计算概论 C 》的期末笔试,可能会涉及到很多原理和细节,如果没有认真听课会错过很多知识点。
值得指出的是,开卷考要求的是纸质资料,而老师的课件与教材《Python 数据分析基础》无异,因此与其打印课件,不如直接买书。买书我再次推荐一下第二版,第三版和第二版价格差距太大了,且第二版的内容足矣。对了,去年的《计算概论 C 》的资料也可以一并带上!
另外,手机不允许切屏意在防作弊,用手机作答意在禁止跑代码,还是希望大家能踏踏实实从这门课中掌握到一些基本技能并在考场上自主运用!
- 小小总结
阮敬老师是统计学出身的,有丰富的统计知识基础,从阮敬老师的《Python 数据分析基础》能看出老师的底子的。而统计学知识对于我们这个阶段的水平只要要求掌握,不需要知道太多编程思想,也不需要知道太多理论支持,因此这门课是工具性比较强的。
也是这门课的性质决定的,阮老师主要也是带我们过 PPT,课上可能来不及自己过一遍代码,光是记录知识点也费劲。但如果回过头看,这是一门工具性比较强的学科,可能也不需要额外做很多的笔记,而是将来某个需要它的时刻,翻开讲义找到需要的代码即可。
而这门课的课程结构或许还可以优化,前三四节课讲的是非常基础的 Python 语法,而这已经完全在《计算概论 C》中覆盖了。因为工具性,所以回过头学习这块知识时,没有重温计算机原理或编程思想,而只有知识点的重复,对于多数同学可能构成了挑战。而几节课后突然进入其他领域,又让松懈的同学们提不起注意,状态没有及时切换。而更往后的到了数据处理和可视化的部分,工具性更为明显,转变听课状态或态度尚且有时滞,这可能又构成了一大挑战。总体而言,这门课的设置初衷是很好的,课程内容是丰富的,但课程结构还有不小的优化空间。
其实第一节课下来,不看简介也能从风格中感知到这门课的差异。阮敬老师希望以相对轻松幽默的方式给我们讲授知识,课堂中注意穿插着调动气氛。比如讲到数据可视化时,老师紧跟时事,带领我们在习总书记的二十大报告中汲取精神力量,自信自强,守正创新,踔厉奋发,勇毅前行。

生动传神的点睛之笔也能恰到好处地加深我们的理解和印象。比如讲到散点图和线性回归拟合直线时,当散点紧密团结在以 45°线为核心的 QQ 图中时,说明拟合效果良好。

一些代码没怎么敲就还是会慢慢淡忘,而印象比较深的是他讲到面向对象编程的那节课,例子恰如其分,生动有趣。现在回去看,每次用到 python 进行数据处理我都要经常借助外部资料,但面向对象传递的是编程思想,阮敬老师很好地完成了这一点!
总的来说,我还是建议在这门课上不要太受一些往年“经验”的影响,也尽量克服自己的一些偏见。这门课到头来还是它的工具性,难免可能觉得老师在“PPT reader”,但根据个人经验来看,不妨把它当做老师带我们一起过 Python 技能,这比后期自己看书自学实际也省去了不小时间成本。更何况,“师傅领进门,修行靠个人”。编程依赖的是“编”,光听老师讲还不能做到掌握,它需要课后的勤练习,代码敲着敲着就会了。课上的例子是很生动的,比如面向对象不分,我就自己写了一个类“gsmer”:

对于数据处理部分,不妨自力更生,我用了寒号近一年的数据掌握了 numpy、pandas、matplotlib 等的用法。一开始挺痛苦的,但掌握技能后能感受到些许成就感。

过往的推送可以参考(点击跳转):
总的来说,我会推荐希望在指引下学习编程和数据处理相关技能的同学参考这门课!