Skip to content

Organized personal solution for assigments of CS50x by Harvard.edu

License

Kernel236/cs50x

Repository files navigation

CS50x - Introduction to Computer Science

CS50x Language

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.

πŸ“š Course Overview

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

πŸ—‚οΈ Repository Structure

πŸ“ C Programming Exercises

c-excercise/
β”œβ”€β”€ algorithm/          # Algorithm implementations
β”œβ”€β”€ basic-exercise/     # Fundamental C programming concepts
β”œβ”€β”€ data-structure/     # Data structures (linked lists, etc.)
└── memory/            # Memory management and pointers

πŸ“ Week-by-Week Assignments

Week 1 - C Programming Basics

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 - Arrays

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 - Algorithms

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 - Memory

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 - Data Structures

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 - Python

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

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 - Web Development

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

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

πŸ› οΈ Technologies Used

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

πŸš€ Getting Started

Prerequisites

  • GCC compiler for C programs
  • Python 3.x
  • SQLite3
  • Web browser for web projects

πŸ“ˆ Progress

  • 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

🎯 Key Learning Outcomes

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

πŸ“ Academic Integrity

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.

πŸ“œ License

This project is for educational purposes. Course materials and problem descriptions are property of Harvard University.

πŸ”— Links


"This was CS50!" - David J. Malan

About

Organized personal solution for assigments of CS50x by Harvard.edu

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published