C/C++程序设计 (于仕琪)CS2052024春 2023春 2022秋 2021秋 2020秋  
2024春 2023春 2022秋 2021秋 2020秋
8.7(9人评价)
  • 课程难度
    中等
  • 作业多少
    很多
  • 给分好坏
    一般
  • 收获大小
    很多
选课类别:课内实验 教学语言:英文
课程类别:专业选修课 开课单位:计算机科学与工程系
课程层次:未知 获得学分:3.0
课程主页:暂无(如果你知道,请点右上角“编辑课程信息”添加!)
课程简介(教工部数据)
The objective of this course is to give a good knowledge of C and C++, as well as a working practice of Linux, and to prepare to future courses in the Computer Science curriculum. Through lectures and small programming projects, it covers topics such as how to build a program on Linux, what are the major differences between a language such as C and Object oriented languages such as Java (and C++), how Object oriented Programming in C++ differs from Object oriented Programming in Java, pointers and memory management, data structures in C and C++, as well as system calls. The first half of the course will solely be devoted to mastering C, and the second half will present C++ and the efforts to build a “better C”, as well as how to interact with the operating system through "system calls".


The objective of this course is to give a good knowledge of C and C++, as well as a working practice of Linux, and to prepare to future courses in the Computer Science curriculum. Through lectures and small programming projects, it covers topics such as how to build a program on Linux, what are the major differences between a language such as C and Object oriented languages such as Java (and C++), how Object oriented Programming in C++ differs from Object oriented Programming in Java, pointers and memory management, data structures in C and C++, as well as system calls. The first half of the course will solely be devoted to mastering C, and the second half will present C++ and the efforts to build a “better C”, as well as how to interact with the operating system through "system calls".
点评写点评
排序学期
评分评分9条点评
user avatar   咕桃     2022秋
  • 难度:中等
  • 作业:很多
  • 给分:一般
  • 收获:很多

先说老师。于仕琪老师讲课的风格很棒,是个很有趣的人,平时在群里也会有比较有意思的互动。讲课时经常通过现场演示bug和debug,用比较刁钻的语法(自己为了避免歧义/错误一般不会那么写的那种)展示这门语言的特性,真正做到了让台下学生学得越多,不懂的越多(褒义),PPT和随堂样例代码非常完善,详情可以访问这个仓库:https://github.com/ShiqiYu/CPP,在bilibili也可以找到于老师的频道,那里有录制好的C/C++课程,和课程主线内容一致。在GitHub上也有许多历届同学的优秀project,可以参考但请对自己负责。

再说课程内容。第一周一般是劝退课,虽说是hello world但是拓展讲了很多周边知识,劝退效果极佳。这门课的内容其实更适合已经对C/C++有一定使用经历的同学上,因为进度会相对比较快,简单的部分转瞬即逝。于老师对C/C++的指针和内存管理等特性有着深刻的认识,讲得非常清楚。对于计算机系以外的朋友,个人建议抱着一颗真正想要学好C/C++的心来学习并且做好心理准备,或是避开这门课程。

再说project。一学期五个单人project,占比65%,可以说是这门课程的灵魂所在:) 于老师表示project给分都是凭感觉给,但做得好的给分不会差,同时也说明这门课存在严重的内卷情况,你的分数是可能受到其他人的完成情况影响的,所以外系的朋友请三思而后选,计系的朋友请给同行和外系的朋友留条活路,做人不用做那么绝。project平均分和中位数每次会公布,大概就是八十五附近的样子,所以这门课要拿A-及以上其实相当有难度。如果希望了解project,也可以去上面的仓库里看看,有项目要求和往期优秀项目展示。

最后说考试。每节课有随堂quiz,占5%,quiz取n-1次得分最好的计分。没有期中考试,25%是期末考试。期末考试挺有意思,时间不赶但考得很全面,最后一题小型手写project可以说是认真完成project后就是送分,但project摸鱼的话就相当有难度的一题,祝君好运。

官方推荐环境是vscode+wsl2,这学期还给每个同学发了一块eaidk-310开发板用于project跨平台的实现。

后面想起来有什么要说的再补吧,有疑问也可以回复我/

by 咕桃 2023.1.16

user avatar   戦場ヶ原ひたぎ     2024春
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:一般

最新战报(来自QQ群2024Spring CS205 C/C++ (non-official)):

