Welcome to the C Programming Lectures repository by Bayt-al-Hikmah! This collection of lecture notes is designed for beginners and intermediate learners aiming to master C programming fundamentals. Whether you're new to coding or refreshing your skills, these notes provide structured, step-by-step guidance through core concepts.
Bayt-al-Hikmah (House of Wisdom) is dedicated to preserving and disseminating knowledge, inspired by the historic intellectual center of the Islamic Golden Age. These lectures emphasize clear explanations, practical examples, and hands-on exercises to build a strong foundation in the C language.
-
Basic familiarity with computers and file management.
-
No prior programming experience required (though helpful).
-
A C compiler (e.g., GCC on Windows via MinGW, macOS, or Linux) and an IDE like Visual Studio Code, Code::Blocks, or CLion.
-
Install a C compiler:
-
Windows: Download MinGW from mingw-w64.org.
-
macOS: Use Homebrew: brew install gcc.
-
Linux: sudo apt update && sudo apt install gcc (Ubuntu/Debian).
-
-
Install an editor/IDE: VS Code with the C/C++ extension is recommended for beginners.
-
Test your setup: Compile and run a "Hello, World!" program (example in Lecture 1).
This 5-lecture series covers essential C topics progressively. Each lecture includes:
-
Theoretical explanations.
-
Code examples and snippets.
-
Exercises for practice.
-
References for further reading.
| Lecture | Topic | Key Concepts Covered |
|---|---|---|
| Lecture 1 | Variables and Input-Output | Variables, data types (int, float, char, etc.), user input/output with scanf/printf. |
| Lecture 2 | Control Flow | Logical/comparison operators, if-else, switch-case, for/while/do-while loops. |
| Lecture 3 | Pointers and Data Structures | Pointers, dynamic memory allocation, dynamic arrays, structs, typedef. |
| Lecture 4 | Functions and Header Files | Function creation, parameters, return types, header files, scope rules. |
| Lecture 5 | Advanced Data Structures and Files | Data structures, file I/O, working with bitmap and WAV files. |
Recommended Pace: 1-2 lectures per week, with time for coding practice. Total estimated time: 15-25 hours.
-
Exercises: Each lecture ends with coding challenges. Solutions can be added in a separate /exercises folder.
-
Mini-Project Ideas:
-
Lecture 2: Simple calculator app using control flow.
-
Lecture 3: Dynamic list management with structs.
-
Lecture 5: Bitmap or WAV file parser.
-
-
Resources: cprogramming.com for docs, HackerRank for problems.
We welcome contributions! Help expand these notes with:
-
Corrections or clarifications.
-
Additional examples or exercises.
-
Translations or adaptations.
This project is licensed under the MIT License – feel free to use, modify, and distribute.
Questions? Open an issue or reach out via:
-
GitHub: @Bayt-al-Hikmah
-
Email: Alitigui
Happy coding! 🚀 Let's build wisdom through code.