计算机高级程序设计

(郑锋)CS2192024秋  
2024秋
8.5(4人评价)
  • 课程难度
    中等
  • 作业多少
    中等
  • 给分好坏
    超好
  • 收获大小
    一般
选课类别:专业任务 教学语言:双语
课程类别:专业选修课 开课单位:计算机科学与工程系
课程层次:本科 获得学分:3.0
课程主页:暂无(如果你知道,请点右上角“编辑课程信息”添加!)
课程简介(教工部数据)
本课程是为计算机和相关专业本科生设计,是“计算机程序设计基础”之后的第二门编程语言。本课程的目的是帮助学生进一步提升程序设计能力,加深对计算机的理解,提升解决问题的能力。本课程将主要介绍C、C++和Rust编程语言,以及C/C++这两门语言在系统开发和计算中的应用。C是一种面向问题的通用程序设计语言,具有语言简洁、类型丰富、结构完整、表达力强、直接操作内存单元、适用于模块化结构等特点。C语言既具有高级语言的优点,又具有低级语言的许多特点。C++是面对对象开发方法,从C语言扩展而来。吸收了软件工程领域有益的概念和有效方法,它把数据和对数据的操作封装起来,集抽象性、封装性、继承性与多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的、信息隐蔽好的、可复用、易修改、易扩充等特性的程序。Rust是一种新型的编译型语言,设计准则为“安全、并发、实用”,支持函数式、并行式、过程式以及面向对象的程式设计风格,关注度和使用量与日俱增。本课程重点介绍C和C++编程语言的独特之处,特别是在程序运行效率方面的优势。在基础知识点之外,本课程将通过案例来介绍C和C++在计算领域的优势,并使学生了解计算机系统开发和深度学习底层开发。除此之外,本课程还将介绍新型的编程语言Rust,让学生可以了解编程语言的发展趋势。


This course is designed for undergraduate students majoring incomputer science and related fields, serving as the second programming languagecourse following "Introduction to Computer Programming". This courseaims to enhance students' programming skills, improve their understanding ofcomputers, and improve their problem-solving abilities. It will introduce the Cand C++ programming languages, as well as their applications in systemdevelopment and computing. The Rust programming languages will also beintroduced in the course. C is a general-purpose programming language known forits conciseness, rich types, complete structures, strong expressiveness, directmemory manipulation, and suitability for modular structures. It combines theadvantages of high-level languages with many features of low-level languages.C++ extends from C with its object-oriented development approach, incorporatingbeneficial concepts and effective methods from the field of softwareengineering. It encapsulates data and operations on data, integratingabstraction, encapsulation, inheritance, and polymorphism, facilitating thedevelopment of modular, highly abstracted, well-hidden, reusable, easilymodifiable, and expandable programs. Rust is a new programming language,designed with the principles of "performance, type safety, andconcurrency". It supports functional, parallel, procedural, andobject-oriented programming styles and has been gaining increasing attentionand usage. This course focuses on the unique advantages of C and C++programming languages, particularly their advantages in efficiency. Beyondfundamental concepts, it will use case studies to demonstrate the advantages ofC and C++ in computing, allowing students to know the basics of computer systemdevelopment and deep learning. In addition, this course will also introduce themodern programming language Rust, allowing students to understand the trends inprogramming language development.
点评写点评
排序学期
评分评分4条点评
user avatar   Chaos_Z     2024秋
  • 难度:简单
  • 作业:中等
  • 给分:一般
  • 收获:一般

可能利益相关:本人仅期末考试扣分,但是期末65。我是真的记不住东西也不会手写代码和人肉debug放过我吧。

整体课程难度不算高,有点像JavaA走出来。根据24Fall的情况,课程主要由Assignment*4(20%,On JCoder,题目数量4+2+2+1,难度曲线还算平滑) + Quiz*12(5%,On bb,≈复制粘贴大赛 + GPT降智检测工具) + Lab(5%,即Lab课签到题) + Project(20%,题目4选1,难度感觉比JavaA低不少,我选的题目满分80+40但似乎不可溢出至总评) + Midterm(20%,On JCoder,题目数量4+bonus*1,大教室统一时间完成,要求腾讯会议全程录屏,疑似宝宝巴士) + Final(30%,单选60 + debug20 + design20) + 课上举手回答问题bonus构成。

难度主要集中在Assignment和期末,点名表扬咕桃老师的It's MyFS,非常好选题使我ddl爆炸,以及使我这个不看MyGO的人都已经记得Haruhikage怎么唱的了。课程教的内容感觉还挺多的,但是作业里面貌似不咋用得上,只靠Lab上那两三道练习题也不咋能巩固知识,要想真学到东西建议上课认真听(你知道我想说什么)并且课下动手实践。像我一样考前3天突击PPT是不可能健康通过期末考试的因为还有逆天DSAA Lab9在同一周ddl

