# 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