From 4dc63e3d2a9a5600cef3b76dfdc6a902e56c2515 Mon Sep 17 00:00:00 2001 From: Haidong Ji Date: Fri, 15 Apr 2022 20:14:41 -0500 Subject: [PATCH] Added Introductory C from Coursera (Duke). Fixed a link --- README.md | 2 +- docs/编程入门/Duke-Coursera-Intro-C.md | 31 ++++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 docs/编程入门/Duke-Coursera-Intro-C.md diff --git a/README.md b/README.md index b22d7920..0bbe54a0 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ## 如何成为贡献者 -一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出 [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。如果你想贡献一门新的课程,可以参考目前 repo 中的 [template](./template.md) 文件作为模版,并在 [mkdocs.yml](./mkdocs.yml) 文件中添加其navigation,当然你还可以在 [CS 学习规划](./CS学习规划.md) 里的对应模块为其添加言简意赅的导语。 +一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出 [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。如果你想贡献一门新的课程,可以参考目前 repo 中的 [template](./template.md) 文件作为模版,并在 [mkdocs.yml](./mkdocs.yml) 文件中添加其navigation,当然你还可以在 [CS 学习规划](./docs/CS学习规划.md) 里的对应模块为其添加言简意赅的导语。 同时由于个人水平有限,书中难免有笔误甚至概念错误之处,也请各位不吝赐教,在issue中提出来。 diff --git a/docs/编程入门/Duke-Coursera-Intro-C.md b/docs/编程入门/Duke-Coursera-Intro-C.md new file mode 100644 index 00000000..4cac2070 --- /dev/null +++ b/docs/编程入门/Duke-Coursera-Intro-C.md @@ -0,0 +1,31 @@ +# Introductory C Programming Specialization + +## 课程简介 + +- 所属大学:Duke +- 先修要求:无。门槛不高,大胆尝试。 +- 编程语言:C +- 课程难度:🌟🌟🌟🌟 +- 预计学时:110 + +## 课程资源 + +- 课程网站:https://www.coursera.org/specializations/c-programming +- 课程视频:同上 +- 课程教材:同上 +- 课程作业:同上 + +## 资源汇总 + +我在学习这门课中的作业实现都汇总在 [Duke Coursera Intro C](https://code.haidongji.com/Duke_Coursera_Intro_C/) 中。因为时间关系,我最后一课最后一周的几个作业到目前还没有完成。 + +## 备注 + +非常好的课程,自我感觉收益非常大: +- 侧重基础和科学方法论。C(C++)基本概念如frame、stack memory、heap memory等讲得很透 +- 针对C最难掌握的指针,有好的练习和编程会强化和加深理解 +- 非常好的gdb、valgrind上手训练。如果你没用过git,作业会给你一些基本的git练习 +- 老师建议作业用Emacs。所以对Emacs小白来说,是个不错的入门。如果你会用Vim,我建议你用Evil插件。这样Emacs感觉起来像Vim:你不会丢掉Vim强大的编辑功能,同时你可以体会Emacs的强大,很可能入坑。这不是坏事,工具箱里同时有Emacs和Vim时,效率会有不少提高。Emacs的org-mode,和gdb的顺滑整合,等等等等,都会让你如虎添翼。 +- 虽然可能需要付钱,我觉得值 +-Coursera把这一大课分成了四个小课,但小课之间的作业文件的转移并不顺利。这是个有点讨厌的地方。幸运的是,后面的小课可以给以前小课的作业打分,所以我是接着把前面的作业又做了一遍。权当巩固,效果不错。 +- 虽说课名是入门,感觉还挺有深度和挺全面的,能增加你C/C++编程信心。 diff --git a/mkdocs.yml b/mkdocs.yml index 50eb10b2..f4330a7e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -102,6 +102,7 @@ nav: - "UCB CS61A: Structure and Interpretation of Computer Programs": "编程入门/CS61A.md" - "Stanford CS106L: Standard C++ Programming": "编程入门/CS106L.md" - "Stanford CS110L: Safety in Systems Programming": "编程入门/CS110L.md" + - "Coursera Introductory C Programming Specialization (Duke University)": "编程入门/Duke-Coursera-Intro-C.md" - 电子基础: - "EE16A&B: Designing Information Devices and Systems I&II": "电子基础/EE16.md" - "UCB EE120 : Signal and Systems": "电子基础/signal.md"