- how to compile: GCC or Clang
- variables, data types, arrays, structures, functions and pointers
- operators: arithmetic, relational, logic, bitwise, etc
- control flow structures
- standard library
- file manager: crud with folders and files
- text editor
- encryption program: AES or DES
- api (why not?) using libmicrohttpd
- space complexity
- sorting: insertion, merge, quick, heap, bucket, counting, radix, external
- search: linear, binary
- misc: euclidean, matrix multiplication, pascal triangle
- arrays
- linked lists
- strings
- stacks
- queues
- trees
- heaps
- hash tables
- graphs
- computational complexity theory
- NP completeness
- knapsack problem
- traveling salesman
- SAT problem