This unit focus on understand how programming languages and Unix systems work, “what is going on under the hood”. This will allow me to optimize and debug anything later. I worked with algorithms and data structures which are essential foundations for any great Software Engineer.
- Compilation
- Commenting code and following a coding style standard
- Variables, types, operators, expressions
- Loops, nested loops
- Conditional statements
- Functions
- Preprocessor, macros, header files
- Pointers, pointers to pointers, pointers to functions, pointer arithmetic
- Arrays, multidimensional arrays
- Structures
- Static and dynamic libraries
- Program arguments
- Dynamic allocation
- Virtual Memory, heap and stack
- Binary operations
- Makefiles
- SDL2
- Isometric projection Raycasting
- Unix / Linux overview
- File I/O, Memory allocation process creation and termination System calls
- Time and space complexity
- Arrays, structures
- Linked lists, doubly linked lists, circular linked lists
- Stacks and queues
- Hash tables
- Recursion
- Search & sorting algorithms
- Binary trees, BST, AVL
- Create your own printf function
- Code from scratch a mini-shell