This repository contains my solutions and projects for Harvard University's CS50x: Introduction to Computer Science course. CS50x is Harvard University's introduction to computer science and the art of programming.
CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include: - Abstraction, algorithms, data structures - Encapsulation, resource management, security - Software engineering, web development - Programming languages: C, Python, SQL, HTML, CSS, JavaScript
c-excercise/
βββ algorithm/ # Algorithm implementations
βββ basic-exercise/ # Fundamental C programming concepts
βββ data-structure/ # Data structures (linked lists, etc.)
βββ memory/ # Memory management and pointers
week-1-C/
βββ credit/ # Credit card number validation
βββ mario/ # Mario pyramid pattern
- Credit: Implements Luhn's algorithm to validate credit card numbers
- Mario: Creates a pyramid pattern using nested loops
week-2-C-array/
βββ readability/ # Coleman-Liau readability index
βββ scrabble/ # Scrabble word scoring
βββ substitution/ # Substitution cipher
- Readability: Calculates reading level using Coleman-Liau formula
- Scrabble: Computes Scrabble scores for words
- Substitution: Implements substitution cipher encryption/decryption
week-3-C-algorithms/
βββ plurality/ # Plurality election system
βββ runoff/ # Runoff election system
βββ sort/ # Sorting algorithm analysis
- Plurality: Simulates a plurality vote election
- Runoff: Implements instant runoff voting system
- Sort: Analyzes different sorting algorithms' performance
week-4-C-memory/
βββ filter/ # Image filtering (blur, edge detection)
βββ recover/ # JPEG recovery from memory card
βββ volume/ # Audio volume adjustment
- Filter: Applies various filters to BMP images
- Recover: Recovers deleted JPEG files from raw data
- Volume: Adjusts audio file volume levels
week-5-C-dsa/
βββ inheritance/ # Genetic inheritance simulation
βββ speller/ # Spell checker with hash tables
- Inheritance: Models genetic inheritance patterns
- Speller: High-performance spell checker using hash tables
week-6-Py/
βββ credit.py # Credit validation (Python version)
βββ hello.py # Hello world
βββ mario.py # Mario pyramid (Python version)
βββ readability.py # Readability index (Python version)
βββ dna/ # DNA sequence analysis
- DNA: Identifies individuals based on STR sequences in DNA
week-7-SQL/
βββ fiftyville/ # SQL detective mystery
βββ movies/ # Movie database queries
βββ songs/ # Music database analysis
- Fiftyville: Solve a mystery using SQL queries
- Movies: Complex database queries on movie data
week-8-Webdev/
βββ examples/ # HTML/CSS/JS examples
βββ homepage/ # Personal homepage
βββ trivia/ # Interactive trivia game
- Homepage: Personal website with HTML, CSS, and JavaScript
- Trivia: Interactive web-based trivia application
week-9-Flask/
βββ birthdays/ # Birthday tracking web app
βββ finance/ # Stock trading simulator
βββ flask1/ # Flask fundamentals
- Birthdays: Web application to track birthdays
- Finance: Stock portfolio management web application
| Week | Language/Technology | Concepts |
|---|---|---|
| 1-5 | C | Pointers, Memory Management, Data Structures |
| 6 | Python | Object-Oriented Programming, Libraries |
| 7 | SQL | Database Design, Complex Queries |
| 8 | HTML/CSS/JS | Web Development, DOM Manipulation |
| 9 | Flask/Python | Web Frameworks, Sessions, APIs |
- GCC compiler for C programs
- Python 3.x
- SQLite3
- Web browser for web projects
- Week 1: C Programming Basics
- Week 2: Arrays in C
- Week 3: Algorithms
- Week 4: Memory Management
- Week 5: Data Structures
- Week 6: Python
- Week 7: SQL
- Week 8: Web Development
- Week 9: Flask
Through this course, I've gained proficiency in: - Problem-solving using computational thinking - Multiple programming paradigms (procedural, object-oriented) - Memory management and pointer manipulation in C - Algorithm analysis and optimization - Database design and complex SQL queries - Full-stack web development with modern technologies - Software engineering best practices
This repository contains my personal solutions to CS50x problem sets. If you're currently taking CS50x, please abide by the course's academic honesty policy and use these solutions only as reference after completing your own work.
This project is for educational purposes. Course materials and problem descriptions are property of Harvard University.
"This was CS50!" - David J. Malan