| 选课类别:计划内与自由选修 | 教学类型:理论实验课 |
| 课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
| 课程层次:专业选修 | 学分:2.0 |
这是一门面向全校本科生的计算机编程实践课程。该课程面向有一定编程知识的本科生,通过有针对性的几个专题编程训练,进行问题求解的实践,加深学生对问题求解与程序设计的理解与认识,使得学生具有通过编写一定规模的程序求解问题的实践能力。作为一门以实践为主的课程,采用以课堂内讲授与课堂外实践相结合的授课形式。
《面向科学问题求解的编程实践》主要使用Python进行科学问题求解,课程内容包括科学算法、机器学习、模拟、以及物理随机模拟等。这门课不讲解Python语法,而是从问题出发进行编程实践,涉及内容广泛但不深入,适合作为通识课。教材使用MIT的“Introduction to Computation and Programming Using Python”,但有学生反馈这本书对初学者并不友好,特别是在数学原理解释上略显不足。
考核由四次平时作业和一个期末大作业组成。平时作业相对简单,多数基于教材,提交报告即可。大作业选题自由,用任意语言解决科学问题,需提交报告,但选题水平对分数影响较大,有同学建议选题时注意科学性。部分学生表示大作业有一定挑战性,尤其对复杂选题要求更高的解决能力。
普遍反映给分慷慨,许多学生获得优秀或接近优秀的成绩,有“GPA之父”之称。但也有反馈指分数的获益差异大,可能因选题水平和报告完成情况不同。一些学生觉得评分标准模糊,报告和项目完成度是主要考核依据。
课程对有编程基础的学生较友好,但对Python初学者要求自学。多数学员反馈课程教师孙广中讲解平实,教学氛围轻松,但对一些学生吸引力不足,尤其后期到课率下降显著。课程虽不点名,但非例外的点名会提前告知,助教负责且积极解答问题。同时,有学生表示若无强力选题成果,竞争中可能压力较大。
适合已经具备一定编程基础、尤其是自学能力强的学生,尤其是对Python感兴趣或需要学Python的同学。大一自学能力较强者可以尝试选修,课程内容对提升编程实践能力有效,同时给予较高分数,相对友好。高年级和具备相关项目经验的同学在选题上会有优势。
没有在课程出分时及时评价,是因为当时正沉浸于3.3的悲痛与自责之中。现在从逆流成河的悲伤中恢复过来后,那就“实事求是”(扯淡)地评价这门课程吧。
孙广中老师讲课中规中矩,至少在我看来是这样的。虽然没有非常吸引人的片段,但老师还是把一些基本事物的原理说出来了。但是可能有些同学认为太难或者讲的不是很清楚,我也非常理解他们的想法,毕竟我经历了从开课的人满为患到后几节课的不足50人的变化——可以说明老师的讲课对于相当的一部分人来说,是缺乏吸引力的,这可能与课程的跨度过大有关。老师的目的可能是授人以渔,在课上介绍了几个网站供我们了解,但是这对一开始连Python的语法都不清楚,再想去解决一些比较难的科学问题的学生来说,就不是很友好了。
对于教材我不是很满意,虽然是MIT的教材,但是由于定位的原因,重点放在了“如何运用Python方法解决问题”上,而对“方法背后的数学原理”和“Python作用的原理”解释较少,导致在看后面几章时会比较吃力。并且大部分同学学的是“面向过程”的C语言,突然跳转到“面向对象”的Python,难免会有“水土不服”。最后,这本书的难度跨度较大,章节编排也不甚清晰,示例也没能做到一般性。如果先安排更多的章节在前清晰地介绍Python的语法特点和类的构建,再在后面的特定科学问题章节中总结出泛用性的模板,那大家看这本教材的时候也不会太过难懂。
助教比较尽心尽责,每节课后都会留出一个小时在班上解答同学的问题。
比较令我不满的是作业的布置和给分。由于老师没有点到(第一节课和后面几节课反复说明如果人数较少就会点名,但最后还是放过了),平时分完全来自四次小作业与大作业。四次小作业布置的基本上是(其实应该说是“完全”)书上的原程序,不能体现学生的思考能力(或许排除掉那些懒得翻书的人?);大作业是用任意语言写一个科学问题求解的程序,除此之外几乎没有任何要求。理论上来说游戏是可行的,但在给分上不会太出众。
5月15日是最后一份小作业提交截止时间,而直到7月份学期结束后小作业的给分才姗姗来迟,并且每人都是满分,这说明这门课的绩点完全取决于大作业的完成度。但大作业的给分标准恰恰就是没有说明清楚的,导致在出分时一些人凭借几乎没有花费精力的程序就获得了高分,而某些费劲心力准备几个月的同学写出的大程序没有得到期望的分数。
也许有些人会说“不符合要求”,“3就满足吧”,“水学分的课不要那么卷”之类的话,但是与其定下模糊的标准,一开始就制定严格的评价标准不是更好,更令人服气吗?与其明面上是针对低年级非计算机专业的学生开设的课程,实际上引来许多高年级的计批卷绩而挤压了其他学生的优秀率,还大跨度地教授了其他非专业学生根本不懂的内容,一开始把课程标准放严不是更有利于计院学生学到专业知识,放松不是更容易吸引对Python一窍不通的学生了解如何利用程序求解专业问题吗?
孙老师提到这门课之前开过两次,但由于目标不清晰而中断过一次。我想说的是,直到现在这门课程的定位仍然是不清晰的,仿佛是第一次开课,处于懵懂且幼稚的摸索之中。希望孙老师可以找到合适的讲课方法和内容,更好地面向更多的非计算机专业的学生教授这门课。也许某位学生上完后,真正熟悉Python语言并感受其带来的便利,进而更好地解决其专业中出现的科学问题。
总评没有在教务系统发布,但已经出了。利益相关:A
前人和老师的意见是这门课只要上过C语言就可以选,对此我不是特别赞同,我的建议是最好是对python有一定基础的低年级同学或者高年级同学来选。 从本学期开始,这门课增加了四次平时作业,基本都是用python解决一些问题,(当然源代码书上都有),然后完成相应的实验报告。一般只要按时交了基本都会给满。还有就是期末大作业,这也是我为什么建议有基础的同学来选:首先上课老师是不会教python的基本操作的,这得自学;其次大作业是要求就一个科学问题用python解决,其中选题的水平高低很大程度上决定了最后的得分,高年级的同学往往能做出更加“高端”的选题,得高分的机会也更大。
不过这门课不会给3以下的绩点,想水学分的也能选。而且似乎是核心通识(?)
以及如果有想挑战一下自己的大一同学也可以选,确实能收获一点东西
先谈讲课吧。可以看出孙老师功底还是很nice的,但是不知道是不是因为到课人数极少的原因,课堂氛围有点偏向于平淡。但是如果认真听还是可以有一定的收获的。课程内容的话感觉是大杂烩,不会专门去讲python的基础语法,而是介绍了一些算法(线性规划、遗传、机器学习等),但又没有特别深入,也算是符合“通识课”的定位吧。
给分的话基本上是看大作业给的分,但是嘛...作为大一非oier...大作业个人感觉不是很好写(毕竟要求是“面向科学问题求解”嘛,但大一er对科学问题的了解不是那么多,再加上课堂上只学过C码力有限,所以说对大部分大一非oier来说其实不太友好)我是自己把python基础语法看了一遍,然后学了一些基本的机器视觉工具,然后搭了个GUI做了个图片处理的工具。自认为做的不大好,最后bb系统上是90,教务系统上还没出,出了再补上评分吧。
————————————————————————
确实是A,那确实是给分相当好的,好像优秀以上就会有A了,最差都是B,老师也是很努力在给大家高分了
作为一名纯python小白,老师没有讲语法是我没有想到的(悲)
作业主要是四次实验和大作业,四次实验都很简单并且严格符合教材(所以完全可以自学),大作业选题极为宽泛并且给了充足的时间,感觉认真把作业坐下来会有很大收获
老师给分真的超级好!!!四次实验基本都是给满,大作业的话,虽然自己的代码很原始(毕竟初学者),但老师总评给了4.0,真的远远超出我的预期
课程本身所用的教材是MIT的《python编程导论》第2版,书本内容与平时作业的关系比较大,主要介绍了python的matplotlib库以及一些基础的应用。四次作业分别是:绘图、二维随机游走、使用蒙特卡洛模拟求圆周率和理解实验定律(胡克定律)。基本上都可以在教材中找到对应的源代码,实在不行抄一下改一下变量名。每次写完后要在bb系统上提交源代码和实验报告(不超过4页),总体而言任务量不大。
大作业的话专门为大四毕业生提早开了一个窗口,不过非大四学生也可以选择提前交。主题不定,老师在一节课上专门展示了上学期同学们的选题,同时介绍了几个优秀案例。个人感觉老师对大作业选题与科学有关很在意,所以最好还是不要写游戏。
课程内容介绍了很多算法相关的内容,但是并不深入,也算是符合通识课的要求吧。老师上课时很期待跟大家互动,但是课上来的人并不多,老师想要互动的想法就很难实现了。
就个人而言这门课我并不推荐大一就来选,当然如果你的基础很好,已经熟练掌握python就当我没说。这门课相当于基础班的一个提升,老师并不讲任何与python语法有关的内容,所以看评课社区时要理智,大一选课要慎重。(别像我这样大一还没基础就过来上课)yysy,老师给分是真的很好,今年貌似绩点最低是3.0,优秀的人中最低是4.0。
最后祝这门课越开越好,越来越完善。