Skip to content

ddylvianen/CS50

Repository files navigation

CS50 2022/2023 Curriculum - Completed Projects

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.

📚 Course Overview

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

🗂️ Project Structure

Week 1 - C Programming Fundamentals

  • 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

Week 2 - Arrays and Strings

  • Scrabble (Lab) - Calculate Scrabble word scores
  • Caesar - Caesar cipher encryption/decryption
  • Readability - Text readability analysis using Coleman-Liau index
  • Substitution - Substitution cipher implementation

Week 3 - Algorithms and Sorting

  • Sort (Lab) - Analysis of sorting algorithm performance
  • Plurality - Simple voting system
  • Runoff - Instant runoff voting system
  • Tideman - Advanced ranked-choice voting with Tideman algorithm

Week 4 - Memory Management

  • Volume (Lab) - Audio file manipulation
  • Filter - Image filtering and manipulation (grayscale, blur, edges, etc.)
  • Recover - Digital forensics - recover deleted JPEG files

Week 5 - Data Structures

  • Inheritance (Lab) - Genetic inheritance simulation
  • Speller - Spell checker using hash tables and tries

Week 6 - Python Programming

  • World Cup (Lab) - Tournament simulation
  • DNA - DNA sequence analysis for identification
  • Sentimental series - Python versions of earlier C programs:
    • Cash, Hello, Mario, Readability

Week 7 - SQL and Databases

  • Songs (Lab) - Music database queries
  • Movies - Complex SQL queries on movie database
  • Fiftyville - SQL-based mystery solving

Week 8 - Web Development (HTML, CSS, JavaScript)

  • Trivia (Lab) - Interactive trivia web application
  • Homepage - Personal website with HTML, CSS, and JavaScript

Week 9 - Flask Web Applications

  • Birthdays (Lab) - Birthday tracking web app
  • Finance - Stock trading simulation web application

Final Project

  • Custom Project - Personal web application demonstrating learned concepts

🛠️ Technologies Used

  • 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

📋 Learning Outcomes

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

🎓 Course Completion

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

About

Projects from Harvard’s CS50 course

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published