LOW LEVEL PROGRAMMING

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.

C PROGRAMMING LANGUAGE

  • 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

GRAPHIC PROGRAMMING

  • SDL2
  • Isometric projection Raycasting

UNIX PROGRAMMING

  • Unix / Linux overview
  • File I/O, Memory allocation process creation and termination System calls

DATA STRUCTURE AND ALGORITHMS

  • 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

PROJECTS

  • Create your own printf function
  • Code from scratch a mini-shell