C Programming Course
Lessons
Lesson 1: Basic Program Structure
Lesson 2: More Advanced Control Structures
Lesson 3: Structs and Pointers
Lesson 4: dynamic memory
Lesson 5: Data structures and modularity
Lesson 6: File IO and Debugging
Lesson 7: Type Qualifiers and Multithreading
Lesson 8: Networking
Lesson 9: Unions and Permissions
Lesson 10: Bitfields
Lesson 11: Make
Lesson 12: Libraries
Lesson 13: Valgrind
Tasks
Task 1: Hello World
Task 2: FizzBuzz!
Task 3: Control Structures
Task 4: A simple Calculator
Task 5: Prime number Generation
Task 6: Vector Sum
Task 7: A Simple Game: Cancertales
Task 8: A Dynamic Array
Lesson 5 Intermediate Task Starting Point: Linked List Insertion
Task 9: Doubly Linked Lists
Task 10: Binary Trees
Lesson 6 Intermediate Task: Bughunting in the Ascii Dungeon
Task 11: A File Copy Tool
Task 12: A Calculator Came
Task 13: reinventing assert
Lesson 13 Intermediate Task: Debugging with valgrind
Task Solutions
Task 1: Hello World
Task 2: FizzBuzz!
Task 3: Control Structures
Lesson 2 Intermediate Task: Scanf
Task 4: Simple Calculator
Lesson 3 Intermediate Task: Linked List
Task 6: Vector Sum
Lesson 4 Intermediate Task: A Binary Tree
Task 8: A Dynamic Array
Lesson 5 Intermediate Task a: Linked List insertion
Lesson 5 Intermediate Task b: The List Library
Lesson 6 Intermediate Task: Bughunting in the Ascii Dungeon
Task 12: A Calculator Came
Tetris Project Files
termio header
termio implementation