Fundamenta-C Azerbaijan-themed data structures & algorithms implemented in clean C
Overview
Fundamenta-C is an educational project designed to strengthen your knowledge of pure C, systems programming, and algorithmic fundamentals — while integrating elements of Azerbaijani culture, geography, and history into naming and design.
Each data structure, module, and algorithm is named after a region, river, ancient city, or classical poet of Azerbaijan and the Caucasus.
This creates a learning journey that is not only technical but also cultural.
Goals
Learn and internalize core data structures (arrays, stacks, queues, deques, trees, hash tables, etc.)
Implement classic algorithms from scratch (sliding window, search, sort, graph algorithms, etc.)
Practice clean C style, inspired by The Linux Programming Interface.
Improve low-level reasoning: pointers, memory management, modular design.
Build a professional, well-structured educational repository for future SRE / Systems Engineering interviews.
Themed Naming Philosophy
Every module is named according to:
| Region | Data Structure | Example |
| -------- | -------------- | ------------------ |
| Absheron | Array | `absheron_array.c` |
| Gobustan | Deque | `gobustan_deque.c` |
| Shirvan | Queue | `shirvan_queue.c` |
| Karabakh | Stack | `karabakh_stack.c` |
Rivers → Algorithms
| River | Algorithm | Example |
| ----- | -------------- | ----------------------- |
| Kura | Sliding Window | `kura_sliding_window.c` |
| Araz | Prefix Sum | `araz_prefix_sum.c` |
Poets → Trees / Advanced DS
| Poet | Structure |
| -------------- | -------------------------- |
| Nizami Ganjavi | Trees / Balanced trees |
| Fuzuli | Recursion-heavy algorithms |
Ancient Cities → Sub-projects
| City | Subproject |
| ------ | ----------------------------- |
| Gabala | Graph algorithms |
| Sheki | Sorting algorithms collection |
This gives the repo an identity, a story, and a unique flavour compared to generic CS101 repositories.
Project Structure
fundamenta-c/
│
├── src/
│ ├── absheron_array/
│ │ ├── absheron_array.c
│ │ └── absheron_array.h
│ │
│ ├── gobustan_deque/
│ │ ├── gobustan_deque.c
│ │ └── gobustan_deque.h
│ │
│ ├── shirvan_queue/
│ │ ├── shirvan_queue.c
│ │ └── shirvan_queue.h
│ │
│ ├── kura_sliding_window/
│ │ ├── kura_sliding_window.c
│ │ └── kura_sliding_window.h
│ │
│ └── ...
│
├── README.md
└── .gitignore
Documentation (Wiki)
The GitHub Wiki expands each structure into its own section:
Theory — what the structure is, complexity, diagrams
Implementation Notes — C-specific reasoning
Exercises — practice questions
Cultural Page — short history of the region/poet/river
This helps you learn both computer science and culture in one unified repository.
Build & Run Requirements
GCC or Clang
CMake 3.25+
CLion (optional, recommended)
Unix-like environment preferred (Linux, macOS)
Build
mkdir build
cd build
cmake ..
make
./fundamenta_c
Learning Approach
Each module will follow a consistent pattern:
Write theory notes in the Wiki
Create diagrams in Miro / Excalidraw
Implement the structure (header + source)
Write tests / examples
Benchmark or visualize performance
This builds deep skill in low-level reasoning.
Why This Project Matters
This repository becomes the foundation of your:
Systems programming knowledge
SRE interview preparation
Low-level C skills
Portfolio demonstrations
Personal educational framework