Skip to content

mihailkondov/CS50x2024ProblemSetsSolutions

Repository files navigation

CS50x2024ProblemSetsSolutions

These are the solutions to the problem sets from cs50x 2024.
The solutions pass all check50 tests.
My final project is not included here yet.
I enjoyed working on the finance project from week 9 very much, so I created another repository called "finance" to keep developing that app.

Topics by lecture:

  1. Scratch - a graphics-based programming language.
    Binary, ASCII, Unicode, Color, Algorithms, Pseudocode, Artificial Intelligence, Conditionals
  2. C.
    Machine Code, CS50 Library, Format Codes (%i, $d, %s etc.), Types, Conditionals, Variables, Loops, Functions, Scope, Function Composition, Linux, Integer Overflow, Truncation, Type Casting, Floating-Point Imprecision
  3. Arrays
    Compiling, Debugging, Memory, Arrays, Strings, String Length, Command-line Arguments, Exit Status, Cryptography
  4. Algorithms
    Linear Search, Binary Search, Running Time, Structs, Sorting, Selection Sort, Bubble Sort, Recursion, Merge Sort
  5. Memory
    Hexadecimal, Memory, Pointers, Strings, Pointer Arithmetic, String Comparison, Copying, malloc and Valgrind, Garbage Values, Swapping, Overflow, scanf, File I/O
  6. Data Structures
    Stacks and Queues, Resizing Arrays, Linked Lists, Trees, Dictionaries, Hashing and Hash Tables, Tries
  7. Python
    Functions, Types, Conditionals, Compare, Object-Oriented Programming, Loops, Truncation, Exceptions, Lists, Dictionaries, sys, pip
  8. SQL (using sqlite3)
    Flat-file Databases, Relational Databases, Schema, Data Types and Constraints, Primary and Foreign Keys, Querying, Indexes, Python and SQL, Race Conditions, SQL injection attacks
  9. HTML, CSS, JavaScript The Internet, TCP/IP, Ports, DNS, DHCP, HTTP, Inspect, Status Codes, HTML, Regular Expressions, CSS, Bootstrap, JavaScript, Autocomplete, Geolocation
  10. Flask web framework
    Flask, Forms, Templates, Request Methods, SQLite and Python, Cookies and Sessions, Shopping cart, APIs
  • Bonus Lecture: Artificial Intelligence
    Image Generation, ChatGPT, Prompt Engineering, CS50.ai, Generative AI, Descision Trees, Minimax, Machine Learning, Deep Learning, Large Language Models, Hallucinations
  • Bonus Lecture: Cybersecurity
    Passwords, Password Managers, Two-Factor Authentication, Hashing, Cryptography, Passkeys, Encryption, Deletion, Ransomware

Course description

This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50x , CS50, is Harvard's largest course.

Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own schedule.
Description copied from harvard.edu
More information: here