# Introduction
Welcome to my personal course documentation! This website contains a overview of the syntax for (hopefully) all of the material covered in the course.
See [[178 Docs]] for the follow-up course.
# Week 2
- storing and modifying variables in ints
- basic understanding of printf
# Week 3
- [[Logical expressions and operators]]
- [[Logical expressions and operators#Order of Operations|Order of Operations]]
- [[Logical expressions and operators#Conditional / Ternary Operator|Conditional / Ternary Operator]]
- [[Logical expressions and operators#Unary Operators|Unary Operators]]
- [[Decision-making Statements]]
- [[Decision-making Statements#If Statement|If Statement]]
- [[Decision-making Statements#If-Else Statement|If-Else Statement]]
- [[Decision-making Statements#If-Else-If Statement|If-Else-If Statement]]
- [[Decision-making Statements#Switch-Case Statement|Switch-Case Statement]]
- [[Loops]]
- [[Loops#While Loop|While Loop]]
- [[Loops#Do/While Loop|Do-While Loop]]
- [[Loops#For Loop|For Loop]]
- [[Loops#Selection Control vs. Repetition Control|Selection Control vs. Repetition Control]]
- [[Loops#Nested Loop|Nested Loop]]
- [[Loops#Break Statement|Break Statement]]
- [[Loops#Continue Statement|Continue Statement]]
# Week 4
- [[Functions]]
- [[Functions#Call Stack|Call Stack]]
- [[Functions#Function Definitions|Function Definitions]]
- [[Pass-by-value vs Pass-by-reference#Pass by value|Pass by value]]
# Week 5
- [[Pointers]]
- [[Pointers#Memory Address|Memory Address]]
- [[Pointers#Pass-by semantics|Pass by reference]]
- [[Pointers#Special Types|Special Types]]
- [[Pointers#Memory Safety|Memory Safety]]
# Week 6
- [[Arrays]]
- [[Arrays#Multidimensional Arrays|Multidimensional Arrays]]
- [[Sizeof]]
# Week 7
- [[Characters]]
- [[Strings]]
- [[Strings#Escape Sequences|Escape Sequences]]
- [[Strings#Strings as pointers|Strings as pointers]]
- [[Strings#String functions|String functions]]
- [[Strings#strlen|strlen]]
- [[Strings#strcmp|strcmp]]
- [[Strings#strcpy|strcpy]]
- [[Strings#Converting char digits to int digits|Converting char digits to int digits]]
# Week 8
- [[Dynamic Memory Management]]
- [[Dynamic Memory Management#Operations|Operations]]
- [[Dynamic Memory Management#malloc|malloc]]
- [[Dynamic Memory Management#realloc|realloc]]
- [[Dynamic Memory Management#free|free]]
# Week 9
- Software Design (for Engineering)
# Week 10
- Translate functional requirements into test inputs and outputs
- Debugger
- Breakpoints
```
- Translate functional requirements into test inputs and outputs [CLO 13]
- Implement unit tests to check individual functions for correct behaviour [CLO 13]
- Use breakpoints, strategically placed prints, and sanity checks to debug C programs [CLO 13]
```
# Week 11
- Recursion
# Week 12
- Search Algorithms
- Linear Search
- Binary Search
- Insertion Sort
- Selection Sort
- Quicksort
- Specialized algorithms for arrays and strings