2023 vs 2024

  1. Quiz : 82.9vs81.3
    两年题目完全相同,但分数出现了下降,说明基础知识点的掌握没有提升。
  2. Project: 78.8vs80.1
    解读:在ChatGPT和Copilot帮助下,非常低质量的报告和代码变少,平均分上升。我评阅报告和代码时,从Project1到Project5,明显感受到ChatGPT的气息越来越重,但我并未针对ChatGPT扣分。
  3. Final exam: 66.0vs61.0 (期末考试难度相当)
    解读:在试卷批阅中,我明显感觉到基础知识点掌握的薄弱,关键知识点的掌握的不如往年。实事求是的说,真正理解和掌握指针和内存的同学,不超过10%。

这个学期的成绩变化非常有特点:我教这门课4年,前3年成绩逐年上升,今年成绩第一次出现下滑。在ChatGPT的帮助下,学生做作业的效率大大提升,花的时间和精力少了,但知识不会自动跑到脑子里。ChatGPT生成的代码和报告,掩盖了知识盲区。

当然,我没有针对ChatGPT的带来的变化,及时调整考核方式,是主要原因。

user avatar   Robert_Hime     2024春
  • 难度:困难
  • 作业:很多
  • 给分:杀手
  • 收获:很多

本人为非计算机系的工科学生,能力中等,计算机先修CS112 Python程序设计基础,无任何c/c++基础,本学期被计系同学诓骗学习于仕琪老师的C++,虽然先前有所耳闻,但还是没能避免绩点悲剧。

总体而言,很难吧,特别是刚刚开始的时候,非常痛苦,主要是教学内容量比较大,外加上本人一点不熟悉c/c++,想必如果没有gpt的话,我大抵是已经退课了。每节课最后都有计分的签到quiz,lab有练习题,难度也比较大,曾经在lab课上写到崩溃过。

但是于老师确实讲得的确很好,上课认真负责,内容颇有调理,把c/c++最重要的内存管理与类都讲得非常清晰。和学习c语言程序基础的同学交流以后发现于老师的确讲了很多内容,当然学生有没有接受到又是另一回事了。

但是于老师也很会搞学生心态,模糊打分只是一小部分,常常遇到花三周构思的项目被低分打回,原因是程序运行效率不加,参数传递不够谨慎等等。若是不能理解于老师对项目的深层次要求,那么分数必然是非常惨淡(80左右乃至以下)。于老师支持使用GPT,但是后果自负。

最后如果有同学和我条件类似(非计系专业中位数水平),那么我并不推荐非得攻克名为yu++的大山,其实本课程是开源在GitHub和bilibili上面的,所以如果单纯只是因为如单片机,嵌入式开发等目的学c/c++的话,于老师的网课会是不错的选择。如果对多线程加速,CUDA等感兴趣的话…,可以考虑尝试,但最好同一学期其他课程难度不要太大。

参考难度:两个半的信号与系统

user avatar   アイス     2022秋
  • 难度:困难
  • 作业:中等
  • 给分:一般
  • 收获:很多

这学期(2023秋)当了一学期郑老师的CPP助教,感受到了课程间的质量差距,再加上前几天于老师这门课申遗了,推荐一下想学CPP的同学下学期选计系精品课于++。

于仕琪:深圳市推动“全市高校课程互选、学分互认”,我报了名。2024年春季学期,以这个内容为基础的南科大课程“C/C++程序设计”会向深圳高校学生开放选课,到南科大教室里上课。欢迎选课。