中规中矩的一门课,我是被正常给分了的(可能微调了一下不至于卡绩?感谢老师和助教们qaq)所以不好给一个定论,但还是相对比较满意,压力不大,可以选。想拿分高的话建议上课举手回答问题,也许你最后就差这点分呢 :)

user avatar   卷卷卷卷不了一点     2024秋
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

省流:如果你之前对c/cpp已经有一些基础或者自学能力比较强,且渴望一个更高的绩点,那么zf的c/cpp比ysq更适合你

结合上过yu++的人的评价,我发现zheng++和yu++构成互补关系:zf讲的不太行,但是给分超好,bonus一堆,作业也不多(咕桃老师出的题不算),ysq讲的很好,但是作业量似乎很大,给分也比较严(和上过yu++的同学交流得到的结论)

授课内容方面,基本上就是把c/cpp(原cs205)的内容搬了过来,并没有什么明显的改动,大家可以结合ysq老师在b站上传的网课进行学习。

bonus分别为:

1.上课回答问题(一次一分,上限5分)在理论课上zf老师会不定时的说出“举手回答”,举手后被老师点到并回答正确加总评一分。值得注意的是,这是唯一可以补期末的bonus(剩下的只能补平时分,连quiz都补不了)。获取难度适中,主要体现为你需要集中注意力去听理论课,并且和一堆学过c/cpp的佬竞争。(在此吐槽一下一教111的投影,暗的不行,坐4排以后根本看不清代码演示,更别说抢答了,只能含泪放弃)

2.期中考试(上限1分)期中考试为上机编程,一共5道题,最后一道为bonus。获取难度较高,考虑到大部分人没打过竞赛,手速以及解题速度受限,而且vscode的debug非常困难,能把基础分拿满就行了。当然也有考试半个小时就全敲完的,竞赛佬不算正常人

3.project(上限4分)和java A的project 的一样,基础分80分,advance部分上限40分,多劳多得。获取难度较低,或许project比期中考试难度要高很多,但是胜在时间长(ddl在18周周六,考试周以后),你有充足的时间去研究,因此获取这部分bonus比较容易。

4.其他的未知bonus(一般在一分一下)比如这次assignment中的一道题巨难,据说平均分只有60(满分100)左右,因此田老师决定将这个成绩乘以1.2,溢出的成绩就成为了bonus。

综上所述,这门课的给分真的巨好无比,算是喜欢卷绩点的大佬们的福音了

user avatar   Sue_Ayers     2024秋
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

总评出了来评价一下

这门课主要涉及了c和c++(主要是c++)的的编程以及一些特性,从最基础的语法一直讲到继承和多态差不多(lab还会教一些其他的实用技能,比如cmake这些)。

分数组成的话,课上quiz和lab的签到基本都是白送(因为不会也可以问chatGPT但不推荐, 最后期末有一些题就是从quiz里面摘出来的);

作业除了有一次代码量有点逆天以外(有其他同学也提到了)都还好,不会特别难写。

Project的话有好几个选择,总体工作量也不是特别大,bonus也很容易得

期末考试的话选择题占大头,看于老师b站的c++课复习一下,最后也能考的不错

接下来说一说这门课对我来说的一些槽点:

1.期中考试是在教室在线敲代码,如果你是那种编程速度比较慢的人(比较容易编程时卡壳),慎选!期中的题不难,但是我一直de不出来bug导致心态炸裂最后考出了我在南科大有史以来最低的期中分数( 但是感觉更像是我个人的问题),总之做好心理准备,第一眼没有思路的题立马跳过,不要捡了芝麻丢了西瓜;

2.老师上课时用在线的网站来演示代码,默认的代码字体大小基本上坐在前排才能看清(虽然后面调整了一下大小),导致后排的听课体验很差;

3.课上的quiz都在课中休息的时候发布,对同学们的休息时间有一定的挤占;

总之,这门课内容很多,但认真学收获也很大,给分的话也比较好,除了期中期末分数调不了以外其他分数都很宽松(最后还调整了一下quiz的给分标准,让我除了期中期末以外的分数都拿满了,最后在期中炸了的情况下还能有一个看得过去的分数),老师和助教也都很好说话,总体还是比较推荐的

user avatar   zzh     2024秋
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:一般

给分超好,回答问题bonus,期末考简单。有一次as记忆犹新,有一些煎熬,其他都很简单,期末proj可选的很多,也挺有意思。感觉老师讲的一般,没有学到很多,个人觉得想多学点东西的话更推荐隔壁老师,但是郑老师人也很好,给分也很好


teacher avatar

郑锋

计算机科学与工程系

教师主页

其他老师的「计算机高级程序设计」课

郑锋老师的其他课