Skip to content

pie972/alx-low_level_programming

Repository files navigation

Low Level Programming :octocat:

Each folder in this repository illustrates an essential concept of programming, specific to the C programming language. The file names reference the concepts (i.e. pointers, recursion, malloc, free, structures, function pointers, variadic functions, linked lists, etc) Inside these folders are files containing bash scripts and functions around that particular concept. Some functions are re-creations of functions found in the C standard libraries (i.e. _strcpy, _strlen, etc).

Environment

  • Language: C
  • OS: Ubuntu 14.04 LTS
  • Compiler: gcc 4.8.4
  • Style guidelines: Betty style

Low Level Programming in C

The low level curriculum focuses on the understanding of how programming languages and UNIX systems work - "what is going on under the hood." This allows you to optimize and debug your programs. The curriculum focuses on algorithms and data structures.

Projects

Project Description
0x00-hello_world Intro to C, GCC compilation, and the Implementation of main & print functions
0x01-variables_if_else_while Loops and Conditionals: if, else, while and boolean & arithmetic operators
0x02-functions_nested_loops The use of Functions & Nested Loops and Implementation of Header Files and Variable Scoping
0x03-debugging Intro to Debugging: read error messages and handle them
0x04-more_functions_nested_loops Understand 2D planes with nested loops & Understand the difference between defining a function vs declaring a function
0x05-pointers_arrays_strings The use of String Standard Library functions with pointers: pointers vs. arrays
0x06-pointers_arrays_strings String Manipulation
0x07-pointers_arrays_strings Multidimensional arrays with double pointers: change, traverse, and search for strings
0x08-recursion Recursion in C and implementing best practice by using math functions and string manipulation
0x09-static_libraries Create your own Static Library and its usage
0x0A-argc_argv Command line arguments and its implementation
0x0B-malloc_free Intro to Memory Management and the use of Valgrind, & the use of malloc function to concatonate strings
0x0C-more_malloc_free Management of memory & Implementation of Valgrind
0x0D-preprocessor The use of Macros for readable constants & implementation of headers
0x0E-structures_typedef The use of structs in C with their functionality
0x0F-function_pointers Function Pointers & its use in Dynamic Programming
0x10-variadic_functions Functions that can pass a variable amount of arguments
0x12-singly_linked_lists Introduction to data structures and singly linked lists & Implementation in string manipulation
0x13-more_singly_linked_lists Nodes: How to Retrieve, Insert, and Delete
0x14-bit_manipulation Bitwise Operators & Its implementation in the bitwise values of a number

Author

Imane J.

Email me on [email protected]

Follow me on Linkedin

WHEN to Contribute?

You are always welcome to contribute.

HOW to Contribute?

  • Fork this repository.
  • Do your desired changes.
  • Make a pull request.