This repo serves as my workings of 42 Piscine C projects. These projects were completed during a 4-week intensive program aimed at teaching the fundamentals of the C programming language. Each project focuses on a specific aspect of C programming, building upon the knowledge and skills gained in the previous projects.
- Rush Projects
- Knowledge Accquired
- Resources
- Practices (Problem Solving Questions)
- Resources for further studies (After piscine)
The following is a list of the group projects (known as Rush Projects) completed during the 42 Piscine, in the order they were completed:
- Rush 00: In this project, we created a program that generates a sequence of patterns in the form of a NxN grid.
- Rush 01: Refer to Skyscraper Project.
Throughout the Piscine, we gained knowledge and skills in the following areas of C programming, in the following order:
-
Data Types (Bytes): We learned about the different data types in C, including integers, floats, and characters, and how they are stored in memory as bytes.
-
Pointers: We learned about pointers, which allow us to manipulate the memory directly, and how to use them to pass variables by reference.
-
String Manipulation: We learned how to manipulate strings in C, including concatenation, copying, and searching.
-
Sorting Algorithm: We learned various sorting algorithm, including selection sort, bubble sort and insertion sort.
-
Base Conversion: We learned how to convert between different number bases, including decimal, hexadecimal, and binary bases.
-
Command Line Arguments: We learned how to pass arguments to a C program through the command line, and how to use them.
-
Memory Allocation: We learned about memory allocation in C, including dynamic memory allocation using
malloc
and free dynamic memory usingfree
. -
Recursion: We learned about recursion, and how to use it to solve problems that can be broken down into smaller, similar problems.
-
Headers: We learned about headers, and how to use them to organize our code and make it more modular.
-
Makefile: We learned how to use Makefiles to automate the building and compiling of our programs.
-
Linked List: We learned about linked lists, and how to use them to create dynamic data structures in C.
The following are resources that I found helpful during the 42 Piscine:
- Introuction to Pointers
- Pointers (In depth guide)
- C Programming Course
- C Programming by Progamiz
- Codeacademy (C Programming with hands-on-learning environment)
For further understanding of C programming, I recommend applying the knowledge on doing problem solving questions: