This repository contains my solutions, implementations, and study notes from Harvard University's CS50 course.
Throughout the course, I learned fundamental computer science concepts including C programming, memory management, algorithms, and data structures by solving hands-on programming problems and implementing core data structures from scratch.
- C Programming Fundamentals — variables, conditions, loops, and command-line arguments with zero abstraction between you and the machine
- Memory & Pointer Manipulation — addresses, dynamic allocation, file copying, and string internals, managed by hand
- Algorithm Design & Analysis — Big-O reasoning, linear/binary search, sorting, and recursion
- Data Structure Implementations — linked lists, queues, priority queues, hash tables, and BSTs built from raw structs and malloc
- Problem-Solving Exercises — official CS50 problem sets, solved and organized per lecture
- Lecture Notes & Experiments — annotated experiments from each module
Lecture 1: C Fundamentals (variables, conditions, loops)
↓
Lecture 2: Memory & Strings (arrays, pointers, CLI args, encryption)
↓
Lecture 3: Algorithms (Big-O, search, sorting, recursion)
↓
Lecture 4: Memory Management (addresses, dynamic memory, file I/O)
↓
Lecture 5: Data Structures (linked list, queue, hash table, BST)
↓
Next: Merge Sort, Trie (roadmap)
CS50/
├── lecture1/ # C fundamentals
├── lecture2/ # Memory & strings
├── lecture3/ # Algorithms
├── lecture4/ # Memory management
├── lecture5/ # Data structures
├── Makefile # Build configuration
└── README.md
| Pattern | Description |
|---|---|
| Linked List | Sequential node chaining with pointer traversal |
| Queue | FIFO processing |
| Priority Queue | Ordered extraction by priority |
| Hash Table | Key hashing with collision handling |
| Binary Search Tree | Ordered hierarchy, O(log n) lookup |
| Trie | Prefix tree — on the roadmap |
Copy any of these battle-tested classics into your own study plan:
Lecture 1
Mario Pyramid · Cash (Greedy Algorithm) · Credit Card Validation
Lecture 2
Scrabble · Substitution Cipher
Lecture 3
Plurality Election · Runoff Election · Searching & Sorting Algorithms
- Variables
- Conditions
- Loops
- Arrays
- Strings
- Pointers
- Command Line Arguments
- Encryption
-
Big-O Analysis
-
Linear Search
-
Binary Search
-
Sorting Algorithms
-
Recursion
-
To dos: Merge Sort
- Memory Addresses
- Pointers
- Dynamic Memory
- File Copy
- String Manipulation
- Linked List
- Queue
- Priority Queue
- Hash Table
- Binary Search Tree
- C
- GCC
- Makefile
- CS50 Library
git clone https://github.com/the-sleepless-coder/CS50.git
cd CS50Trigger a build with prompts like:
make filename # compile a program
./filename # run it