Courses - donpayne/project-possible GitHub Wiki
Harvard Courses on www.edx.org
- Harvard University: CS50's Introduction to Computer Science
- Harvard University: CS50's Introduction to Programming with Python
- Harvard University: CS50's Introduction to Artificial Intelligence with Python
Harvard CS50 Lectures 2020
You may wan to set the playback speed a bit slower. He speaks very fast.
Lecture 0 - Scratch
- 00:00:00 - Introduction
- 00:00:49 - Representation
- 00:07:43 - Binary
- 00:21:33 - ASCII
- 00:31:14 - Unicode
- 00:33:29 - RGB
- 00:41:54 - Algorithms
- 00:43:21 - Finding David
- 00:49:15 - Solving Problems Efficiently
- 00:54:29 - Pseudocode
- 01:00:23 - Scratch
- 01:03:05 - Hello, World
- 01:04:12 - Variables
- 01:10:10 - Text to Speech
- 01:11:17 - Sounds
- 01:12:59 - Loops
- 01:15:38 - Pen
- 01:16:18 - Conditions
- 01:19:08 - Variables
- 01:20:53 - Animation
- 01:24:30 - Sensing
- 01:26:58 - Video Motion
- 01:27:56 - Broadcasts
- 01:29:30 - Translation
- 01:31:03 - Custom Blocks
- 01:35:15 - Gingerbread Tale
- 01:36:32 - Oscartime
- 01:38:21 - Raining Men
Lecture 1 - C
- 00:00:00 - Introduction
- 00:00:49 - CS50 IDE
- 00:07:42 - hello, world
- 00:11:00 - Compiling
- 00:15:02 - Functions
- 00:18:38 - Return Values
- 00:19:03 - Variables
- 00:24:31 - Format Codes
- 00:28:29 - CS50 Library
- 00:36:03 - main
- 00:37:10 - Header Files
- 00:39:12 - help50
- 00:44:36 - Style
- 00:46:00 - style50
- 00:48:38 - check50
- 00:51:51 - CS50 IDE's File Browser
- 00:54:28 - CS50 IDE's Command-Line Interface
- 01:03:33 - Types
- 01:05:59 - Format Codes
- 01:06:52 - Operators
- 01:07:44 - addition
- 01:12:53 - Integer Overflow
- 01:18:16 - truncation
- 01:19:08 - Typecasting
- 01:25:29 - Syntactic Sugar
- 01:27:54 - Conditions
- 01:33:46 - agree
- 01:37:00 - Boolean Expressions
- 01:38:35 - Loops
- 01:54:48 - get_positive_int
- 01:58:59 - Scope
- 02:00:39 - Mario
- 02:08:31 - Floating-Point Imprecision
- 02:12:18 - Integer Overflow
Lecture 2 - Arrays
- 00:00:00 - Introduction
- 00:00:49 - clang
- 00:10:08 - Compiling
- 00:22:51 - Debugging
- 00:25:06 - printf
- 00:30:45 - debug50
- 00:47:55 - Duck Debugging
- 00:50:08 - Memory
- 00:56:09 - scores
- 01:03:45 - Arrays
- 01:25:39 - ASCII
- 01:29:28 - Strings
- 01:43:25 - strlen
- 01:47:54 - Arrays of Strings
- 01:51:56 - toupper
- 02:00:41 - manual.cs50.io
- 02:01:32 - Command-Line Arguments
- 02:10:43 - Exit Status
- 02:14:46 - Readability
- 02:16:27 - Cryptography
Lecture 3 - Algorithms
- 00:00:00 - Introduction
- 00:00:49 - ddb
- 00:02:53 - Arrays
- 00:05:08 - Searching
- 00:06:40 - Running Times
- 00:13:02 - Linear Search
- 00:22:57 - Binary Search
- 00:31:44 - numbers
- 00:37:58 - names
- 00:41:00 - strcmp
- 00:51:21 - structs
- 00:55:35 - phonebook
- 01:14:41 - Selection Sort
- 01:36:22 - Bubble Sort
- 01:54:32 - Recursion
- 02:04:22 - Merge Sort
- 02:23:00 - Visualizations
Lecture 4 - Memory
- 00:00:00 - Introduction
- 00:00:49 - Hexadecimal
- 00:07:09 - RGB
- 00:10:35 - Memory
- 00:11:51 - Addresses
- 00:18:08 - Pointers
- 00:30:06 - Strings
- 00:44:22 - compare.c
- 01:00:48 - copy.c
- 01:06:53 - malloc
- 01:16:07 - free
- 01:21:30 - valgrind
- 01:34:18 - Garbage Values
- 01:35:44 - Binky
- 01:38:54 - swap.c
- 01:48:00 - Memory Layout
- 02:02:25 - Stack Overflow
- 02:04:05 - mario.c
- 02:11:03 - Buffer Overflow
- 02:12:18 - scanf
- 02:19:08 - File I/O
- 02:25:04 - Enhance
- 02:32:35 - fread
- 02:36:21 - fwrite
- 02:37:37 - Problem Set 4
Lecture 5 - Data Structures
- 00:00:00 - Introduction
- 00:00:49 - Data Structures
- 00:01:27 - Arrays
- 00:09:25 - Pointers
- 00:10:50 - Linked Lists
- 00:22:36 - Linked List Demo
- 00:43:00 - list.c
- 01:13:43 - Linked List Insertion
- 01:19:39 - Trees
- 01:20:32 - Binary Search Trees
- 01:42:44 - Hash Tables
- 01:47:05 - Hash Functions
- 02:02:53 - Tries
- 02:13:07 - Abstract Data Types
- 02:13:42 - Queues
- 02:18:19 - Stacks
- 02:18:56 - Dictionaries
- 02:23:21 - Jack Learns the Facts
Lecture 6 - Python
- 00:00:00 - Introduction
- 00:00:49 - Python
- 00:04:14 - hello.py
- 00:05:03 - Variables
- 00:08:33 - F-strings
- 00:13:12 - Conditions
- 00:17:28 - Loops
- 00:24:43 - Types
- 00:26:46 - Sequence Types
- 00:29:01 - CS50 Library
- 00:34:39 - blur.py
- 00:40:40 - dictionary.py
- 00:53:44 - Interpreter
- 00:58:21 - range
- 01:02:43 - input
- 01:04:07 - addition.py
- 01:10:12 - division.py
- 01:11:46 - conditions.py
- 01:15:02 - agree.py
- 01:21:13 - meow.py
- 01:28:40 - positive.py
- 01:32:51 - mario.py
- 01:38:43 - Integer Overflow
- 01:41:10 - Floating-Point Imprecision
- 01:41:50 - scores.py
- 01:48:44 - uppercase.py
- 01:51:00 - argv.py
- 01:54:57 - exit.py
- 01:57:41 - numbers.py
- 01:58:49 - names.py
- 02:00:32 - phonebook.py
- 02:04:09 - Dictionaries
- 02:06:57 - swap.py
- 02:08:54 - CSV Files
- 02:13:41 - hogwarts.py
- 02:21:03 - Speech Synthesis
- 02:24:05 - Facial Recognition
- 02:27:50 - QR Codes
- 02:29:45 - Speech Recognition
- 02:36:05 - Deepfakes
Lecture 7 - SQL
- 00:00:00 - Introduction
- 00:00:49 - Data
- 00:01:34 - Spreadsheets
- 00:08:50 - Flat-File Databases
- 00:10:53 - CSV Files
- 00:11:44 - favorites.py
- 00:21:05 - Data Cleaning
- 00:23:06 - sorted
- 00:47:03 - Lambda Functions
- 00:56:49 - Relational Databases
- 00:57:55 - SQLite
- 01:04:54 - SQL
- 01:05:04 - CRUD
- 01:09:17 - SELECT
- 01:12:49 - DISTINCT
- 01:14:55 - LIKE
- 01:17:37 - ORDER BY
- 01:18:49 - GROUP BY
- 01:26:42 - INSERT
- 01:31:44 - UPDATE
- 01:32:36 - DELETE
- 01:33:57 - Relational Data
- 01:37:55 - Data Types
- 01:38:40 - Constraints
- 01:39:46 - PRIMARY KEY
- 01:41:09 - FOREIGN KEY
- 01:42:59 - CS50 Library
- 01:44:35 - Many-to-Many Relationships
- 02:05:00 - IMDb
- 02:12:45 - Indexes
- 02:15:11 - JOINs
- 02:20:34 - SQL Injection
- 02:26:02 - Race Conditions
- 02:32:00 - Race Conditions (Demo)
Lecture 8 - HTML, CSS, JavaScript
- 00:00:00 - Introduction
- 00:00:49 - Internet
- 00:03:59 - Routers
- 00:05:23 - Protocols
- 00:06:19 - TCP/IP
- 00:07:52 - IP Addresses
- 00:10:07 - DNS
- 00:11:54 - TCP
- 00:15:10 - Web Server Demo
- 00:21:44 - The Internet, recap
- 00:24:30 - HTTP
- 00:26:45 - HTTPS
- 00:27:53 - Domain Names
- 00:32:34 - Status Codes
- 00:34:32 - Developer Tools
- 00:42:55 - curl
- 00:45:17 - URL Parameters
- 00:52:35 - HTML
- 01:01:20 - http-server
- 01:05:41 - paragraphs.html
- 01:09:13 - headings.html
- 01:10:44 - list.html
- 01:12:54 - table.html
- 01:14:29 - image.html
- 01:17:00 - link.html
- 01:27:40 - search.html
- 01:34:18 - CSS
- 01:44:17 - Selectors
- 01:45:17 - Classes
- 01:52:35 - IDs
- 01:52:54 - JavaScript
- 02:00:31 - document.querySelector
- 02:06:01 - addEventListener
- 02:11:57 - Anonymous Functions
- 02:16:36 - background.html
- 02:20:18 - Inspect
- 02:21:09 - size.html
- 02:21:39 - blink.html
- 02:24:20 - autocomplete.html
- 02:25:36 - light.py
Security
- 00:00:00 - Introduction
- 00:00:49 - Security
- 00:06:27 - Passcodes
- 00:10:22 - Brute-Force Attacks
- 00:38:48 - Two-Factor Authentication
- 00:41:52 - Password Managers
- 00:45:42 - Encryption
Lecture 9 - Flask
- 00:00:00 - Introduction
- 00:00:49 - Web Servers
- 00:04:26 - Flask
- 00:10:33 - hello
- 00:15:13 - Templates
- 00:25:41 - Forms
- 00:33:33 - GET and POST
- 00:38:26 - Layouts
- 00:48:20 - froshims
- 00:49:59 - Error Checking
- 01:04:45 - Loops
- 01:11:58 - Storing Data
- 01:21:21 - Databases
- 01:37:01 - Sessions
- 01:46:27 - login
- 02:00:07 - store
- 02:09:55 - shows
- 02:25:47 - Ajax
Artificial Intelligence
- 00:00:00 - Introduction
- 00:00:49 - Decision-Making
- 00:06:44 - Decision Trees
- 00:11:16 - Minimax
- 00:20:49 - Depth-Limited Minimax
- 00:22:25 - Search
- 00:23:53 - Depth-First Search
- 00:27:52 - Breadth-First Search
- 00:30:57 - Heuristics
- 00:33:28 - Greedy Best-First Search
- 00:38:23 - A* Search
- 00:45:23 - Reinforcement Learning
- 00:48:22 - Explore vs. Exploit
- 00:50:33 - Reinforcement Learning Demo
- 00:52:33 - Genetic Algorithms
- 00:54:51 - Genetic Algorithms Demo
- 01:01:31 - Genetic Algorithms (continued)
- 01:02:31 - Neural Networks