This repository contains my completed work for Harvard's CS50: Introduction to Computer Science course (2022/2023 curriculum). The course covers fundamental concepts in computer science and programming through hands-on problem sets and projects.
CS50 is Harvard University's introduction to computer science and programming, covering topics such as:
- Computational thinking and problem-solving
- Programming languages (C, Python, SQL, JavaScript, CSS, HTML)
- Data structures and algorithms
- Software engineering principles
- Web development
- Database design
- Hello - First C program
- Mario - ASCII art pyramids with loops and conditionals
- Cash - Greedy algorithm for making change
- Credit - Credit card number validation using Luhn's algorithm
- Scrabble (Lab) - Calculate Scrabble word scores
- Caesar - Caesar cipher encryption/decryption
- Readability - Text readability analysis using Coleman-Liau index
- Substitution - Substitution cipher implementation
- Sort (Lab) - Analysis of sorting algorithm performance
- Plurality - Simple voting system
- Runoff - Instant runoff voting system
- Tideman - Advanced ranked-choice voting with Tideman algorithm
- Volume (Lab) - Audio file manipulation
- Filter - Image filtering and manipulation (grayscale, blur, edges, etc.)
- Recover - Digital forensics - recover deleted JPEG files
- Inheritance (Lab) - Genetic inheritance simulation
- Speller - Spell checker using hash tables and tries
- World Cup (Lab) - Tournament simulation
- DNA - DNA sequence analysis for identification
- Sentimental series - Python versions of earlier C programs:
- Cash, Hello, Mario, Readability
- Songs (Lab) - Music database queries
- Movies - Complex SQL queries on movie database
- Fiftyville - SQL-based mystery solving
- Trivia (Lab) - Interactive trivia web application
- Homepage - Personal website with HTML, CSS, and JavaScript
- Birthdays (Lab) - Birthday tracking web app
- Finance - Stock trading simulation web application
- Custom Project - Personal web application demonstrating learned concepts
- C - Low-level programming, memory management, algorithms
- Python - Data analysis, web development, scripting
- SQL - Database queries and design
- HTML/CSS/JavaScript - Web development and user interfaces
- Flask - Python web framework
- SQLite - Database management
Through completing this curriculum, I gained experience in:
- Problem decomposition and algorithmic thinking
- Multiple programming paradigms and languages
- Data structures implementation and analysis
- Memory management and optimization
- Web development full-stack principles
- Database design and SQL proficiency
- Software engineering best practices
This repository represents my complete journey through Harvard's CS50 course, demonstrating progression from basic programming concepts to complex web applications and data analysis.
Course: CS50 - Introduction to Computer Science
Institution: Harvard University
Academic Year: 2022/2023