Skip to content

HITSZ-OpenAuto/COMP2021

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMP2021 - 高级语言程序设计

Static Badge Static Badge

Static Badge Static Badge Static Badge Static Badge

教材

  • 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 有开课时间限制)。