#Learn To Code C
- Understand the topics listed in the curriculum.
- Complete a personal project written in C.
- Contribute to an open source project that is written in C.
Week 1: Compilation
- Why Learn C?
- Compiling and Running C Programs
- The "Main" Function
- Hello World
- Formatted Printing from "Learn C The Hard Way" (Ignore the comments about using Make.)
- Fahrenheit to Celsius from "The C Programming Language" (Sections 1.2-1.4)
- Fizz Buzz
- Bonus: Euler Problem #1: Multiples of 3 and 5
- Bonus: Euler Problem #2: Even Fibonacci Numbers
- Bonus: Euler Problem #3: Largest Prime Factor
Week 2: Basics Part 1
- Variable Declaration
- Data Types
- Strings in C
- Exercise: Word Counter from "The C Programming Language" (Sections 1.5.1-1.5.2)
- Arithmetic Operations from "The C Programming Language" (Sections 2.5-2.6)
- Exercise: More Variables, Some Math from "Learn C The Hard Way"
- More Exercises:
Week 3: Basics Part 2
- Syntax Review
- Type Conversion from "The C Programming Language" (Section 2.7)
- Getting User Input
Week 4: C Specific Basics
- C Libraries
- Using multiple files in a project
- Advanced Compilation
- Exercise: Variations of Fizz Buzz
- External Variables
- Exercise: RPN Calculator from "The C Programming Language" (Sections 4.3-4.6)
- Exercise: Make some Makefiles
- reading and writing to files
- Exercise: Caesar Cipher
Week 5: Pointers and Standard Libraries
- Pointers and Memory: Hands-on example of pointers and memory
- Chapter 5: Pointers and Arrays from "The C Programming Language" (Chapter 5)
- Pointers Dreaded Pointers from "Learn C The Hard Way"
- Pointers to Functions from "Learn C The Hard Way"
- Example: Caesar Cipher using Pointers
- Slides on Pointers and Memory from our lightning talk (Thanks @hazmatzo)
- Standard Libraries:
Week 6: Memory Allocation
- Allocating Memory with
malloc: summary of sections 5.4, 5.6, 6.5, and 7.8.5 from "The C Programming Language"
- Freeing Memory: continued summary of memory management
- Reference Documentation for Malloc from Wikibooks "C Programming"
- Memory Allocation Intro Slides from U of Washington
- C Memory Management Examples from TutorialsPoint
Week 7: Data Types
- TypeDef from "The C Programming Language" section 6.7
- Slides on Data Structures
- Bonus Reading:
Week 8: Advanced Topic
- Binary Numbers:
- Bitwise Operators:
- Bitwise Operators in C from TutorialsPoint
- Bitwise Operators Section 2.9 from The C Programming Language
- Two's Compliment:
- Two's Compliment
- More Exercises:
- Small Tools Intro
- Command Line Options & Arguments
Much of the material for this course was drawn from the following:
- "The C Programming Language" by Brian W. Kernighan and Dennis M. Ritchie
- "Learn C The Hard Way" by Zed Shaw
How to Host This Event
##License MIT License