This repository contains programs written for the low-level programming and algorithm track in the Full Stack Software Engineering Program at ALX Africa.
I am currently learning C.
- Scripts written in Bash 4.3.11(1)
- C files are compiled using
gcc 4.8.4
- C files are written according to the C90 standard
- Tested on Ubuntu 20.04 LTS
In these projects I learned about data structures, algorithms, and other low-level programming concepts while working in the C programming language. The specific list of projects contained follows:
- 0x00. C - Hello, World
- 0x01. C - Variables, if, else, while
- 0x02. C - Functions, nested loops
- 0x03. C - Debugging
- 0x04. C - More functions, more nested loops
- 0x05. C - Pointers, arrays and strings
- 0x06. C - More pointers, arrays and strings
- 0x07. C - Even more pointers, arrays and strings
- 0x08. C - Recursion
- 0x09. C - Static libraries
- 0x0A. C - argc, argv
- 0x0B. C - malloc, free
- 0x0C. C - More malloc, free
- 0x0D. C - Preprocessor
- 0x0E. C - Structures, typedef
- 0x0F. C - Function pointers
- 0x10. C - Variadic functions
- 0x11. C - printf
- 0x12. C - Singly linked lists
- 0x13. C - More singly linked lists
- 0x14. C - Bit manipulation
- 0x15. C - File I/O
- 0x16. C - Simple Shell
- 0x17. C - Doubly linked lists
- 0x18. C - Dynamic libraries
- 0x19. C - Stacks, Queues - LIFO, FIFO
- 0x1A. C - Hash tables
- 0x1B. C - Sorting algorithms & Big O
- 0x1C. C - Makefiles
- 0x1D. C - Binary trees
- 0x1E. C - Search Algorithms
Project name | Description |
---|---|
0x00-hello_world |
It aims to learn about what is entry point, basics commands (puts, printf, putchar), compilation process with gcc in C language |
0x01-variables_if_else_while |
It aims to learn about arithmetic operators, relational operators, boolean operators, comments, declaring variables and loops in C language |
0x02-functions_nested_loops |
It aims to learn about header files, functions, loops and nested loops in C language |
0x03-debugging |
It aims to learn how to debug in C language |
0x04-more_functions_nested_loop |
It aims to learn about nested loops in C language |
0x05-pointers_arrays_strings |
It aims to learn about pointers and arrays in C language |
0x06-pointers_arrays_strings |
It aims to learn about pointers and arrays in C language |
0x07-pointers_arrays_strings |
It aims to learn about pointers and arrays in C language |
0x08-recursion |
It aims to learn about recursion and how to implement it in C language |
0x09-static_libraries |
It aims to learn about static libraries in C language |
0x0A-argc_argv |
It aims to learn about how to use arguments passed to a program in C language |
0x0B-malloc_free |
It aims to learn about automatic and dynamic allocation in C language |
0x0C-more_malloc_free |
It aims to learn about how to use malloc , calloc , realloc and exit functions in C language |
0x0D-preprocessor |
It aims to learn about how to include guard in the header files and macros in C language |
0x0E-structures_typedef |
It aims to learn about structures and typedef in C language |
0x0F-function_pointers |
It aims to learn about function pointers in C language |
0x10-variadic_functions |
It aims to learn about variadic functions in C language |
0x12-singly_linked_lists |
It aims to learn about linked lists in C language |
0x13-more_singly_linked_lists |
It aims to learn about singly linked lists in C language |
0x14-bit_manipulation |
It aims to learn about how to manipulate bits and use bitwise operators in C language |
0x15-file_io |
It aims to learn about how to handle files (open, close, read and write), file descriptors, system calls and file permissions in C language |
0x17-doubly_linked_lists |
It aims to learn about doubly linked list in C language |
0x18-dynamic_libraries |
It aims to learn about dynamic and shared libraries in C language |
0x19-stacks_queues_lifo_fifo |
Submodule of monty, an interpreter of Monty ByteCode files written with C language |
0x1A-hash_tables |
It aims to learn how to implement Hash Tables with C language |
All work contained in this project was completed as part of the curriculum for the ALX-SE programme. ALX Africa is an online full-stack software engineering program that prepares students for careers in the tech industry using project-based peer learning.
For more information, visit this link.