Harvard CS50 (2023) – Full Computer Science University Course
Learn the basics of computer science from Harvard University. This is CS50, an introduction to the intellectual enterprises of computer science and the art of programming. The course is taught live every year and this is the 2023 version.
💻 Slides, source code, and more at https://cs50.harvard.edu/x.
⭐️ Course Contents ⭐️
⌨️ (00:00:00) Lecture 0 – Scratch
⌨️ (02:05:47) Lecture 1 – C
⌨️ (04:35:19) Lecture 2 – Arrays
⌨️ (06:59:38) Lecture 3 – Algorithms
⌨️ (09:01:13) Lecture 4 – Memory
⌨️ (11:26:33) Lecture 5 – Data Structures
⌨️ (13:42:44) Lecture 6 – Python
⌨️ (15:58:02) Lecture 7 – SQL
⌨️ (18:18:30) Lecture 8 – HTML, CSS, JavaScript
⌨️ (20:58:14) Lecture 9 – Flask
⌨️ (23:19:07) Lecture 10 – Emoji
⌨️ (25:05:28) Cybersecurity
—
HOW TO JOIN CS50 COMMUNITIES
Discord: https://discord.gg/cs50
Ed: https://cs50.harvard.edu/x/ed
Facebook Group: https://www.facebook.com/groups/cs50/
Faceboook Page: https://www.facebook.com/cs50/
GitHub: https://github.com/cs50
Gitter: https://gitter.im/cs50/x
Instagram: https://instagram.com/cs50
LinkedIn Group: https://www.linkedin.com/groups/7437240/
LinkedIn Page: https://www.linkedin.com/school/cs50/
Medium: https://cs50.medium.com/
Quora: https://www.quora.com/topic/CS50
Reddit: https://www.reddit.com/r/cs50/
Slack: https://cs50.edx.org/slack
Snapchat: https://www.snapchat.com/add/cs50
SoundCloud: https://soundcloud.com/cs50
Stack Exchange: https://cs50.stackexchange.com/
TikTok: https://www.tiktok.com/@cs50
Twitter: https://twitter.com/cs50
YouTube: https://www.youtube.com/cs50
HOW TO FOLLOW DAVID J. MALAN
Facebook: https://www.facebook.com/dmalan
GitHub: https://github.com/dmalan
Instagram: https://www.instagram.com/davidjmalan/
LinkedIn: https://www.linkedin.com/in/malan/
TikTok: https://www.tiktok.com/@davidjmalan
Twitter: https://twitter.com/davidjmalan
LICENSE
CC BY-NC-SA 4.0
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License
https://creativecommons.org/licenses/by-nc-sa/4.0/
🎉 Thanks to our Champion and Sponsor supporters:
👾 davthecoder
👾 jedi-or-sith
👾 南宮千影
👾 Agustín Kussrow
👾 Nattira Maneerat
👾 Heather Wcislo
👾 Serhiy Kalinets
👾 Justin Hual
👾 Otis Morgan
👾 Oscar Rahnama
—
Learn to code for free and get a developer job: https://www.freecodecamp.org
Read hundreds of articles on programming: https://freecodecamp.org/news
by freeCodeCamp.org
linux foundation
how to use cs50 library locally i tried different tutorials as well as followed different documents
but none worked
excellent… inspirational… heartwarming… amazing… intelligent… best CS lecture in history
49:43
best teacher ever…David Malan Sir!!!
wish I watched this course in my 10th Grade or before
7:33:55
The man is the Teacher 😮🎉❤
hey sleepy Joe, thanks for the loud crying emoji
I think David has spoken more words in this long course than I have in all my life. It's really a great lecture though and I feel like it helps me a lot to understand coding and computer science which I am grateful for.
Day one 3:00:00
Day two 4:14:04
// copied this comment for it to appear on top. Thanks to @jaimediez
Key Takeaways for quick navigation:
00:00 Introduction to the CS50 course and Dr. David Malan's background
07:12 Transition to the C programming language in Week One
18:09 Exploring Different Number Systems
24:29 Introducing Volunteers to Represent Bits
31:10 Bits and Bytes in Computer Memory
36:01 Decoding Text Messages Using ASCII
43:59 Representation of Emojis and Skin Tones in Unicode
46:04 Efficient Design in Unicode for Complex Emoji Representations
01:17:00 Scratch Interface and Basics
01:25:20 Exploring Scratch Features
01:39:04 Interactive Programming with Video Sensing
Introduction to using Scratch for programming.
Creating a program with synthesized speech.
Explaining the concept of functions in programming.
Implementing conditional behavior in Scratch.
01:53:18 Iterative Development in Scratch
01:57:46 Introduction to Programming Paradigm
02:03:54 More Complex Game Elements
02:08:11 Evaluating Code Quality
02:14:56 Structure of a Code Editor
02:25:12 Transition from Scratch to C
03:02:01 Simplifying Conditional Logic
03:07:08 Exploring the structure of C code.*
03:09:30 Handling multiple conditions using "else if."*
03:10:28 Handling a catch-all condition.*
03:11:36 Recap and review of C code.*
03:14:09 Code optimization by eliminating redundancy.*
03:14:25 Recap of coding concepts.*
03:14:34 Addressing questions and clarifications.*
03:50:56 Break and Introduction to Mario ASCII Art
03:53:54 Printing a Column of Bricks
03:55:18 Printing a 3×3 Grid of Bricks
03:56:01 Discussing the idea of printing rows of bricks in a grid format.
04:14:29 Creating Functions with Inputs
04:49:23 Troubleshooting an error with get_string function,
05:21:57 Debugging with Breakpoints
05:22:25 Debugging in CS50,
05:26:46 Rubber Duck Debugging,
05:55:23 Introduction to arrays and for loops
06:15:15 Manipulating Strings in C
06:30:50 Introduction to converting characters to uppercase in C
06:35:12 Leveraging the ctype.h library for character manipulation
06:42:34 Command-line arguments in C programs
06:48:22 More fun with command-line arguments: Changing the "cow" to a "duck"
06:49:21 Exit Status and Error Codes
06:50:29 The Role of "int" in "main"
07:24 Understanding Algorithm Efficiency
07:41:42 Introduction to creating a phone book in C
07:43:33 Introducing the concept of a custom data type
07:59:00 Sorting Algorithms Introduction
08:08:00 Bubble Sort
08:18:10 Bubble Sort Analysis
08:27:04 Recursion and Recursive Functions
08:57:04 Time Complexity of Merge Sort
09:07:51 Introduction to Hexadecimal and Base 16
09:10:19 Understanding Hexadecimal Representation
09:19:54 Getting the Address of a Variable
09:44:01 Introduction to Data Types and Strings in C
10:03:55 Harnessing Pointer Arithmetic with Strings
10:17:37 Exploring string manipulation
10:19:27 Copying strings and memory allocation
10:47:25 Handling Garbage Values
11:09:12 Swapping values using pointers in C,
11:13:00 Memory limitations and potential issues in C,
11:27:18 Importance of Data Structures
12:24:03 Adding Elements to Linked List
12:34:00 Explanation of implementing a stack using linked lists,
12:44:00 Iterating over the linked list,
12:51:00 In this section, the main focus is on understanding the running time of various operations in linked lists.
12:56:00 This section introduces the concept of binary search trees (BSTs) as a way to achieve both binary search and dynamism.
13:12:24 Balanced binary search trees and algorithm complexity
13:18:06 Hashing and hash functions
13:24:38 Understanding Hash Tables and Memory Usage
13:41:41 Introduction to Python
13:56:53 Data Types in Python
13:59:54 Implementing Spell Checker in Python
14:11:12 Face Recognition in Python
14:19:13 Variable manipulation and loops in Python
14:26:53 No need for a main function in Python
14:33:41 Integer overflow and big numbers in Python
15:11:18 Python Printing Techniques
15:26:12 Python: Accessing Command Line Arguments
15:41:10 Introduction to Python Dictionaries and Their Use Cases
15:43:28 Swapping Values in Python
15:47:12 Working with CSV Files in Python
15:54:27 Text-to-Speech Synthesis in Python
15:57:36 Conclusion and Introduction to SQL
16:19:33 Improved Language Counting
16:26:29 Sorting Data
16:30:13 Interactive User Input
16:34:40 Introduction to Relational Databases
16:36:06 Basic SQL Operations
16:51:30 Introduction to SQL in Python
17:08:10 Database Design Considerations
17:11:42 Primary Keys and Foreign Keys
17:26:27 Querying Relationships
17:32:59 Joining Multiple Tables
17:43:37 Fuzzy Matching in SQL
17:45:03 Creating a database index for faster searches
18:01:29 Introduction to the use of placeholders in SQL queries
18:05:13 Preventing SQL injection attacks
18:22:31 Understanding the Basics of TCP/IP
18:44:25 HTTP as an Application-Level Protocol
18:54:06 Viewing HTTP Request Headers
19:05:27 Prank at Harvard-Yale Football Game
19:10:45 Introduction to HTML and Web Technologies
19:14:39 Running a Web Server with http-server
19:15:36 Accessing the Hosted Website
19:16:46 Understanding URL Structure
19:17:39 HTML Tag Hierarchy
19:21:48 HTML Elements and Hierarchy
19:31:07 Introduction to HTML Tags
19:32:29 Creating Lists in HTML
19:47:43 HTML Meta Tags
20:22:12 Introduction to JavaScript
20:23:35 JavaScript Variables
20:25:14 JavaScript in Web Development
20:25:56 Client-Side JavaScript
20:27:07 HTML Form Creation
20:29:56 Optimizing JavaScript Code
20:45:47 Dynamic table sorting with JavaScript
20:49:10 Changing background color with JavaScript
21:02:19 Folder Structure for Web Applications
21:17:15 Handling user input via URL parameters:
21:35 Using Templates and Layouts
21:48 Flask Web Development Basics
22:03 Template Layouts in Flask
22:07:18 Storing user registration data in a dictionary
22:10:18 Displaying user registrations on a webpage
22:34:55 Displaying Registered Users
23:36:23 Overview of Computer Science Course
23:51:38 Preparing for Post-CS50
23:55:51 Introduction to Review Session
23:56:19 Python "Hello World" Question
23:57:05 DNS (Domain Name System) Question
23:58:00 Merge Sort Runtime Question
23:59:08 ARG C in C Programming Question
24:00:19 File Opening Function in C Question
24:08:45 Valid Way to Print Exclamation Point Question
24:10:23 Compiling Steps Question
24:11:02 Surprise at the Beginning of the Halloween Lecture Question
24:13:20 Unicode and Emoji Introduction
24:14:28 Representation of Japanese Foods in Emoji
24:16:06 Universal Appeal of Dumplings Discussion
24:17:00 Introduction to Jennifer 8 Lee's Talk
24:20:33 Evolution of Emoji Discussion
24:22:13 Unicode Consortium and Emoji
24:25:20 Representation of Food in Emoji
24:27:17 Importance of Inclusivity in Emoji
24:37:32 Introduction to the Next Section
24:39:20 Memory Hierarchy
24:40:25 Storage Devices
24:41:31 CPU Clock Speed
24:45:15 System Architecture Quiz
24:48:33 Algorithm Efficiency
24:56:00 Recommended Books
24:57:52 Farewell and Good Luck
23:58:00 Merge Sort Algorithm Analysis
24:00:19 The Duck Debugger
24:03:00 How Strings Length is Computed in C
24:10:09 Arrow Operator in C
24:12:54 Missing Dumpling Emoji
24:16:21 Involvement with Unicode Consortium
24:29:02 Encoding Characters and Code Points
24:33:07 Depiction of Race and Nationality in Emoji
24:33:35 Evolution of Emoji Design
24:36:30 Contributions to Emoji
24:53:46 Emoji Directionality
24:55:36 Future of Emojis
25:03:07 Course Conclusion
25:09:54 Password Choices
25:10:23 Password Security
25:12:26 Cracking a 4-Digit Passcode
25:28:22 Lockout Mechanism
Completed 25% of Week 7 SQL
This is really awesome. I am using Chat GPT to dig deeper or get stuff that I missed.
One more video before bed
The vide:
3:21:00
Sir mera bas placment ho jaee meri mumma bahut khush hogi and good wishes degi apko
He is magician… i want to be a teacher like him… Amazing
Yeah the quality of education is actually drastic between a normal quickie uni and an ivy uni
I have never taken a programming language or class before and i plan to study CS in college, can i watch this video?
I can tell you where he got this video
can someone tell me how long is this video
Day 2: 1:45:00
I don't know why but his dangling wristband is giving some creepy vibes.
Yooo, thought Harvard will speak about CS GO, but here some IT things
08:10:35 nnnn yeah 😂😂😂😂
Doctor: You have 24 hours to live.
Me:
I thought that was Big Johnny Cox
Day 1 41:20