Skip to content

Duke Intro C

Basic Information

来源:Duke University (Coursera)

课程名称:Introductory C Programming Specialization

主题:C 语言与常用工具 (Emacs, Git, Valgrind, GDB, Make)

主要内容:17 个 Lecture, 35 个 Homework, 1 个 Project

课程网站:https://www.coursera.org/specializations/c-programming

个人实现:Coursera-C-Duke

起止时间:2023.10 - 2024.01

Content

Homeworks

该课程的作业围绕一系列主题展开,并且具有丰富的表现形式,包括:

  • 阅读程序并手写输出(主要在指针章节)

  • 构造输入来使提供的程序崩溃(强调 Corner Case 和 Test Driven Development)

  • 通过编程解决问题(强调内存安全,要求必须通过 Valgrind 检查)

  • 自己写 Makefile 来编译多个文件

  • 借助 GDB 和 Valgrind 来排查并解决所给程序的内存泄露问题

Project 1

该 Project 的内容是,在已经知道双方手中牌和牌堆所含牌的前提下,通过 Monte Carlo method 来计算双方的胜率。

本项目分成了若干部分,要求在课程的不同阶段完成。其内容主要有:

  • 如何正确使用指针:所给代码中多次出现 *p, **p, 强调如何正确理解指针与多重指针

  • 如何写内存安全的程序:C 语言 malloc 之后必须正确 free ,强调如何排查内存泄露

  • 如何写结构化的代码:强调借助函数来对复杂过程进行抽象