Skip to content

awinabaab/alx-low_level_programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ALX Low-level Programming

  • This repository is a collection of directories containing a combination ofbash scripts and C programs as part of my Fullstack Software Engineering learning journey with ALX.
  • The files contained in these directories demonstrate my knowledge and understanding of the fundamental principles of computer programming.
  • All scripts and programs were created, compiled and tested on an Ubuntu 20.04 environment.
  • All programs in this repository were compiled using gcc -Wall -Werror -Wextra -pedantic -std=gnu89 [file(s)]

C Basics. Concepts covered include:

  • Program Structure
  • Fundamental Data Types
  • Compiling and Running C programs
  • Header Files

Program control flow. Concepts covered include:

  • Data Types and Variables
  • Declareations, Expressions and Assignment
  • Arithmetic Operators (+, -, /, *, **, %)
  • Relational Operators (<, >, <=, >=, ==, !=)
  • Logical Operators (&&, ||, !)
  • Conditionals (if, else if, else)
  • Loops (for, while, do while)
  • break and continue statements
  • Betty coding standard
  • ASCII
  • Precedence and Associativity of operators
  • What are nested loops and how to use them.
  • What is a function and how do you use functions.
  • What is the difference between a declaration and a definition of a function.
  • What is a prototype.
  • Scope of variables.
  • What are the gcc flags -Wall -Werror -pedantic -Wextra -std=gnu89.
  • What are header files and how to use them with #include.
  • What are nested loops and how to use them.
  • What is a function and how do you use functions.
  • What is the difference between a declaration and a definition of a function.
  • What is a prototype.
  • Scope of variables.
  • What are the gcc flags -Wall -Werror -pedantic -Wextra -std=gnu89.
  • What are header files and how to use them with #include.
  • What are pointers and how to use them.
  • What are arrays and how to use them.
  • What are the differences between pointers and arrays.
  • How to use strings and how to manipulate them.
  • Scope variables.
  • What are pointers and how to use them.
  • What are arrays and how to use them.
  • What are the differences between pointers and arrays.
  • How to use strings and how to manipulate them.
  • Scope variables.
  • What are pointers and how to use them
  • What are multidimensional arrays and how to use them
  • What are the most common C standard library functions to manipulate strings
  • What is recursion
  • How to implement recursionIn what situations you should implemet recursion
  • In what situations you shouldn't implement recursion
  • What is static library, how does it work, how to create one, and how to use it
  • Basic usage of ar, ranlib, nm.
  • How to use arguments passed to your program
  • What are two prototypes of main that you know of, and in which case do you use one or the other
  • How to use attribute((unused)) or (void) to compile function with unused variables or parameters
  • What is the difference between automatic and dynamic allocation
  • What is malloc and free and how to use them
  • Why and when use malloc
  • How to use valgrind to check for memory leak
  • How to use the exit function
  • What are the functions calloc and realloc from the standard library and how to use them
  • What are macros and how to use them
  • What are the most common predefined macros
  • How to include guard your header files
  • What are structures, when, why and how to use them
  • How to use typedef
  • What are function pointers and how to use them
  • What does a function pointer exactly hold
  • Where does a function pointer point to in the virtual memory
  • What are variadic functions
  • How to use va_start, va_arg and va_end macros
  • Why and how to use the const type qualifier
  • When and why using linked lists vs arrays
  • How to build and use linked lists
  • How to use linked lists
  • How to manipulate bits and use bitwise operators
  • What are file descriptors
  • What are the 3 standard file descriptors, what are their purpose and what are their POSIX names
  • How to use the I/O system calls open, close, read and write
  • What are and how to use the flags O_RDONLY, O_WRONLY, O_RDWR
  • What are file permissions, and how to set them when creating a file with the open system call
  • What is a system call
  • What is the difference between a function and a system call
  • What is a doubly linked list
  • How to use doubly linked lists
  • Understand and know how to implement the various operations (deletion, insertion, etc) with doubly linked lists
  • What is a dynamic library, how does it work, how to create one, and how to use it
  • What is the environment variable $LD_LIBRARY_PATH and how to use it
  • What are the differences between static and shared libraries
  • Basic usage nm, ldd, ldconfig
  • What makes a good hash function
  • What is a hash table, how do they work and how to use them
  • What is a collision and what are the main ways of dealing with collisions in the context of a hash table
  • What are the advantages and drawbacks of using hash tables
  • What are the most common use cases of hash tables

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages