This repo is for materials used by me(Paul Mburu) and Feisal Mohammed in tutoring other students in C programming at Taita Taveta University
#Learn To Code C
## Goals
- Understand the topics listed in the curriculum.
- Complete a [personal project][project-ideas] written in C.
- Contribute to an [open source project that is written in
C][open-source-c-projects].
[open-source-c-projects]: notes/meta/open_source_projects.md
[project-ideas]: notes/meta/project_ideas.md
## Prerequisites
- [Familiarity with Command Line Interface][learn-cli] (`pwd`, `cd`, `ls`, `mkdir`, `rmdir`, `cp`, `mv`, `rm`)
- [The compiler setup][c-setup]
[learn-cli]:
cli.learncodethehardway.org
[c-setup]:
c.learncodethehardway.org
## Week 1: Compilation
- [Why Learn C?][why-learn-c]
- [Slides on "Why Learn C?"][daphne-slides-why-learn-c]
- Compiling and Running C Programs
- [gcc demo][gcc-demo]
- [clang demo][clang-demo]
- [clang versus gcc][clang-vs-gcc] from clang.llvm.org
- [The "Main" Function][main]
- **Exercises:**
- [Hello World][hello-world]
- [Formatted Printing][learn-c-hard-way-ex-3] from "Learn C The Hard Way"
(Ignore the comments about using Make.)
- [Fahrenheit to Celsius][k-r-p8] from "The C Programming Language" (Sections
1.2-1.4)
- [Fizz Buzz][fizz-buzz]
- **Bonus:** [Euler Problem #1: Multiples of 3 and 5][euler-1]
- **Bonus:** [Euler Problem #2: Even Fibonacci Numbers][euler-2]
- **Bonus:** [Euler Problem #3: Largest Prime Factor][euler-3]
[why-learn-c]: notes/intro/why_learn_c.md
[daphne-slides-why-learn-c]:
docs.google.com
[gcc-demo]: notes/intro/gcc-demo.md
[clang-demo]: notes/intro/clang-demo.md
[clang-vs-gcc]:
clang.llvm.org
[main]: notes/intro/main_function.md
[hello-world]: exercises/intro/hello_world.md
[fizz-buzz]: exercises/intro/fizz_buzz.md
[learn-c-hard-way-ex-3]:
c.learncodethehardway.org
[k-r-p8]:
iups.org
[euler-1]:
projecteuler.net
[euler-2]:
projecteuler.ne …