于老师的上课思路挺贴合计系学生:先讲语言特性,然后表演一下怎么写bug,然后再讲产生的原因,最后讲如何避免/解决方案。如果上课的时候听的比较认真的话,应该能避免入门C/CPP大多数的坑(

再讲讲project,于老师非常喜欢矩阵/计算相关的东西,一度让我怀疑他的xp是不是矩阵。project难度在线,内容有趣,如果好好按着要求写能学到不少东西,给分也会相对美丽。

考试的话客观题主要是看有没有复习quiz做的东西,大部分都是里面的内容。主观题如果project好好写的话不难。

最后讲讲总评,主要扣分的地方还是project,最后总评一般来说会比project均分高点。

总之总之欢迎真的想学的同学选于老师的C/C++,如果只是想轻松飘过还是等秋季学期选zf的吧(

user avatar   cra     2021秋
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:一般

问:c++的课和java相比难度如何?有推荐的老师吗?

答:问就是计系刘德华——于仕琪。难度个人感觉比javaA甚至还低些(最主要我javaA纯自学,太痛苦了,c++我好歹听着课按着老师大纲来,而且学过java有些基础了)。

user avatar   NeilYoung     2024春
  • 难度:困难
  • 作业:很多
  • 给分:杀手
  • 收获:很多

Quiz(5%) + Lab(5%) + 期末考试(25%):

内容包括C++常用语法以及特性,尤其是指针和内存管理等。老师讲得很细致也很清楚,干货很多。听网课、做Lab,按部就班认真学就行了,学习曲线并不陡峭。但期末考试很难(均分61),无样卷,做好心理准备。

Project(65%):
  1. 共5个单人project(C计算器、C与Java矩阵乘法对比、C矩阵乘法加速、C++矩阵类设计、CUDA矩阵操作),贯穿整个学期,不同学期内容有差异
  2. 大部分项目所涉及的知识,远远超出前述老师讲授的内容,需要高强度自学
  3. 项目要求文档非常简陋,只有笼统的方向,几乎没有任何得分要点可以参考
  4. 项目评分标准为老师本人,主观成分相对较高
  5. 大佬较多,你呕心沥血写的项目可能在大佬的反衬下看起来像是依托答辩。

总而言之,这门课程project的精髓是:在半开放性项目、主观性评分、高强度同学竞争压分的多重外部高压之下,驱使学生提高自学能力。这是一个提高你的自学能力和效率的好机会。楼主大一,除了JavaA外没有什么编程基础,做前面几个项目时错误地把大量时间花费在自己埋头写代码上,结果往往是效率低下,事倍功半,得分与付出完全不匹配;后来逐渐认识到自学的重要性,通过网上找到的若干大学的课程slides、大神写的blog以及相关书籍进行学习与模仿,不仅学到了更多有趣的知识,加深了理解,得分也更加理想。

这门课程的总评平均分大约在77;你的最终成绩,和你在这门课上付出的时间,的比值将是很低的。适合想要通过外部高压来加强自身自学能力的同学选择。

user avatar   什么盆栽     2021秋
  • 难度:中等
  • 作业:很多
  • 给分:一般
  • 收获:很多

属实是我在南科大上过最有用的课之一。ysq老师讲课内容也非常深入浅出,还会水群。给分一般,但是真的有用。

user avatar   匿名用户     2024春
  • 难度:中等
  • 作业:中等
  • 给分:杀手
  • 收获:很多

本人之前没有c或c++基础,本来只是想选这门课学一下语言的,结果绩点爆炸了。

于老师上课讲的很清楚、很全面,每个c和c++所有重要的部分都有所概括,每个知识点老师都会给相应的例子和反例,上课是一边讲解一边讲示例进行的,只要认真听都能听懂。

给分方面十分恐怖,这也是我给的评分比较低的原因。课程65%的评分来自project,一共5个project,一个project占13%。每个project的介绍页面都很简单明了,换句话说是介绍的很模糊。于老师不会给出具体的给分点,之后在project上介绍你应该实现哪些功能。对于project的评分,很大部分都取决于于老师的心情。于老师会因为project 的 report不够美观或者某个方法的实现他觉得不够满意等理由进行扣分,5个project的平均分都在80分左右。然后还有25%来自期末考试以及5%来自每节课都会有的quiz。期末考试的题很难,于老师会抓住知识点里的一些偏僻的情况或者极易混淆的情况进行出题,想要得高分必须足够细心且对各个知识点都有深入了解。

总结:不建议像我这样之前没有基础,且只是抱着学习c语言心态的学生选修这门课。如果硬要选的话建议做好绩点爆炸或者投入大量时间的准备。只是想学c语言的话可以看看于老师的网课。

 

user avatar   Matthew_Thomas     2022秋
  • 难度:中等
  • 作业:很多
  • 给分:一般
  • 收获:很多

老师讲的很好,上课也会结合具体代码来进行授课,平时问问题也解释的很详细,邮件也回得勤,每节课后都有quiz来帮你巩固知识。唯一就是,project没标准,所以不知道卷到什么程度停,想拿高分也挺难的,每次project分数中位数在80-85之间


teacher avatar

于仕琪

计算机科学与工程系

教师主页

其他老师的「C/C++程序设计」课

于仕琪老师的其他课