OPERATING SYSTEMSOS Linux

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

source

by freeCodeCamp.org

linux foundation

27 thoughts on “Harvard CS50 (2023) – Full Computer Science University Course

  • 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

  • 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.

  • // 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

  • This is really awesome. I am using Chat GPT to dig deeper or get stuff that I missed.

  • Sir mera bas placment ho jaee meri mumma bahut khush hogi and good wishes degi apko

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

Comments are closed.