选课类别:核心通识 | 教学类型:理论实验课 |
课程类别:一般通识 | 开课单位:计算机科学与技术系 |
课程层次:自由选修 | 学分:2.0 |
这是一门面向全校本科生的计算机编程实践课程。该课程面向有一定编程知识的本科生,通过有针对性的几个专题编程训练,进行问题求解的实践,加深学生对问题求解与程序设计的理解与认识,使得学生具有通过编写一定规模的程序求解问题的实践能力。作为一门以实践为主的课程,采用以课堂内讲授与课堂外实践相结合的授课形式。
《面向科学问题求解的编程实践》由孙广中讲授,主要内容是利用Python进行科学问题的求解。课程从Python的基础语法开始,进阶讲解科学算法、机器学习、模拟等内容。教材选用的是MIT的《Python编程导论》,涵盖Python在科学问题中的应用。课程定位为通识课,但实际内容跨度较大,涉及的算法和科学计算对编程基础较好的学生更加友好。
课程评估主要由四次平时作业和一次大作业构成。平时作业简单,主要是根据教材中的例子编程。大作业要求用Python(可选其他语言)解决一个自选的科学问题项目,并提交报告。选题相对自由,不少学生选择Project Euler题目或简单的算法实现。大作业对学生的项目选题和实现有较高要求,有经验的高年级学生往往能选到更具挑战性的项目。
孙老师讲授内容广泛,部分学生认为课程跨度大、内容较难,但也有助于解决实际问题。课程采用自学与课堂讲授相结合的方式,支持学生自学探索,有一定的灵活性。助教在课后提供额外辅导,对后续学习有一定帮助。部分学生反映课堂氛围不够活跃,但教师在项目方面提供了一定的支持。
评估体系较为宽松,大部分学生能拿到高分。平时作业基本上给满分,大作业选题广泛,但给分标准不够透明,导致有学生在期待上遇到落差。部分学生认为课程应限制选课对象以避免过度竞争。一些低年级学生因缺乏科学问题处理经验而感到项目选题困难。
总体来说,《面向科学问题求解的编程实践》课程适合对Python和科学计算抱有浓厚兴趣且具备一定编程基础的学生。对于希望通过实践学习提升编程能力的同学而言,这门课程提供了一个良好的平台。对于编程初学者或基础较弱的同学,建议先行掌握Python基础知识,以充分利用课堂资源和自学机会。
很好的课 唯一不爽的是现在我还没知道这个算公选课还是自由选修。。。
上课主要讲用py解决各种有趣的问题
老师也玩project euler这我是没想到的
考核方式是自己解决一个自选的问题
我用python写了个Oblivious Transer使得两个学生可以在互相不知道对方GPA的情况下得知谁的G更高(((
感兴趣的同学可以看看多方安全计算有关的话题
给分超好,直接满了。。。
这门课就是学python然后用python讲如课程名的内容,五等级制。好像没查到能算公选课,所以可能只能当自由选修。(我倒是公选已经够了所以不重要) 作业只有刚学python的一次多种方法求fibonacci数列和一次大作业。 群里会发电子版的《程序设计导论:python语言实践》,自学+前几周上课来速成python。然后就开始讲各种算法和例子,然后我就没上过课了……后半学期我基本整天都在睡觉或者打pcr公会战。不过就我还在听的课看来课程内容质量应该还不错的。 大作业是用任意语言解决一个任意问题,要写报告。我用python+gurobi写了个pcr公会战排刀程序(抽象成一个整数优化问题,直接使用gurobi优化)……报告里说整数优化是经济学问题,硬扯到“科学问题求解”。可能因为老师和助教都是二次元(助教也玩pcr),也就算是“科学问题求解”了。 我认识的选这门课的几个人总评都是A+
没有在课程出分时及时评价,是因为当时正沉浸于3.3的悲痛与自责之中。现在从逆流成河的悲伤中恢复过来后,那就“实事求是”(扯淡)地评价这门课程吧。
孙广中老师讲课中规中矩,至少在我看来是这样的。虽然没有非常吸引人的片段,但老师还是把一些基本事物的原理说出来了。但是可能有些同学认为太难或者讲的不是很清楚,我也非常理解他们的想法,毕竟我经历了从开课的人满为患到后几节课的不足50人的变化——可以说明老师的讲课对于相当的一部分人来说,是缺乏吸引力的,这可能与课程的跨度过大有关。老师的目的可能是授人以渔,在课上介绍了几个网站供我们了解,但是这对一开始连Python的语法都不清楚,再想去解决一些比较难的科学问题的学生来说,就不是很友好了。
对于教材我不是很满意,虽然是MIT的教材,但是由于定位的原因,重点放在了“如何运用Python方法解决问题”上,而对“方法背后的数学原理”和“Python作用的原理”解释较少,导致在看后面几章时会比较吃力。并且大部分同学学的是“面向过程”的C语言,突然跳转到“面向对象”的Python,难免会有“水土不服”。最后,这本书的难度跨度较大,章节编排也不甚清晰,示例也没能做到一般性。如果先安排更多的章节在前清晰地介绍Python的语法特点和类的构建,再在后面的特定科学问题章节中总结出泛用性的模板,那大家看这本教材的时候也不会太过难懂。
助教比较尽心尽责,每节课后都会留出一个小时在班上解答同学的问题。
比较令我不满的是作业的布置和给分。由于老师没有点到(第一节课和后面几节课反复说明如果人数较少就会点名,但最后还是放过了),平时分完全来自四次小作业与大作业。四次小作业布置的基本上是(其实应该说是“完全”)书上的原程序,不能体现学生的思考能力(或许排除掉那些懒得翻书的人?);大作业是用任意语言写一个科学问题求解的程序,除此之外几乎没有任何要求。理论上来说游戏是可行的,但在给分上不会太出众。
5月15日是最后一份小作业提交截止时间,而直到7月份学期结束后小作业的给分才姗姗来迟,并且每人都是满分,这说明这门课的绩点完全取决于大作业的完成度。但大作业的给分标准恰恰就是没有说明清楚的,导致在出分时一些人凭借几乎没有花费精力的程序就获得了高分,而某些费劲心力准备几个月的同学写出的大程序没有得到期望的分数。
也许有些人会说“不符合要求”,“3就满足吧”,“水学分的课不要那么卷”之类的话,但是与其定下模糊的标准,一开始就制定严格的评价标准不是更好,更令人服气吗?与其明面上是针对低年级非计算机专业的学生开设的课程,实际上引来许多高年级的计批卷绩而挤压了其他学生的优秀率,还大跨度地教授了其他非专业学生根本不懂的内容,一开始把课程标准放严不是更有利于计院学生学到专业知识,放松不是更容易吸引对Python一窍不通的学生了解如何利用程序求解专业问题吗?
孙老师提到这门课之前开过两次,但由于目标不清晰而中断过一次。我想说的是,直到现在这门课程的定位仍然是不清晰的,仿佛是第一次开课,处于懵懂且幼稚的摸索之中。希望孙老师可以找到合适的讲课方法和内容,更好地面向更多的非计算机专业的学生教授这门课。也许某位学生上完后,真正熟悉Python语言并感受其带来的便利,进而更好地解决其专业中出现的科学问题。
这门课会教你怎么用python设计程序,由浅入深,会从语法开始逐渐介绍。python本身也是一门很简单的语言,上手起来十分容易。课程内容涵盖科学算法,机器学习,模拟等等。 课程会上一学期,没有作业,期末会要求一项大作业,用python(或者其他语言?)设计程序解决一个'科学问题'。选题十分自由。 然后需要交一份报告,介绍选题、思路、解决方案、代码设计等等。五等级制,应该完全只看最后交的报告给分。 ddl线比较宽松,今年好像为了照顾大一新生的数分ddl特地往后拉了几天。 纯调包+解释原理,解决一些看上去有趣的小问题应该能拿不少分。 实在想不到选题可以从Euler Project里面选题解答,不过给分就不太清楚了。 我今年也不知道做什么,干脆随便弄了个机器学习的小项目。用蹩脚的英文写了一坨报告交上去了。神经网络训练结果费拉不堪,我干脆直接摆烂,写上训练结果不尽人意。 出成绩发现给了A+,给分真的神仙(起码我认识的选了这门课的(包括去年选的)都是A+)。 直接给十分。
先谈讲课吧。可以看出孙老师功底还是很nice的,但是不知道是不是因为到课人数极少的原因,课堂氛围有点偏向于平淡。但是如果认真听还是可以有一定的收获的。课程内容的话感觉是大杂烩,不会专门去讲python的基础语法,而是介绍了一些算法(线性规划、遗传、机器学习等),但又没有特别深入,也算是符合“通识课”的定位吧。
给分的话基本上是看大作业给的分,但是嘛...作为大一非oier...大作业个人感觉不是很好写(毕竟要求是“面向科学问题求解”嘛,但大一er对科学问题的了解不是那么多,再加上课堂上只学过C码力有限,所以说对大部分大一非oier来说其实不太友好)我是自己把python基础语法看了一遍,然后学了一些基本的机器视觉工具,然后搭了个GUI做了个图片处理的工具。自认为做的不大好,最后bb系统上是90,教务系统上还没出,出了再补上评分吧。
————————————————————————
确实是A,那确实是给分相当好的,好像优秀以上就会有A了,最差都是B,老师也是很努力在给大家高分了
总评没有在教务系统发布,但已经出了。利益相关:A
前人和老师的意见是这门课只要上过C语言就可以选,对此我不是特别赞同,我的建议是最好是对python有一定基础的低年级同学或者高年级同学来选。 从本学期开始,这门课增加了四次平时作业,基本都是用python解决一些问题,(当然源代码书上都有),然后完成相应的实验报告。一般只要按时交了基本都会给满。还有就是期末大作业,这也是我为什么建议有基础的同学来选:首先上课老师是不会教python的基本操作的,这得自学;其次大作业是要求就一个科学问题用python解决,其中选题的水平高低很大程度上决定了最后的得分,高年级的同学往往能做出更加“高端”的选题,得高分的机会也更大。
不过这门课不会给3以下的绩点,想水学分的也能选。而且似乎是核心通识(?)
以及如果有想挑战一下自己的大一同学也可以选,确实能收获一点东西
先说给分:A+,大作业做的是TSP问题的有关算法实现与比较。
作为一门python通识课,如果这门课面向的对象是没接触过或者不是以python为主要编程语言的学生的话,那么这门课是成功的;但是我看了一下群里面的同学,大多数是信智学部的(虽然我也是),这样就导致这门课的卷度爆炸,对于小白很不友好,所以建议限制这门课的选课对象。
出分后群里有人狂喷助教和老师,我的看法是助教只能从你的代码和报告去推断你的工作量和完成程度,报告也是一个完整的实验很重要的一部分。
另外一点就是选题很重要,注意这门课的名字中的“科学”,我觉得这门课程更多偏向于基础科学,对于计算机方面来说更关注的是传统的算法,而不是机器学习或者深度学习(当然这也是科学),所以大家在选题的时候可以更多考虑一下。
大一下选的,很不错的课,任务量比较小,但是课上收获很大。
课上不讲语法,直接讲算法,所以对于有一定编程基础的同学(如 OIer)还是很友好的,但是对于其他同学,可能就需要自学 Python 了。
给分确实超级好,欢迎来选。不过 40% 优秀率的限制是死的,所以也必然有一些同学只能得到 3.3,但是基本上只要正常完成任务分数应该不会差。
作为一名纯python小白,老师没有讲语法是我没有想到的(悲)
作业主要是四次实验和大作业,四次实验都很简单并且严格符合教材(所以完全可以自学),大作业选题极为宽泛并且给了充足的时间,感觉认真把作业坐下来会有很大收获
老师给分真的超级好!!!四次实验基本都是给满,大作业的话,虽然自己的代码很原始(毕竟初学者),但老师总评给了4.0,真的远远超出我的预期
课程本身所用的教材是MIT的《python编程导论》第2版,书本内容与平时作业的关系比较大,主要介绍了python的matplotlib库以及一些基础的应用。四次作业分别是:绘图、二维随机游走、使用蒙特卡洛模拟求圆周率和理解实验定律(胡克定律)。基本上都可以在教材中找到对应的源代码,实在不行抄一下改一下变量名。每次写完后要在bb系统上提交源代码和实验报告(不超过4页),总体而言任务量不大。
大作业的话专门为大四毕业生提早开了一个窗口,不过非大四学生也可以选择提前交。主题不定,老师在一节课上专门展示了上学期同学们的选题,同时介绍了几个优秀案例。个人感觉老师对大作业选题与科学有关很在意,所以最好还是不要写游戏。
课程内容介绍了很多算法相关的内容,但是并不深入,也算是符合通识课的要求吧。老师上课时很期待跟大家互动,但是课上来的人并不多,老师想要互动的想法就很难实现了。
就个人而言这门课我并不推荐大一就来选,当然如果你的基础很好,已经熟练掌握python就当我没说。这门课相当于基础班的一个提升,老师并不讲任何与python语法有关的内容,所以看评课社区时要理智,大一选课要慎重。(别像我这样大一还没基础就过来上课)yysy,老师给分是真的很好,今年貌似绩点最低是3.0,优秀的人中最低是4.0。
最后祝这门课越开越好,越来越完善。
老师会讲一些经典的算法以及吹水,不会教你基本的Python怎么写
给分拉了😭,感觉不太好,也可能是很多人用很复杂的什么大创,课题降维打击我这种大一没什么工程经验的渣渣的缘故
四次平时作业+选写作业(人工智能专业必写,因为这是他们选修课)+期末大作业,平时作业简单但还是要稍微费一丢丢时间的(代码+报告),给分主要看大作业。
本学期点了一次名,我睡过了没去QAQ,最后下课后交了请假条。期末写了选交作业,大作业选题较简单——选了一个经典的数学问题然后用多种思路实现并进行比较(因为只有大一接触不到什么高端的问题研究QAQ)。选题不难但完成得比较认真,给了4.0,给分真的好!
最后,感谢老师和助教!推荐大家来选这门课。
给分确实很好,本来以为自己能恰到优秀率就算成功了,结果是A。
本人大一选课,之前仅有C语言基础。老师上课比较沉闷,声音也小,去了几次后,本人越来越难以在周三下午说服自己从床上爬起来(樂),遂摆,导致完全不知道有点名的事。因此这门课本身的收获并不大,但是为完成大作业本人也基本自学完了老师推荐的Python教材和另一本相对基础好懂的教材,因此怎么不算收获颇丰呢(
大作业本人是做的多种EM聚类算法效率对比(和老师展示的往届大作业比起来真的朴实无华)。从基本原理出发推出公式然后实现。由于技术有限不会优化,经常出现跑一晚上不出结果的现象,报告如实写上即可。
总结:给分不错,Programming基本得靠自学,推荐选。
据说有一次点名,在点名前一节课通知了,但我全程翘课自然没点上。一共4次作业+大作业,人工智能专业多一个报告。大作业在最后一次课上汇报有加分。作业和报告都是ai写的,大作业是从别的课简并来的,给分是极好的。
很好的课程,推荐作为组内科研代码的附加值,上课不点名(本壬一学期只去过一次,匿了)。有一些问题是最后的成绩评判标准有些模糊,似乎有顶会佬也只拿了3.3,可能报告占比在评分中有相当大的比例,要选课的学弟们想拿高绩一定要做好可视化和报告
大一上过一次3.3不是很理想,但是确实对于当时的水平也很合理,大三重修。感觉选择大于努力,选题真的要很有科学性,利益相关,唯有感恩!