选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:3.0 |
马建辉老师的教学水平受到较高评价,学生们普遍认为他讲课幽默风趣,内容讲解清楚且重点突出。虽然有时会讲一些课外的内容,但总体上教学质量较好,有助于学生理解和掌握程序设计的基本概念。
课程涵盖了C++程序设计和一些基础算法,前半部分主要是简单的算法,如枚举、搜索(BFS、DFS)、高精度计算等,后半部分则侧重于面向对象编程(OOP),介绍类、继承、多态、模板和重载等知识。学生反馈面向对象部分讲解较少,部分内容需自学。课程设计有一定的难度,但实验和大作业设置合理,能够帮助学生巩固所学知识。
本课程的作业主要通过CODIA平台提交,题目难度较高但基础。助教在实验设计和代码评审上非常认真,特别是赵助教,受到学生一致好评。他们提供了高质量的测试用例和严格的评判标准,有助于提高学生的编程和调试能力。大作业要求高,需要实现图形化界面或多线程处理,做下来能学到很多实用技巧。
期末考试难度较高,包括几道算法题和C++编程题,重点考察对基本算法的理解和应用,特别是经典的八皇后问题。有些题目难度不低,但对于平时认真学习的学生来说并不困难。此外,考试中也包含了部分与实际编程无关的素质题,让刷题之余的同学也有展示自我能力的机会。
给分方面,马老师被誉为“GPA之父”,总体评分较高,优秀率在35%以上。即使考试难度较高,最终调分也很慷慨,未充分准备的人也能有不错的成绩。不过,对于想拿到满分的学生来说,依然需要付出相当大的努力并保证作业和大作业的高质量完成。
总体而言,这门课程在提高学生编程能力和数据结构基础上起到了良好的过渡作用。尽管部分内容可能需要自学,但老师和助教的高度敬业使得课程体验颇佳。对于有一定编程基础的学生,该课程难度适中并且对GPA提升显著,非常值得推荐。
这门课存在的意义,可能就是充实妮可学生可怜的代码量
首先谈谈老师,马老师上课还行,至少达到了我对科大老师上课的绝大多数要求。但是这门课美中不足的是课程内容设置的问题,前面讲了一些简单的算法是一个好事,可以作为大家从程序设计到数据结构的过渡,但是本次课程不应该将重点放在这里,因为这只是一个过渡。真正的重点应该是面向对象的程序设计和思想方法,个人感觉面向对象的部分本课程讲得太少,对于刚刚接触面向对象的同学很难理解和吸收。在这安利一下王子磊老师的面向对象程序设计,课件超棒!我就是把老师的课件看了一遍就基本掌握了C++面向对象程序设计的方法,链接奉上~http://vim.ustc.edu.cn/?product=oop
再来谈谈助教,只能说zjx nb!赵助教对于课程的态度和课程实验的设计都堪称完美,是我辈学子的楷模!秒杀马老师19年秋数据结构某些划水不负责的助教。
最后谈一谈给分,马老师给分,自然不差,期末背背算法(一定要看马老师课件上的八皇后)期末考个90+没什么问题
感谢老师和助教的付出~
(我是20年春季学的,但是为啥没有这个选项。。。
/*--------------2020春助教感言---------------*/
疫情线上,当时想着拿点钱氪崩崩崩,就挑了个助教当。好巧不巧马老师对课程的实验把控比较随意,我还是个老OI,就把八章的实验题都出了(现在回忆一下自己的二三月份全干这个了orz)
如下面我的老评论所述,也和某些评论看法不同,我(或我的室友)经历过编译 / 操作系统 / 算法 / veribug编程的洗礼之后,感觉科大在代码编程和debug的训练上还不足够(虽然开发和OOP也不行,但是可能上述在其他课程上用的更多),所以出题的时候特别考虑了这些,把能想到的边界条件、易错写法等等都融合进了testcase,虽然比例不大。实验的难度也设置的比往年要大(自己都可怜新生们),所以把之前本来是基本题的难数据点变成了附加题,也在每章设定了超出总分数目的题目给大家一点选择(虽然我是累爬了
判完第四章之前,同为懒狗的我也是懒得代码查重的,但是光自己的20+份就看到两三对不咋动脑子的抄法,为了维护自己精心设计的实验心血,一怒之下秋后算账,成为当年度匿名群和助教群里的话题(雾),也反手给自己增大了一倍的工作量
本届在陈凯明老师的指导下开始进行代码风格评判,标准也是我出的(
考试当场我看到卷子的时候人也傻了(,都不知道咋判卷子了(,你说快捷键那道题我成天VSCode+WSL+gcc咋办嘛(
最后辛苦各位同学了,我知道你们为了搞完实验+不被查重+写好风格很累,希望我不会被冲烂(
你做得好啊,做得好啊! 期末考所谓的“阴间”题,稍微自己愿意去拓展学习的人都不至于答不出。那个填快捷键的题就是瞎蒙也能蒙对(没错在下蒙对了vs2019的全部默认快捷键),而最后评卷这道题全给对了,老师还是挺善良的。 反倒是玩命看ppt、背算法、刷无聊的入门题的考试专家会遭受打击。我早就看考试专家不爽了! __当然像平时作业那种难度的题能快速解出的水平还是必须的
老师经常在课堂上讲一些课本之外的,比如进程间通信之类的。上机题目就是书后习题。但期末前有个大作业,难度稍大,是写一个利用管道进行进程间通信的程序,没基础的同学可能会有困难。期末考试是上机考试,题目和平时作业类似。
这是这门课最后一次开了,为只学一学期的学弟门的程序设计能力略有担忧。马老师的特色大作业非常有意义,能学到很多知识。我为了做多线程现学的Java,可谓是赶鸭子上架。4次中作业也有难度,都是洛谷蓝题或紫题难度。期末考试4个大题5个选择5个判断。我居然错了3个判断痛失6分,错失了一次4.3的好机会。请问:友元关系破坏了类的封装性吗?继承复用的是接口吗?组合复用的是实现吗?拿这种题目做判断题感觉有点没意思。
说在前面,给分巨大好...平时可划水摸鱼。
关于考试: 上课没怎么听过课,因为都在赶其他考试ddl,期末看了两个半天的C++,硬是考前几十分钟背下来了完全看不懂的什么dfs bfs 代码,还有经典八皇后。。
考试第一大题考文件(??我全程瞎写);第二大题马走日(好像就是八皇后?); 第三大题考2的n次方(高精度); 第四大题是给了一个C++模板基本代码,要求补充sort、reverse、search的代码,三选一就行了其余写出接口,我自然选最简单的search,还涉及模板继承(本人由于没时间看就没写); 第五大题是关于C++的最基本知识,5题选择+5题判断,大概是来送分的,只可惜有很多概念我还不清楚,只能看选项随便选了。最终占比60%。
关于平时作业: 在CODIA平台提交,每一两周有2~5题,其实题目都很基础,就是对我初学这些算法的人来说每题都要写几个小时,不少同学半小时就做完了作业且一遍过,个人还是很有挫败感的。最终占比30%。
关于大作业: 数独or聊天程序。本学期的课程里面数独很难拿满分,聊天程序是必须要图形化,否则无分....最终占比10%。
关于上课: 听过前半学期的课,PPT大概是传承了好几年,讲的还是蛮清楚的,但其实讲的并不是很深入。后半学期讲的事C++,没有怎么听,后来看的PPT,PPT的内容很多,盒里推测上课没有讲的很全面。
本学期助教整体太摸鱼了。。。这是一个很想吐槽的点。。。。
马老师人确实不错,这学期上老师的数据结构感受更深
可能因为老师之前是科大的,给分可以说尽量nice了,特别是针对优秀附近的。(感觉4.3倒是给得特别少,我认识计科的一群大佬,只认识2个这门课拿到4.3,可能因为我比较菜吧,虽然快捷键没算,但还是只有93,其实94老师好像就会奶到95了)
这门课对科大同学的代码能力确实有一定的提高,不然妮可计科可能大一下一学期不写代码(参加部分后转的少计同学)
总之:推荐
课程难度填”中等“,作业多少填”中等“,都是因为本学期优秀的助教@TheLitFire
赵助教平时在课程群上兢兢业业,及时回答同学们的问题,反观某位助教,当天该他答疑的时候从不上线,私聊问的问题过了一学期都没回答,如果不想带课何必当助教呢
这门课本身对于学过数据结构的同学来说难度就不太大,本人因为转院需要补修于是选了这门课,然而赵助教的题目还是让我感受到了相当大的难度,以至于我并没有完成所有的选做题,自然而然地为最后被卡绩94埋下伏笔。需要说明的是,赵助教的题目虽然难度大,但是绝不是故意来搞你心态的那种题目,我身为一个没有高中oi经验的计算机系学生,能做到这种好题目内心还是感到收获满满,感谢赵助教,辛苦了!
(PLUS,就算你没有及时完成题目,也有补偿的机会)
就课程本身来说难度不太大,前面对于我来说新的知识就是大数运算和日期处理,以及一些递归,枚举,高效计算的算法。搜索相关的知识在数据结构已经学过了,所以难度不大。后面Python和cpp的知识也自己学过一些,所以不做赘述,Python和cpp是不考的。
考试上,考了经典八皇后,本人考场直接默写,还有很多素质类题目,极大地制裁了做题家,我是舒服了hhh。这些题目只要平时真正热爱编程真正用心编程,都是能轻松解答的。(对,我说的就是第一道大题,考察了字符串函数的函数原型)
马老师水平很高,给分很好,赵助教水平很高,而且敬业,课程体验非常好。
最后,有些整个学期完全当甩手掌柜什么都不管的助教(导致我在本该他答疑的那天数次找到赵助教答疑),建议把工资分出来给zjx((
课程难度不大,因为是夏季学期没留书面作业,只是上机了几次。马老师讲课还行吧,虽然喜欢扯一些课堂外的东西但是该讲的内容也都讲了(还补充了一点点面向对象的知识)。如果真的想学程序设计II还是建议在春季学期学,夏季学期上课太短了,很多知识来不及消化,训练的量也完全不够。
给分并没有评课社区上说的那么好,只是优秀率会调到35%以上,但是高分段基本不调(造成高分段的人数极少)。
教了C++,教了面向对象。
其实这门可主要的重点是解决一些简单的问题啦……
会布置一个有图形界面的大作业……语言不限,能真正的学到很多东西……
收获巨大。
上课全程有ppt,考试前看一遍基本没什么问题了。期末平时大作业占比是6:3:1。期末题目比较水,只是有些题在纸上会比较麻烦,最后一个小时做完。低级错误,比如偶尔变量名写错是不会扣分的。平时作业题很简单,全部pass外加代码写得不是太过分、加上英文注释(文档上规定不能写其他语言的注释,包括中文,一定要仔细看关于代码风格的规定)就能满分。附加题不算分,但是如果代码风格扣了分的话可以补回来(我的注释全写成中文的了,写了两次附加题最后没扣分)。大作业可以选数独、聊天程序或自选题目。我选的是支持联网的数独(因为不想写高级搜索算法,就加了联网功能作为自选题目了),源码https://github.com/Kobe972/sudoku。结果:总评95(期末92,剩下满分;期末总评录入前会在群里公布,有疑问的话可以联系老师,如果有误判的地方老师也会改,总之给分已经很尽力了)。
这门课,还是能学到很多东西的。马老师主要是讲了c++和一些算法,上课幽默风趣。实验是以算法为主,最后布置了几个c++的题,c++的题蛮简单的。最后有一个大实验。所有实验认真做下来,课认真上,最后会收获很多。 谈一下助教,线下debug是需要预约的,这个挺好的,能根据自己预约的时间去找助教。我经常找的是王志远助教,助教工作很认真,线下debug没找出来的问题,助教也会一直跟进,很耐心。助教debug是属于找出问题,然后引导你去想办法解决。debug过程中能学到不少知识。
程设二主要两个板块:前半学期简单算法,有模拟,高精度,枚举,搜索(bfs+dfs),递归,简单的dp(考试不考),后半学期c++面向对象,介绍类,继承,多态(当时考试不考),模板,重载等,虽然因为学时原因上课有点快,但是收货还是非常大的,上课一定要认真听课,课下可以自己找题目巩固(作业的确少),大作业认真写可以学到很多东西(图形化界面,高级搜索算法,多线程等),马老师课上的自然是非常好,重点突出,详略得当,面向对象也可以讲的无比形象方便理解。此外作为GPA之父,马老师给分不用说,总之,好评!
马老师给分超级好!!!讲得也很nice,就是课程PPT经常忘记上传。
课程难度对于一些没有编程基础的小白来说可能有些难度(但多练的话肯定还是没问题的!
对于有编程基础的同学来说,这门课完全可以水一水就过去了OTL
无书面作业,通过OJ提交编程题,当时做的时候觉得有些题很困难(其实是我自己太菜了),现在回头看觉得只要认真学了不算太难。
期末的话是几道编程题,手写代码。难度偏简单(虽然我这个菜鸡还是考崩了,不过最后还是奶回来了)
另外,马老师人也特别有趣,强推马老师的所有课!
19年春季学期基本上是在讲一些非常基础的算法(枚举、贪心、搜索、动态规划等等基本算法),对于有一定算法基础的同学来说应该是一门水课。
老师上课比较有意思,会穿插些自己的经历和一些故事,至少不算很无聊。
作业是在oj上布置和提交。考试是几个简单的算法题+手写代码。
就我个人而言给分还算不错,因为我个人之前已经学习过一些相关方面的知识,再加上我后面不怎么去上课,所以我在这门课上除了绩点外收获不多。但没有相关基础的同学应该还是有收获的。
注:老师不点名,但偶尔会有随堂思考题(变相点名),不过具体占多少不是很清楚。
给分据说是给满a档的,然而从来没轮到过我。总是被从3.7卡到3.3。
讲道理的话出分真的慢,暑假小学期的课8月20几才给分orz。对于c语言没有基础并且学得不算太好的我来说,每天的大作业确实有点压力(不过只有开始4次计入成绩,后面的可以不做)。但是最后给分确实不错,我最后考试最后一个20分大题不会做,还是调到了87,他给的优秀率大于35%。虽然10天并没有什么收获。。。