- Level Foundation
- Duration 20 hours
- Course by Duke University
-
Offered by
About
Building on the course Programming Fundamentals, this course will teach you how to write code by first planning what your program should do"an important approach for novice and professional programmers. You will learn how to compile and run your program, and then how to test and debug it. This course builds on the Seven Steps you have already learned and provides a framework for systematically testing for problems and fixing them, so you can find and fix problems efficiently.Modules
Introduction
1
Videos
- Introduction to Writing Code
1
Readings
- Planning
More about Steps 1–4
1
Assignment
- Steps 1–4 Review
1
Videos
- Intersection of Two Rectangles
6
Readings
- Revisiting Step 1
- Revisiting Step 2
- Step 3: Generalizing Values
- Step 3: Repetitions
- Step 3: Conditional Behavior
- Revisiting Step 4
Step 5
1
Assignment
- Step 5 Concepts
1
Videos
- Translating the Intersection Algorithm to Code
5
Readings
- Translation to Code
- Translating Algorithm Components
- Completed Rectangle Intersection Code
- Top-down Design and Composability
- Stars Example
Tools
- Assignment 00_hello
- Assignment 01_apple
3
Videos
- Introduction to the Programming Environment
- Editing Files with Emacs
- More about Git
8
Readings
- Introduction to the Programming Environment
- Instructions for Learners Upgrading from a Previous Course Version
- Solutions to a Few Common Problems
- UNIX basics
- More UNIX Commands
- Emacs
- Git
- [Optional Reference] Help me fix...
Review
- Assignment 02_code1
- Assignment 03_code2
1
Readings
- Next Steps
Introduction
1
Assignment
- Compiling
1
Videos
- Now We Need to Compile
3
Readings
- Compiling Overview
- Compilation Process
- Preprocessing
First Example
- Assignment 04_compile
- Assignment 05_squares
5
Videos
- "Hello World"
- Planning isPrime
- Generalizing isPrime
- Translating isPrime to Code
- Comparing Output with diff
1
Readings
- Getting Help: man Pages
Compiler Details
1
Assignment
- Compilation Process
5
Readings
- More about Macros and Header Files
- The Actual Compiler
- Compiler Errors
- Assembling
- Linking
More Tools
1
Assignment
- Make and Valgrind
2
Videos
- Build Tool: make
- Compiling with a Makefile
5
Readings
- Make
- Fancier make Options
- Running Your Program
- valgrind
- Compiler Options
Review
- Assignment 06_rect
- Assignment 07_retirement
1
Assignment
- Prototype: Assignment 06 Practice Quiz
Testing
- Assignment 08_testing
- Assignment 09_testing2
1
Assignment
- Testing
3
Videos
- Testing Means Finding Bugs
- Test-driven Development
- Code Review
6
Readings
- Black Box Testing
- Practical Tips for Designing Test Cases
- White Box Testing
- Generating Test Cases
- Asserts
- Code Review
Debugging
1
Assignment
- Debugging
3
Readings
- Step 7: Debugging
- The Scientific Method
- Accept or Reject Your Hypothesis?
Debugging Tools
1
Assignment
- gdb
2
Videos
- Finding Problems with Valgrind
- Gathering Information with gdb
6
Readings
- Intro to gdb
- Getting Started with gdb
- Investigating the State of Your Program
- Controlling Execution
- Watchpoints
- Signals
Review
- Assignment 10_gdb
1
Videos
- Advice from a Duke Software Engineering Student: Don't Give Up!
Introduction to the Poker Project
- Assignment c2prj1_cards
2
Videos
- Introduction to the Poker Project
- Poker Project Roadmap
Test Cases for Course 3
- Assignment c2prj2_testing
1
Readings
- Rules of Poker
Auto Summary
Delve into the essentials of coding with "Writing, Running, and Fixing Code in C." This foundational course, offered by Coursera, focuses on planning, writing, compiling, running, testing, and debugging C programs. Ideal for both novice and professional programmers, it builds on programming fundamentals and introduces a systematic framework for efficient problem-solving over 1200 minutes. Available with a Starter subscription, it's perfect for IT and Computer Science enthusiasts looking to enhance their coding skills.

Andrew D. Hilton

Genevieve M. Lipp

Anne Bracy