Introductory C Programming Specialization

课程简介

  • 所属大学:Duke
  • 先修要求:无
  • 编程语言:C
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:110 小时

非常好的课程,自我感觉收益非常大:

  • 侧重基础和基本概念:如 frame、stack memory、heap memory 等讲得很透。
  • 针对 C 最难掌握的指针,有好的练习和编程来加深和强化理解。
  • 非常好的 GDB,Valgrind 上手训练,作业也会涉及一些基本的 Git 练习。
  • 老师建议作业用 Emacs,所以对 Emacs 小白来说,是个不错的入门。如果你会用 Vim ,我建议你用 Evil 插件。这样你不会丢掉 Vim 的编辑功能,同时可以体会 Emacs 的强大。工具箱里同时有 Emacs 和 Vim 时,效率会有不少提高。Emacs 的 org-mode,和 GDB 的顺滑整合,等等等等,都会让你如虎添翼。
  • 虽然可能需要付费,但我觉得值。
  • 虽说课名是入门,但兼具广度和深度。

课程资源

资源汇总

@haidongji 在学习这门课中的作业实现都汇总在 Duke Coursera Intro C 中。因为时间关系,我最后一课最后一周的几个作业到目前还没有完成。

Crouse 1

Week 1

编写程序七步骤

image-20221218134312680

  • Step 1~4: 算法设计
    • image-20221218134906012
    • Step 1: 制作示例
    • Step 2: 记录过程
    • Step 3: 概括步骤
    • Step 4: 测试算法
  • Step 5: 代码翻译
  • Step 6: 程序测试
  • Step 7: 代码调试

Week 2

变量和表达式

声明变量

image-20221219150134940

标识符可以是任意长度,并且可以包含字母、数字和下划线 (_)。它们只能以字母或下划线(而不是数字)开头,并且区分大小写。

赋值变量

image-20221219150259815

通用运算符的表达式

函数

image-20221219151535631

Printf

条件语句

image-20221219153559441

if/else

image-20221219153705094

switch/case

image-20221219153851269

循环

while 循环

image-20221219154734245

do/while 循环

image-20221219155602927

for 循环

image-20221219155650654

break/continue

Week 3

image-20221219161255726

image-20221219161333222

char

image-20221219161341209

int

float/double

print

image-20221219161603046

string

image-20221219162916438

结构体 struct

image-20221219163216615

typedef

枚举 enum

Crouse 4

FILE

Mode Read and/or write Does not exist? Truncate? Position
r read only fails no beginning
r+ read/write fails no beginning
w write only created yes beginning
w+ read/write created yes beginning
a writing created no end
a+ read/write created no end