(必修)高级语言程序设计
教材
C 语言程序设计 / 苏小红等编著;蒋宗礼主审。–4 版。– 北京:高等教育出版社,2019.8(2022.7 重印)
ISBN 978-7-04-051998-3
关于本课
by @longlin, 2023.9
3202 年了,大学中居然还存在这种考试要手写代码,语言标准还停留在上个世纪的编程语言课,简直不可思议。
作为大多数人接触的第一门编程语言,c 语言劝退了很多萌新。如果你觉得这门语言晦涩难懂,大概率不是你的问题,而是教材或是授课老师的问题(也有可能是语言本身的问题)。你不能指望通过学校的课程学习这门课(当然如果你只是针对考试以后并不想做与编程有关的事情当我没说),你也不能指望通过国内教材学习编程语言,更不能指望 b 站上国内诸如某马、某士兵之类的培训机构。
个人认为比较好的学习流程是(当然这并不能给你带来高分):
- 放弃 codeblocks 这种古董 IDE,拥抱 CLion、VSC 等一众现代 IDE。你有什么理由要拒绝一个 调试简单、UI 美观、自带自动补全功能的编程工具呢?(Vim 和 Emacs 用户请自行离开)
- 放弃出勤。你可以在课前课后找老师要 PPT,然后根据 PPT 上的内容自主学习(我反正觉得待在教室听课就是坐牢)。自主学习的方式很多,一般可以分为:
- 通过相关课程视频学习:推荐 Coursera 和 youtube 上的课程(英文授课),可以在 b 站上找找有没有搬运(不过机翻字幕看着还是挺难受的,英文比较好的可以尝试直接啃生肉)
- 通过官方文档学习:推荐 微软官方提供的 c 教程。一般这种网页开源书或教程都能与时俱进,这也是电子化学习的好处之一。
- 通过权威书籍学习:如果以上的方式都不适合你,你也可以选择一本业界公认的权威书籍进行学习(避雷国内教材!)。可以试试 C Primer Plus,但我个人觉得里面的内容比较拖沓。
- 放弃 C 语言(逃)。直接上手 cpp 其实也没啥太大问题,不过 cpp 水太深,并且也很容易陷入与 c 语言一样的困境——接触的东西全是十几二十年前的内容,新特性一点不会。
关于教师
by @lmh
教师上课风格没有很活泼,照着 ppt 念,而且速度偏快。
听课并不必须,因为 C 语言 的语法,主要不是听讲学来的,而是自己敲代码所体悟到,上课建议可以自己敲敲代码。
关于实验
实验一共九次。前四次实验较简单,而且是独立实验。后五次实验难度较大,代码量较大,综合考察指针、数组、函数、结构体,任务大体相似,只是具体要求不同。
每年实验几乎不变。
助教答疑很随便,大多是让自己去调试。
前三、四个课上基本可以完成,课后大概只需花一点时间完善一下,并测试好。后五个实验需要在课后花大量时间,才能写完,一个实验课后大约多花 2-4 小时。(ps:要想拿高分,除了基本要求外,还有增强代码健壮性,还有多写注释,课后还需更多时间)
关于考试
考试整体难度不大。最高分应该是 100 分或接近 100 分,平均分 80 左右,挂科率大约百分之二。(补:22 级全年级仅有一人挂科)
主要考查对各语法的理解,基本上实验课都有所设及,个别比较生僻的语法知识和函数,则需特别复习。
Tips
作业主要是完成课后练习题的部分题,难度不大,所需时间也不多。
上课不点名,不考勤。学习时,边看书本语法知识,边敲代码,可以结合 B 站 或者 中国大学 MOOC 上的网课资源。
如果有时间,可以把书本上除作业之外的课后练习题也完成一下,并且完成的同时思考,一道题能否用多种语句来实现,可逐一尝试。前期尽量少复制黏贴代码,尽量手打,对于关键字、语法的记忆有较大帮助。
实验课作业最好独立完——对于 C 语言 核心知识掌握很有帮助。一些不常用的语句,函数,生僻的关键字,则需特别记忆。
比较好的 MOOC 资源,北大的 C 语言 和浙江大学翁恺的 C 语言,B 站、或者 中国大学 MOOC 上都有(但 中国大学 MOOC 有开课时间限制)。
资料下载
如果你是校内学生,可移步至 open.osa.moe 查看本门课程的电子书、课件和实验软件等。
参与
《HITSZ 自动化课程攻略共享计划》是所有同学都可以参与编写的,如果你有好的笔记或者资料,欢迎前往我们的 GitHub 进行参与,也可以发邮件至 📮[email protected] 联系我们,我们会在收到的第一时间进行答复。