Skip to content

Subdirectories inside focus on C, Algorithms, and Data Structures. 98%+ of the code inside is written in C.

Notifications You must be signed in to change notification settings

byn3/holbertonschool-low_level_programming

Repository files navigation

holbertonschool-low_level_programming

The C Programming Language

Introduction

Each directory contains the low level projects and code that I wrote during my time at Holberton. More detailed and specific READMEs are located in each folder. The focus of these projects were to master computer science concepts and to practice the theory behind C, algorithms, and basic data structures. There is info and trivia questions that I go over in each directory.

Capstone Projects

I wrote my own printf function with Nicole Swanson. This project had restrictions regarding the use of several functions and libraries, so my partner and I had to write our own functions that behaved similar to their standard counterparts. All of these files had to compile and work together to function as a printf substitute. This project challenged us when we were learning about string manipulation and memory management.

This project was created by Jinzi Zhang and I. It is a simple version of the sh shell. All the outputs and exit statuses should return the same as sh's. This project focused on memory, sys calls, and pointers to pointers. Like the project above, there were limitations

Description of Each Directory


Directory Description
0x00-hello_world The basics of C, standard I/O and the compiling process. Link to a blog post included
0x01-variables_if_else_while More scripts that manipulate the preprocesser of gcc for specific outputs. Another blog post link is included. The focus was mainly on conditions and logic
0x02-functions_nested_loops Loops in loops in loops. Some fibonnaci problems.
0x03-more_functions_nested_loops More loops and in depth
0x04-pointers_arrays_strings Recreate basic built-in functions of the string.h library
0x05-pointers_arrays_strings More practice with pointers, arrays, and strings
0x06-pointers_arrays_strings Even more projects that reinforced the concepts
0x07-recursion Recursion problems, scripts, and projects
0x08-static_libraries Working with and creating my own static libraries. Blog post included
0x09-argc_argv Programs that deal with arguments. No more int main(void)
0x0A-malloc_free Learned memory allocation and valgrind
0x0B-more_malloc_free Extra functions that deal with memory management
0x0C-preprocessor Problem set that focused on headers, MACROS, and abusing the preprocessor
0x0D-structures_typedef Project that introcuded me to C structures and freeing all their attributes
0x0E-function_pointers Projects that go over manipulating pointers, derefrencing, and memory addresses
0x0F-variadic_functions Infinite possible arguments... va_stuff projects
0x10-holberton_printf Project 10 was the capstone printf project
0x11-singly_linked_lists Linked list versus arrays. Building and using linked lists
0x12-more_singly_linked_lists Higher difficulty projects that dealt with strutures and singly linked lists
0x13-bit_manipulation Bitwise manipulation scripts and functions
0x14-file_io File input and output descriptors, system calls, permissions
0x15-holberton_shell Project 15 was the capstone shell project
0x16-doubly_linked_lists Doubly linked lists and manipulation of them
0x17-dynamic_libraries Understanding dynamic libraries and a blog post on Linkedin
0x18-stacks_queues_lifo_fifo Used submodules and worked with stacks and queues
0x19-hash_tables Hash tables and functions
0x1A-sorting_algorithms Practiced sorting algorithms and Big O
0x1B-makefiles Project used to understand Makefiles and their primary uses
0x1C-binary_trees Learned binary trees and concepts
0x1D-search_algorithms Review search algorithms and big O

Technologies Used

  • Language: Bash, C90
  • Operating System: Ubuntu 14.04 LTS (Trusty64)
  • Style: Holberton Betty
  • Compiler: gcc 4.8.4 with flags -Wall -Werror -Wextra -Wpedantic
  • Version Control: Git

Social Media

Linkedin

Twitter: @bynleung