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