Introduction to Computer Science
Prof. David J. MalanHarvard's flagship introduction to algorithmic thinking and systems programming: C pointers and memory layout, data structures, Asymptotic complexity, Python, SQL relational schemas, and web security.
Syllabus
12CS50x 2024 - Lecture 0 - Scratch
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
CS50x 2024 - Lecture 1 - C
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
CS50x 2024 - Lecture 2 - Arrays
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
CS50x 2024 - Lecture 3 - Algorithms
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
CS50x 2024 - Lecture 4 - Memory
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
CS50x 2024 - Lecture 5 - Data Structures
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
CS50x 2024 - Lecture 6 - Python
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
Artificial Intelligence (CS50)
This lecture introduces the foundational concepts of artificial intelligence, covering topics such as image generation, prompt engineering, decision trees, minimax algorithms, and an overview of machine learning and deep learning, including large language models.
Lecture 7: SQL (CS50)
This lecture explores database management, differentiating between flat-file and relational databases. It delves into SQL schema design, data types, constraints, primary/foreign keys, querying techniques, and addresses database security vulnerabilities like SQL injection.
Lecture 8: HTML, CSS, JavaScript (CS50)
This lecture introduces core web technologies, covering the fundamentals of the Internet, TCP/IP, DNS, and HTTP protocols. It then progresses to the practical application of HTML for structure, CSS for styling, and JavaScript for dynamic web content.
Lecture 9: Flask (CS50)
This lecture focuses on web development using the Flask microframework, demonstrating how to handle forms, utilize templates, manage request methods, and integrate SQLite databases. It also explores concepts such as cookies, sessions, and APIs.
Cybersecurity (CS50)
This lecture explores fundamental cybersecurity principles, covering robust password practices, the utility of password managers and two-factor authentication. It also delves into hashing, cryptography, encryption methods, and the risks posed by ransomware.











