Holberton School - Low Level Programming
This proyect is about low level programming in C.
Prerequisites
- Ubuntu 14.04 LTS
- gcc 4.8
Content
Project | Description |
---|---|
0x00-hello_world |
How to print text using printf, puts and putchar. Preprocessing, compilation, assembly, and linking. |
0x01-variables_if_else_while |
How to use while loops and statements. Print using putchar only. |
0x02-functions_nested_loops |
How to use functions, nested loops and meaning of scope functions and variables. Create custom functions: islower, isalpha, print_sign, abs, print_last_digit, times_table, add, print_to_98, print_times_table. First 98 Fibonacci numbers |
0x03-debugging |
Basics of Debugging with Rubber Duck Debugging aproach. |
0x04-more_functions_nested_loops |
More of nested loops with algorithms, header files and scope. Create custom functions: isupper, isdigit, mul, print_numbers, print_most_numbers, more_numbers, print_line, print_diagonal, print_square, print_triangle. Fizz-Buzz, and prime_factor. |
0x05-pointers_arrays_strings |
How to use pointers in arrays and differences with other data types. Create custom functions: swap_int, strlen, puts, print_rev, rev_string, puts2, puts_half, print_array, strcpy, atoi. |
0x06-pointers_arrays_strings |
More of pointers with algorithms. Create custom functions: strcat, strncpy, strcmp, reverse_array, string_toupper, cap_string, print_number, infinite_add, print_buffer. Enconde a string using 1337, rot13 |
0x07-pointers_arrays_strings |
Even more of pointers with algorithms. Create custom functions: memset, memcpy, strchr, strspn, strpbrk, strstr, print_chessboard, print_diagsums, set_string. |
0x08-recursion |
How to implement recursion. |
0x09-static_libraries |
How to create static libraries |
0x0A-argc_argv |
How to use arguments in the main functions and when to use it |
0x0B-malloc_free |
How to use dynamic memory allocation with malloc and free |
0x0C-more_malloc_free |
How to use calloc, realloc and exit function with dynamic memory |
0x0D-preprocessor |
How to use preprocessor directives, macro arguments and implement a guard |
0x0E-structures_typedef |
How to implement structures and the usage of typedef |
0x0F-function_pointers |
How to use function pointers |
0x10-variadic_functions |
How to use variadic functions |
0x12-singly_linked_lists |
How to build and use linked lists |
0x13-more_singly_linked_lists |
More of linked lists with algorithm exercises |
0x14-bit_manipulation |
How to use binary operators |
0x15-file_io |
How to use the I/O system calls open, close, read and write |
0x17-doubly_linked_lists ) |
How to use a Double Linked List with pointers |
0x18-dynamic_libraries |
How to implement Dynamic Libraries and basic usage of nm, ldd, ldconfig, etc |
0x19-stacks_queues_lifo_fifo |
How to implement Stacks and Queues with LIFO and FIFO |
0x1A-hash_tables |
How to creat a hash function and implement it in a hash table |
0x1B-sorting_algorithms |
How to implement sorting algorithms and understand its efficiency |
0x1C-makefiles |
How to implement a makefile with rules |
0x1D-binary_trees |
How to implement binary trees with pointers and nodes |
0x1E-search_algorithms |
How to implement linear and binary search algorithms |