A repository of simple mini projects to solidify fundamentals in different programming languages... for the purpose of making sure I am comfortable leetcoding in my languages.
- Concepts: printing, variables, data types, comments
- Project: Print “Hello, World”, then create and print different types of variables (string, int, float, bool).
- Why: Learn syntax basics, variable declarations, and output.
- Concepts: loops, conditionals, modulo, printing
- Project: Print numbers 1–100 with "Fizz" if divisible by 3, "Buzz" by 5, and "FizzBuzz" by both.
- Why: Practice logic, control flow, and common LeetCode-style patterns.
- Concepts: input/output, arithmetic, functions
- Project: Convert between Celsius and Fahrenheit with user input.
- Why: Gets you working with user interaction and reusable code.
- Concepts: user input, functions, switch/case or
if-else, error handling - Project: A calculator that supports +, -, *, /
- Why: Introduces input validation and combining functions with control flow.
- Concepts: lists/arrays, dictionaries/maps, iteration
- Project: Store students’ names and grades, calculate averages, print results.
- Why: You’ll practice data structures and traversing them.
- Concepts: CRUD (Create, Read, Update, Delete), loops, input, lists
- Project: Create a todo list where you can add, delete, mark done.
- Why: Teaches state management and simulates how apps store and modify data.
- Concepts: strings, functions, logic, length checking,
any()/regex - Project: User enters a password; you return if it's weak, medium, strong.
- Why: Prepares you for string manipulation problems in LeetCode.
- Concepts: random number generation, loops, input, comparison
- Project: User tries to guess a number until correct, get hints like “too high/low”.
- Why: Engaging and practices loops + conditionals + randomness.
- Concepts: file I/O, strings, exception handling
- Project: Read a text file and print the number of lines, words, characters.
- Why: Intro to file manipulation — useful for input-heavy coding problems.
- Concepts: system libraries, time/delay functions, loops
- Project: Create a timer that runs for X seconds or a stopwatch that tracks time.
- Why: Teaches interaction with built-in libraries, great for async understanding later.
- Project: Implement 3 classic problems:
- Reverse a string
- Find max in array
- Check if a number is prime
Implement the following:
- Dyanmic array - resizing
- Singly linked list - insertion at head/ tail, delete, reverse 2a. Doubly linked list
- Stack - push(), pop(), peek(), isEmpty()
- Queue - enqueue(), dequeue(), peek(), isEmpty()
- Deque - double-ended queue
- hash map/ hash table
- handle collisions (chaining/ open addressing)
- operations: insert, search, delete
- load factor and resizing
- Hash set - using a hashmap (key only)
- Binary tree - preorder, inorder, postorder traversals (recursively and iteratively)
- BST - insert, search, delete, inorder traversal returns sorted vals
- Heap (min and max) - using array; insert, remove (heapify up/down)
- Trie (prefi tree) insert, search, startsWith
- Graph (adjacency list)
14a. Graph traversals
- DFS (recursive + iterative)
- BFS (queue)
Each project builds familiarity in the following
- Variables + Conditionals
- Loops
- Functions
- Data Structures
- File I/O & Libraries
project ideas designed with assistance from ChatGPT