The contents in this repository are on low level programming in the C language. Module of System engineering and Devops, carried out during Full Stack Software Engineering studies at ALX Africa.
- Scripts written in Bash 5.0.17(1)
- Tested on Ubuntu 20.04 LT
All of the following folders are projects done during the studies:
Project | Description |
---|---|
0x00. C - Hello, World | Introduction into the 4 steps of GCC compilation |
0x01. C - Variables, if, else, while | First C programs using loops and conditionals |
0x02. C - Functions, nested loops | Simple functions and multilayer looping |
0x03. C - Debugging | Manual debugging techniques and reading error messages |
0x04. C - More functions, more nested loops | Drawing on 2D planes with nested loops |
0x05. C - Pointers, arrays and strings | Implementation of basic string standard library functions with pointers |
0x06. C - More pointers, arrays and strings | Deep dive into pointer arithmetric and more string manipulation |
0x07. C - Even more pointers, arrays and strings | Double pointers and multidimensional arrays |
0x08. C - Recursion | Best practices with recursion in C |
0x09. C - Static libraries | Creation of static libraries |
0x0A. C - argc, argv | Programs that handle command line arguments |
0x0B. C - malloc, free | Introduction into memory management and valgrind |
0x0C. C - More malloc, free | Dynamic reallocation of memory using malloc |
0x0D. C - Preprocessor | Proper use of macros and headers |
0x0E. C - Structures, typedef | Implementation of structs in C |
0x0F. C - Function pointers | How to use function pointers to write more dynamic programs |
0x10. C - Variadic functions | Writing functions that can take a variable amount of arguments |
0x11. C - printf | Custom implementation of C's printf (midterm project) |
0x12. C - Singly linked lists | Creation and traversal of singly linked lists in C |
0x13. C - More singly linked lists | Node retrieval, insertion, deletion |
0x14. C - Bit manipulation | Use of bitwise operators in C programs |
0x15. C - File I/O | Open/read/write input/output streams |
0x16. C - Simple Shell | Custom Unix shell interpreter (final project) |
0x17. C - Doubly linked lists | Creation and traversal of doubly linked lists in C |
0x18. C - Dynamic libraries | Applications of dynamic libraries |
0x19. C - Stacks, Queues - LIFO, FIFO | Custom interpreter for Monty ByteCodes files using stacks/queues |
0x1A. C - Hash tables | Implementation of hash tables with djb2 algorithm |
0x1B. C - Sorting algorithms & Big O | Big O Notation and sorting algorithms |
0X1C. C - Makefiles | Makefile Requirements in C |
0x1D. C - Binary trees | Binary Trees, AVL Trees, Max Heaps |
0x1E. C - Search Algorithms | Linear, binary, jump, exponential and interpolation searches |
Melkameh Argaw - melkam5