those students worked their ass off to get into Harvard and their parents paid a ton of money. make no mistake. this is marketing for Harvard university.
@@raav2878 "While it may seem a bit harsh, it is undeniably true. Nonetheless, the effort and money invested were well spent. The mere difficulty or expense of something does not always guarantee the highest quality."
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 3x3 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
The light bulbs on the edge of the stage spell a different word in binary for each class. I've never loved a class more. David makes learning effortless.
One day! Only the passionate like this teacher hopped right on it. This man is literally running a marathon teaching his passion; be passionate like him then it won't just be "one day"
Got laid off of my construction job after working 50-60 hours a week faithfully. Now I’m going to lock down for the next year and learn the basics of coding to ultimately get a tech job. Today is day 1. Let’s go 🙏🏾
5:00:11 Compiling converts C code into assembly code. 5:01:53 AMD CPUs understand Assembly Language for efficient code execution 5:05:45 The code is stored on a virtual hard drive in the cloud. 5:07:54 The purpose of a library is to make it easier to use and reuse code that's already been written. 5:11:53 Code compiled into zeros and ones is not necessarily predictable, making decompiling challenging. 5:13:34 Debugging code is a lifelong skill and there are tools and techniques available to make it easier. 5:16:57 Debugging using printf statements 5:18:42 Using printf as a diagnostic tool in programming 5:22:09 Using breakpoints in debug mode to step through code 5:23:56 The debugger in CS50 shows variables and allows stepping through code 5:27:18 Using a panel to display changing values instead of print statement 5:29:07 The cs50 library prompts the user for a negative integer and stores the value in n. 5:32:52 Exploring the behavior of a 'do-while' loop in the program. 5:34:38 Using a debugger can help in finding bugs in code 5:38:11 Data types represent different types of data with a specific number of bits allocated to them. 5:39:58 Data in computers is represented using bits and bytes. 5:43:27 Memory in a computer is like a canvas for storing information in units of bytes or 8 bits. 5:45:11 Computing the average of three values using C 5:48:42 The video discusses the concept of memory and storing data. 5:50:33 Declare an array in C to store three integer values 5:54:26 Using loops to avoid repetitive code and improve code design. 5:56:21 Memory in computers is contiguous, and arrays can be passed as arguments in code. 5:59:58 Declare a constant variable to avoid hardcoding and easily reuse values. 6:02:01 Taking the average of a variable number of scores using a loop. 6:06:01 In C, you must remember the length of an array yourself. 6:07:58 In C, you cannot determine the size of an array when it is passed into a function. 6:11:31 A string is just an array of characters in memory. 6:13:24 Strings in memory take up one more byte than the characters typed by the programmer 6:17:12 Understanding operations on strings in computer science. 6:19:12 Strings in C are treated differently and have special implementations 6:22:59 Manipulating strings in arrays using new syntax 6:25:11 Calculate the length of a string in C 6:28:54 Introduce string manipulation and library functions in C 6:30:56 Iterate through each character in a given string, check if it is lowercase, and convert it to uppercase. 6:34:53 Using libraries in programming to solve common problems efficiently 6:36:42 Implement a program that's correct but better designed with fewer lines of code and lower probability of mistakes. 6:40:40 Introducing command-line arguments in the program 6:42:40 argc stands for argument count and is used to determine the length of the array of words typed at the prompt. 6:46:44 Command line arguments are used to modify the behavior of a program. 6:48:34 Command line arguments and exit status in coding 6:52:22 You can use the command 'Echo $?' to see the exit status of your program. 6:54:17 Cryptography is the art and science of encrypting information. 6:57:50 Encryption and decryption process explained 7:01:19 Efficiency of algorithms and its impact on solving problems 7:04:40 Searching algorithms and memory storage in computers 7:06:20 Executing the linear search algorithm to find the hidden 50 in the lockers 7:10:26 Using bracket notation, Jackson can treat the set of lockers as an array 7:12:06 Using binary search algorithm to find a number in an array 7:15:44 Divide and conquer approach for searching in an array 7:17:30 Binary search is more efficient than linear search 7:20:54 Algorithms perform similarly for large input sizes 7:22:39 Linear search has a time complexity of O(n) and binary search has a time complexity of O(log n). 7:26:21 Big O, Omega, and Theta allow computer scientists to analyze algorithm efficiency. 7:28:04 Translate the discussed ideas to actual code using arrays 7:31:50 Implementation of linear search in C using an array of numbers. 7:33:44 String comparison in C requires using a function called strcmp instead of == operator. 7:37:50 Avoid touching memory that shouldn't be accessed 7:39:40 Returning zero in main signifies code execution is successful 7:43:25 Using a 2D array to store names and numbers is a cleaner approach than combining them into the same array. 7:45:20 Code successfully searches for phone numbers in a phone book. 7:49:16 Defining a new data type called person using struct keyword 7:51:08 Creating a structure to store person's information 7:54:51 Read and update information dynamically from a file 7:56:50 C cannot set default values in struct, unlike more modern languages like Python and Java. 8:00:49 Sorting volunteers using selection sort algorithm 8:02:34 Using selection sort to sort a list of numbers 8:05:56 Bubble sort is a different approach to sorting that focuses on smaller problems. 8:07:34 Bubble sort algorithm to solve sorting problems 8:11:25 Counting the number of comparisons is a global unit of measure to analyze algorithms. 8:13:14 Number of comparisons to find the smallest element decreases by 1 for each iteration. 8:16:57 Selection sort takes N^2 steps in worst case and N^2 steps in best case 8:18:52 Iterate through the array from 0 to n minus 2 to avoid going beyond array boundaries. 8:22:30 Bubble sort has a short-circuit detail helpful for already sorted data 8:24:27 Sorting algorithms like selection sort and bubble sort have a redundant comparison process that results in slow performance for large numbers 8:28:14 Recursion allows calling a function on a smaller version of the problem until no more problems to solve. 8:30:05 Recursive search algorithm for a phone book 8:33:52 Implementing a pyramid drawing function using recursion. 8:35:49 Creating a pyramid recursively 8:39:33 The base case is important to prevent the code from running forever. 8:41:20 Recursion can be used with return values. 8:45:07 Merging two sorted halves 8:46:51 Merge sort requires additional memory for implementation 8:50:24 Sorting the left half and right half of the original input separately 8:52:19 Merging and sorting the left and right halves of the given list 8:56:09 The running time of merge sort is O(n log n) and it is better than bubble sort and selection sort. 8:57:56 Merge sort is generally preferred for sorting as it is faster. 9:03:45 Understanding computer memory helps in representing and creating interesting things 9:05:26 RGB color system: Red, Green, Blue 9:08:59 Hexadecimal is a base-16 system used to represent numbers beyond 0-9. 9:10:53 Heximal (hexadecimal) is a number system that uses 16 symbols to count. It is useful for various applications. 9:14:48 Hexadecimal is a base system used in computers to represent information. 9:16:35 Hexadecimal is commonly used to describe memory locations in computer systems and software. 9:20:11 Conceptually, the programmer knows that the number 50 is assigned to the symbol n in the computer's memory. 9:21:51 C language has operators to get the address of a variable and go to a specific address in memory. 9:25:30 A pointer is a variable that contains the address of a value. 9:27:23 The video explains the concept of pointers in C programming. 9:30:59 The code assigns the value of 'n' to variable 'p' using the address of 'n'. 9:32:42 Pointers are variables that point to something else 9:36:19 Arrays and pointers have a relationship, but are technically different. 9:38:07 Strings in programming are special as they store multiple characters and have a null character at the end. 9:41:42 String in C is actually a Char star 9:43:30 Defining data types in C using type def 9:47:13 Pointers in C are declared using the star symbol and can be dereferenced using the star symbol. 9:49:00 Printing the address of a string using the %p format specifier 9:52:40 The 'percent s' is used in printf to print the characters in a string. 9:54:39 The video discusses the concept of addresses in C programming. 9:58:19 Printing characters from a string using pointers
@@ShmurdaaaA i didn't watch the whole video so i only saw him teaching in C. But if you're asking if C and C# are the same, the answer is no, they're completely different languages. C is more similar to C++
The first 40 minutes have answered so many random questions I’ve asked over the years but never truly answered. Ill probably watch this over and over again
🎯 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 3x3 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*
That reminded me that sometimes the way the teacher does his/her job can considerably impact a student 's life and the way the students see the subject.
The teacher is truly passionate and loves his subject; that impacts a student a lot too! Really impressive what he's taught me in a span of 30min - 1hr
Do y’all not use Adblock? I haven’t seen a UA-cam ad in years. I guess if you watch on a phone it’s harder which I understand. BUT PEOPLE: IF YOU USE UA-cam ON A COMPUTER PLEASE USE ADBLOCK.
That is what makes him obnoxious to me: he never stops and takes a breath. This entire video is worthless. I can’t learn when someone is yelling continuously.
@@thewiseowl8804 Remember that the lecture is meant for Harvard students and not for the general public so of course hes not gonna stop. Its easy to pause and take a break instead of complaining because you cant handle a Harvard course
@@xavierggez Remember that countless unidentifiable uploaders put out tutorials far more substantive and insightful than this guy can, and also that this was uploaded for the general public. Why are you mad that I don’t like his lecturing style?
@@thewiseowl8804 No I just think the energy is necessary in a learning environment. I would love for you to tell me the countless unidentified uploaders that give a lot more substance than a whole course (for my own learning)
I graduated from my undergrad in CS at a uni in the UK back in 2019, decided to watch this since my field of work briefly shifted post uni, but now coming back to software dev thought about checking this out, I'm only 2 hours into this course and it's already miles and miles better than what I went through on my course, almost feels like I wasted money, there were useful bits ofc, but this is just highly engaging and so well structured. So glad this is available for free!!!!
Hmmmm, if you were a Computer Science graduate in 2019, and you are going back to this, then there was something seriously wrong wth your computer science course, either that or you didint attend lectures. You should be so far beyond what he is talking about. there is just no comparison. Before anybody has a go, I do speak from experience, as I am a computer science graduate and in the past I have taught C & Advanced C for over 10 years.
@@turdwarbler Happened to see this post only now, but the assignments and workload was lackluster imo, I don't want to discredit the uni by giving its name as I don't know if the course has changed since or not. But this is clearly my fault too, as I wasn't as invested as I should be. My attendance was very high, only watched lectures virtually when I was ill and did my assignments when required ... but that was about it, I did no further or out of hour coding work. And in my final year of uni, my final year project/dissertation was mostly research with little coding using Flutter. After submission, it was months till graduation, during which I did no studies. Week later I got a job working in insurance, did some coding tests for the interview and got the job soon after, only to realize the role wasn't much coding and more pricing model development. 2 years went by with no traditional programming apart from a few automation scripts to then applying for a full backend developer role, I think it's fair to say I'd forgotten a lot of the concepts and how to apply and I would think would happen to anyone if they don't practice and stay in touch. I view it like Math and less like riding a bike, you just have to keep practicing, or at the very least I'm not a genius, I tend to require more work/study to get to where others might get to with ease. Based on what you've said, you seem very invested into the subject, considering you've also taught. So I don't think you can relate nor are justified here.
10:00:08 Pointer arithmetic allows performing operations on pointers to manipulate memory addresses. 10:03:24 The power and danger of C programming and solving various segfault errors 10:05:08 Printing substrings of a string using printf 10:08:45 The program compares two strings and determines if they are the same or different. 10:10:30 Comparing strings in C involves comparing the memory addresses 10:14:06 String comparison in programming is special and treated differently from other data types. 10:16:13 Explains the concept of address and how it is used in comparing characters of strings. 10:19:55 Line 12 capitalizes the first letter of T 10:21:48 Python and other languages have benefits 10:25:30 Managing memory using malloc and free 10:27:05 Copying a string to another variable using pointers and memory allocation. 10:30:47 Iterating over and copying the characters in a string. 10:32:48 Avoid calling a function repeatedly inside your condition in a loop. 10:36:31 Use null to signal errors in coding 10:38:13 Always free memory allocated using malloc 10:41:46 Introducing the program valgrind to find memory errors in code execution 10:43:33 Bug in memory allocation and writing 10:47:07 Not initializing values in an array in C can lead to unpredictable output. 10:48:50 Garbage values in computer memory can cause errors in programs. 10:52:19 Understanding pointers and how they work 10:54:21 Manipulating memory with pointers. 10:58:09 Swapping two values using a temporary variable 10:59:51 Passing arguments by value in C does not allow swapping of values 11:03:25 Memory management in computer programs 11:05:07 Understanding memory allocation and deallocation in programs. 11:08:37 You can change the value of a variable by following memory addresses and swapping the values. 11:10:14 Passing addresses instead of integers for swap function 11:13:46 Buffer overflows can occur due to logical bugs in code 11:15:28 scanf can change the value of X by reference using Ampersand 11:19:08 Not initializing a pointer can lead to reading/writing into garbage memory locations. 11:20:59 Handling variable length inputs in C programming. 11:24:09 Introduction to reading and writing files in C 11:27:11 This week we will focus on data structures and abstract data types. 11:31:08 FIFO and LIFO are two different ways of adding and removing items from a queue or stack. 11:32:47 Storing emails and sweaters using a stack 11:36:29 The main limitation of this design is that it can only hold a finite number of items. 11:38:16 Jack learns to use a queue to manage his clothes 11:41:49 Moving a string to a new chunk of memory to add a number 11:43:27 Growing the array in this way can lead to inefficiency 11:47:07 Allocating memory dynamically for an array in C programming. 11:48:53 Using a pointer instead of an array for a list increases dynamism. 11:52:40 Copying bytes from old array to new array, allocating and freeing memory in C programming 11:54:31 Implementing inefficient allocation and population of a new array with a fourth value. 11:58:35 The function realloc simplifies the process of reallocating memory in C. 12:00:30 The use of realloc in C allows for dynamic memory allocation and copying without the need for explicit for loops. 12:04:32 Arrays and memory manipulation in computer science 12:06:20 Struct in C allows us to create our own structure in memory. 12:09:50 Creating a linked list with random memory positions 12:11:47 Use a sentinel value as a special signal for an invalid address 12:15:35 To enable backward traversal in a linked list, we can use a doubly linked list or make the list circular. 12:17:25 Using pointers in C to create self-referential structures 12:21:11 Using linked lists in place of arrays increases memory usage and eliminates the ability to index elements. 12:22:54 Binary search algorithm cannot be used when the data is not sequentially stored in memory. 12:26:10 Executing the provided code assigns a valid pointer to variable n. 12:27:53 Syntax for dereferencing a pointer and accessing a structure using arrow notation 12:31:22 Memory leak due to orphaned node 12:33:17 Implementing a stack using a linked list 12:36:52 Implementing a linked list of size zero and taking command line arguments 12:38:51 Converting command line arguments to integers using atoi. 12:42:28 Printing each number in a linked list 12:44:14 Iterating over a linked list using pointers and the null value 12:48:06 To avoid segmentation faults, use a temporary pointer for swapping and freeing memory. 12:49:54 Understanding the usage of while loops and for loops in iterating over nodes in a linked list. 12:53:23 Appending values at the end of a linked list increases the running time to O(n). 12:55:02 Maintaining a sorted list in a linked list 12:58:31 Binary search trees are structured like family trees and have special properties for binary search. 13:00:24 Using a two-dimensional approach for array layout and introducing nodes and pointers to connect them 13:03:56 Implementing binary search using a two-dimensional structure 13:05:45 Recursion is a beautiful technique for dealing with two-dimensional structures. 13:09:21 Not necessary to have pointers in both directions, but it can improve efficiency. 13:11:10 Implementing a binary search tree without balancing can result in an unbalanced tree with a height of N instead of log base 2 of N 13:14:39 Hashing is a final building block to achieve constant time lookup. 13:16:26 Sorting a deck of cards using bucketization and hashing. 13:20:16 Using linked lists improves the efficiency of contact lookup in a contact card representation 13:22:07 Hash tables offer efficient search time in constant time 13:25:49 Representation of nodes in the tree 13:27:35 Hash tables allow for constant time indexing and searching. 13:31:32 Tries are a data structure that combines aspects of arrays and hash tables. 13:33:21 Finding someone in a trie data structure takes a constant number of steps, regardless of the number of names in the data structure. 13:36:58 The try data structure is used to efficiently store and retrieve data. 13:39:00 Data structures are everywhere in the real world 13:44:03 Transition from Scratch to Python 13:45:46 Python eliminates the need for compiling code and allows program to be interpreted directly 13:49:05 Running python hello.py will print 'hello world' on the terminal. 13:50:50 In Python, the syntax for declaring variables and printing has changed compared to C. 13:54:22 Python supports format strings or F strings for automatic value substitution. 13:56:16 Python printing with curly braces 13:59:52 Implementing a spell checker in Python instead of C 14:01:38 Using a set in Python can be used as a dictionary for spellchecking words. 14:05:15 The C version of spell checker compiled faster than the Python version. 14:07:10 Using a more modern and user-friendly language like Python comes with a trade-off of potential performance loss. 14:10:46 Face recognition software can analyze and detect multiple faces, but can be trained to recognize specific faces. 14:12:44 Software can identify a human face by analyzing patterns of pixels. 14:16:21 Python has simplified the syntax for conditionals and introduced the 'elif' keyword 14:18:07 In Python, you can create a variable and set its initial value without specifying the type or using a semicolon. 14:21:33 Using the range function in Python is more efficient than hardcoding a list of numbers. 14:23:16 Infinite loops can be implemented using a 'while true' statement in C and a 'while True' statement in Python. 14:26:49 The default indentation in a Python file is left indented, and code is executed top to bottom, left to right 14:28:44 Python has a built-in function called 'int' to convert a string to an integer. 14:32:35 Python has solutions for floating point precision issues and integer overflow 14:34:31 Comparing values in C and Python 14:38:26 Explaining the usage of single quotes and double quotes in Python 14:40:17 In Python, you can use the 'in' keyword to search a list and it will return True if the value is found and False if not. 14:44:12 Python strings have built-in methods that can modify their values. 14:46:16 Strings in Python are immutable and cannot be changed directly 14:49:51 Implementing functions in Python using the 'def' keyword 14:51:34 Troubleshooting Python name errors 14:55:15 Code execution order in Python 14:57:04 Introducing Python's functionality to print a vertical column of bricks in the Mario game
10 years ago, I left a security job where i slept my 12 hour shifts. I'd wake & attend an intensive plumbing school for nearly a year. Started a plumbing business. Enjoy teaching, so posted youtube videos & got monetised, but it isn't the same as teaching irl. For some reason, I've always wanted to be a programmer. I became a plumber for money, but I've always wanted to create and have countless ideas that I've seen others create decades after. I'm nearly 40, but i want to do this just so i don't regret it. I could even create a new YT channel to see if a Plumber could become a programmer 😅 i also just hate getting older and the pain of manual labour it's tiring, i want a inside sit down job 😢
good luck man, i am 29 old completely lost in life with no support and i started doing this video and at the same time about to finish coursera google cybersecurity course, maybe i will be able to finally do something with what i am trying to learn
for me 10:00:08 Pointer arithmetic allows performing operations on pointers to manipulate memory addresses. 10:03:24 The power and danger of C programming and solving various segfault errors 10:05:08 Printing substrings of a string using printf 10:08:45 The program compares two strings and determines if they are the same or different. 10:10:30 Comparing strings in C involves comparing the memory addresses 10:14:06 String comparison in programming is special and treated differently from other data types. 10:16:13 Explains the concept of address and how it is used in comparing characters of strings. 10:19:55 Line 12 capitalizes the first letter of T 10:21:48 Python and other languages have benefits 10:25:30 Managing memory using malloc and free 10:27:05 Copying a string to another variable using pointers and memory allocation. 10:30:47 Iterating over and copying the characters in a string. 10:32:48 Avoid calling a function repeatedly inside your condition in a loop. 10:36:31 Use null to signal errors in coding 10:38:13 Always free memory allocated using malloc 10:41:46 Introducing the program valgrind to find memory errors in code execution 10:43:33 Bug in memory allocation and writing 10:47:07 Not initializing values in an array in C can lead to unpredictable output. 10:48:50 Garbage values in computer memory can cause errors in programs. 10:52:19 Understanding pointers and how they work 10:54:21 Manipulating memory with pointers. 10:58:09 Swapping two values using a temporary variable 10:59:51 Passing arguments by value in C does not allow swapping of values 11:03:25 Memory management in computer programs 11:05:07 Understanding memory allocation and deallocation in programs. 11:08:37 You can change the value of a variable by following memory addresses and swapping the values. 11:10:14 Passing addresses instead of integers for swap function 11:13:46 Buffer overflows can occur due to logical bugs in code 11:15:28 scanf can change the value of X by reference using Ampersand 11:19:08 Not initializing a pointer can lead to reading/writing into garbage memory locations. 11:20:59 Handling variable length inputs in C programming. 11:24:09 Introduction to reading and writing files in C 11:27:11 This week we will focus on data structures and abstract data types. 11:31:08 FIFO and LIFO are two different ways of adding and removing items from a queue or stack. 11:32:47 Storing emails and sweaters using a stack 11:36:29 The main limitation of this design is that it can only hold a finite number of items. 11:38:16 Jack learns to use a queue to manage his clothes 11:41:49 Moving a string to a new chunk of memory to add a number 11:43:27 Growing the array in this way can lead to inefficiency 11:47:07 Allocating memory dynamically for an array in C programming. 11:48:53 Using a pointer instead of an array for a list increases dynamism. 11:52:40 Copying bytes from old array to new array, allocating and freeing memory in C programming 11:54:31 Implementing inefficient allocation and population of a new array with a fourth value. 11:58:35 The function realloc simplifies the process of reallocating memory in C. 12:00:30 The use of realloc in C allows for dynamic memory allocation and copying without the need for explicit for loops. 12:04:32 Arrays and memory manipulation in computer science 12:06:20 Struct in C allows us to create our own structure in memory. 12:09:50 Creating a linked list with random memory positions 12:11:47 Use a sentinel value as a special signal for an invalid address 12:15:35 To enable backward traversal in a linked list, we can use a doubly linked list or make the list circular. 12:17:25 Using pointers in C to create self-referential structures 12:21:11 Using linked lists in place of arrays increases memory usage and eliminates the ability to index elements. 12:22:54 Binary search algorithm cannot be used when the data is not sequentially stored in memory. 12:26:10 Executing the provided code assigns a valid pointer to variable n. 12:27:53 Syntax for dereferencing a pointer and accessing a structure using arrow notation 12:31:22 Memory leak due to orphaned node 12:33:17 Implementing a stack using a linked list 12:36:52 Implementing a linked list of size zero and taking command line arguments 12:38:51 Converting command line arguments to integers using atoi. 12:42:28 Printing each number in a linked list 12:44:14 Iterating over a linked list using pointers and the null value 12:48:06 To avoid segmentation faults, use a temporary pointer for swapping and freeing memory. 12:49:54 Understanding the usage of while loops and for loops in iterating over nodes in a linked list. 12:53:23 Appending values at the end of a linked list increases the running time to O(n). 12:55:02 Maintaining a sorted list in a linked list 12:58:31 Binary search trees are structured like family trees and have special properties for binary search. 13:00:24 Using a two-dimensional approach for array layout and introducing nodes and pointers to connect them 13:03:56 Implementing binary search using a two-dimensional structure 13:05:45 Recursion is a beautiful technique for dealing with two-dimensional structures. 13:09:21 Not necessary to have pointers in both directions, but it can improve efficiency. 13:11:10 Implementing a binary search tree without balancing can result in an unbalanced tree with a height of N instead of log base 2 of N 13:14:39 Hashing is a final building block to achieve constant time lookup. 13:16:26 Sorting a deck of cards using bucketization and hashing. 13:20:16 Using linked lists improves the efficiency of contact lookup in a contact card representation 13:22:07 Hash tables offer efficient search time in constant time 13:25:49 Representation of nodes in the tree 13:27:35 Hash tables allow for constant time indexing and searching. 13:31:32 Tries are a data structure that combines aspects of arrays and hash tables. 13:33:21 Finding someone in a trie data structure takes a constant number of steps, regardless of the number of names in the data structure. 13:36:58 The try data structure is used to efficiently store and retrieve data. 13:39:00 Data structures are everywhere in the real world 13:44:03 Transition from Scratch to Python 13:45:46 Python eliminates the need for compiling code and allows program to be interpreted directly 13:49:05 Running python hello.py will print 'hello world' on the terminal. 13:50:50 In Python, the syntax for declaring variables and printing has changed compared to C. 13:54:22 Python supports format strings or F strings for automatic value substitution. 13:56:16 Python printing with curly braces 13:59:52 Implementing a spell checker in Python instead of C 14:01:38 Using a set in Python can be used as a dictionary for spellchecking words. 14:05:15 The C version of spell checker compiled faster than the Python version. 14:07:10 Using a more modern and user-friendly language like Python comes with a trade-off of potential performance loss. 14:10:46 Face recognition software can analyze and detect multiple faces, but can be trained to recognize specific faces. 14:12:44 Software can identify a human face by analyzing patterns of pixels. 14:16:21 Python has simplified the syntax for conditionals and introduced the 'elif' keyword 14:18:07 In Python, you can create a variable and set its initial value without specifying the type or using a semicolon. 14:21:33 Using the range function in Python is more efficient than hardcoding a list of numbers. 14:23:16 Infinite loops can be implemented using a 'while true' statement in C and a 'while True' statement in Python. 14:26:49 The default indentation in a Python file is left indented, and code is executed top to bottom, left to right 14:28:44 Python has a built-in function called 'int' to convert a string to an integer. 14:32:35 Python has solutions for floating point precision issues and integer overflow 14:34:31 Comparing values in C and Python 14:38:26 Explaining the usage of single quotes and double quotes in Python 14:40:17 In Python, you can use the 'in' keyword to search a list and it will return True if the value is found and False if not. 14:44:12 Python strings have built-in methods that can modify their values. 14:46:16 Strings in Python are immutable and cannot be changed directly 14:49:51 Implementing functions in Python using the 'def' keyword 14:51:34 Troubleshooting Python name errors 14:55:15 Code execution order in Python 14:57:04 Introducing Python's functionality to print a vertical column of bricks in the Mario game
I’m crying right now because I was denied a college education after being shot and disabled and was not able to afford to get the education of such caliber. David is an amazing professor and I am grateful to be able to watch this awesome CS50 course.
For what it's worth, I don't know you and you don't know me, but just from one stranger to another somewhere out there even though I have no idea where you're from or anything about your life, here's a general tip: I can't say how much information you can learn for free out there, and I wish I could just make you believe me somehow, but you can honestly find ANY information that you could get ina college/university simply on UA-cam. This video itself is just sheer proof of that. So if you think this is good, just imagine what you would be able to do (learn) if you could just start searching correctly on that search bar above all this, and on Google. A very smart programmer/hacker once said: "The only way to learn programming is to not only watch tutorials, but just pick a project and start a project and start making it. There is no other way to learn how to code." I know he said something like that, maybe not exactly but the point is still the same. You got this man. Sorry, I just felt like I couldn't just be another person just scrolling past and ignore your comment as it touched my heart. Good luck dude.
@sensorAnd for homelessness, medical bankruptcy, and increased risk of getting shot to death while out shopping. I'd remain in Europe if I was you. Good luck!
This guy is absolutely amazing. I have always found coding fascinating but very complicated. He explains from the extremely bare basics and builds. And I'm absorbing it like a sponge. Thank you so much, I'll use this knowledge when I start coding for college
He broke things down and explained topics so well. I'm thankful that this was provided for free and thankful to those who uploaded this moment in history.
Goodness yes !!my computer science class was a snooze fest at 8am ! University of Miami was more about teaching us how to turn it on and cop c copy v and the class / professor was as interesting as watching grass grow!! If I knew professors looked like this dude I would have attended Harvard ! What a gift this is!!
I love professors like this! I get it now. This is why Harvard students are so successful. They're enlightened all day, every day with amazing leaders. Lucky ducks.
I developed a love of computers when I was in high school. Unfortunately, when I graduated, I didn't have support to further my education, so I decided to listen to tutorials and practice on my computer. However, I'm enrolling in an online course that will help me develop and enhance my software engineering skills. I always watch this guy's video every single day.
Just finished the final problem set, compared to a year ago, this class alone has given me not just confidence in my programming skills, but confidence as a person. This is THE best course for free learning anywhere.
The professor makes the course so nice and enjoyable...the students are blessed.. every computer science professor around the world should watch this. amazing lecture!.
Thank you for actually showing what you are doing. I hate my university so much because all my professors rely on powerpoint slides and it makes my head hurt. This is so easy and enjoyable to follow.
Omg yes, they just read the slides or even skip it and say you can look at it at home. Well why do i even pay then if i can just find these slides on github and use my time efficiently. Like i waste my time at school getting headaches and then basically have to self teach. This video is like everything.
@@SadiaYasmin-e9x it's 50. all courses in uni start at 101, 102, etc. so this isn't a full real course. and frankly he leaves out so much that he misleads you without teaching you. better off looking for python videos on YT
I used to love to code and I had a real good opportunity to get into coding early on in my life, but i took all the wrong steps. and now am 22. working in Mcdonalds. well time for change is no or never. am going to grind the living crap out of this and everything available online and dig myself out of this deep whole. I hope everyone watching good luck and may you also find you path in life
(Copying progress over from old video to new) Day one: 2:18:00 Day two: 3:42:44 Day three (part 1): 3:58:00 Day three (part 2): 4:13:23 Day four: completed the challenging Mario problem! Day five: 4:41:00 Day six: 5:53:00 Day seven to twelve: sleep away summer camp, no progress made Day thirteen: 6:20:43 Day fourteen to eighteen: campingggg trip! Day nineteen: completed scrabble :D Day twenty: made wordle :) Day twenty-one: 6:41:52 Day twenty-two: 7:09:42 idk even know: 7:35:39 nice: 8:24:57 in english: 8:37:55 10000 years later: Finished Tideman >:) now: 9:23:17 in english again: 9:53:37 more progress: 10:39:28 on the way to state: 10:59:33 what a lovely fall: 11:26:33 I dunno: 11:56:22 asdas: 12:13:19 I’m bed: 12:53:30 zoopy: 13:19:12 finished data structure lecture: 13:42:44 finished speller! more progress: 13:55:26 cs50 in class: 15:30:28 my gf broke up with me :( man its cold outside: 16:54:18 cold couple of days: 17:33:38 haven't had school in a week, crazy storm: 17:51:14 finished SQL lecture: 18:18:30 first cemester in school over: 19:07:18 new stuffs pretty cool: 20:23:33 ok: 20:58:14 (I haven't been spending as much time on coding as I have been in the past few weeks. Hard to find time with all the running/biking that I am doing for xc season. Will hopefully finish this before school starts though!)
Just finished Week O: Scratch which lasted about 2 hours. My temporary plan is to do a lecture a day (10 lectures total), then review the notes for that lecture twice then do any of the examples given in the lecture, then the following day do the next lecture and repeat. I'm 43 now and going back to school in 2 months to finish the last 5 classes needed for my Computer Science Bachelor's degree (lol, better late than never) at UMGC and have Python as my first coding language, so I needed a refresher to CS and an introduction to Python. I then plan to go for a Master's in either Health Informatics or Cyber security. On to Lecture 1 and notes review tomorrow an so on... Thanks for the awesome video @David Milan
Very impressive!! Hope it all works out for you! I’m a senior in HS just trying to grab some concepts of CS and all that. I plan to do a finance/accounting major and CS minor in college next year
@@Luke-ft2vlI am in finance. There is very little that AI won't be replacing here in just a few years. Especially in accounting. Do what makes you happy but even the things I am able to do with AI make most of my coworkers obsolete. Once Microsoft co-pilot explodes...man. a sincere best of luck to you man. You seem cool
This is by far one of the best educational sessions I've ever witnessed. this guy could literally teach any age to any level. Very well presented. A HUGE thankyou
My Progress : Day 1 : 40:27 ... Day 2 : 1:25:30 ... Day 3 : 1:53:00... Day 4 : 2:10:00... Day 5 : 3:01:19... Day 6 : 4:24:00... Day 7 : 5:20:38... Day 8 : 6:54:00... Day 9 : 7:03:00... Day 10 : 7:42:36... Day 11 : 8:17:00... Day 12 : 10:00:00... Day 13 : 10:46:00... Day 14 : 12:19:00... Day 15 : 13:54:00... Day 16 : 14:50:00... Day 17 : 15:59:00...
// 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 3x3 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
I took this course 3 (2 and a half to be precise) times on Edx in the past 5 years and I loved it everytime. They keep changing, adding, adjusting. Every year you find something new, something different.
@@reinertgregal1130 The first time I didn't finish it. The second time, a couple of years later, I arrived very close to the end, I had one lesson left. The third time, last year, I arrived at the final exam. Apart from the will to finish it completely, every time the course was different in some way. For example, now it uses a lot less C (like the first one I took it) and a lot more Python. And a good refresher on the basic stuff, every tree years or so, is not a bad idea at my age.
This professor can make 12 years old kid understand CS! No wonder why students all around the world struggle in their colleges because now I understand that the professor is the key!
What a course! Professor David Malan is a blessing for learning, he really knows the art of teaching complex conceptual ideas into easy to understand and grasp. Thank you freecodecamp team for making this course available on UA-cam, really appreciate it! Thank you and God bless you!
5:34:00 For those that wonder why the jumping into the end of loop section, it's because the do..while loop just does a je/jne in assembly, which occurs before the end of the loop. Bit of a disconnect between visually debugging your code and the way it's expressed in assembly.
Let's see how long it takes.. Day 1✅ 3:44:12 Day 2✅4:36:21 + Other c video Day 3✅ decided to complete c (without cs50 lib) ch done in that video 4/10 Day 4 ✅ ch done in that video 8/10
thank god he has no mask on his face this time. he was literally suffocating in the previous video. and, strangely enough, I felt the lack of oxygen myself just by watching him. So happy there is this new version of the video
I recently decided to start my journey in game development with unreal engine 5.3. I've always been afraid of learning to program. It seemed like this giant mountain of knowledge that I couldn't scale. I'm 32 now. If I don't start now, it'll keep getting more difficult to learn. I'm watching through the entirety of this course to gain a fundamental understanding of computer science. It isn't strictly necessary to learn this material, especially with unreal's blueprint system (visual scripting), to develop video games. That said, I am already gaining a better understanding of how to break down problems in a way that makes sense to the computer. Programming is so much like learning a second language. It teaches you to think in different ways: structure, syntax, etc. I am beyond grateful that this course is available for free on UA-cam. Thank you!!
It will be a huge help to you because not everything is perfectly solvable with blueprint and it helps to understand the basic workings of languages and how the computer handles input and data. Also regarding optimization it is helpful to know if you go through unnecessary steps and bloat. Learning different paradigms can make you think of a smarter faster solution instead of a slow and easy one.
Two years ago, I went back to mathematical basics. It was a painful feeling wandering into a library, picking up a grade school math textbook, and getting sideways looks from other people. But now we're here. And I am proud to keep going.
This is such an amazing opportunity made available to so many! Thank you for making quality education free and easily accessible, like it's supposed to be.
@@romus007 Yes. It would be nice, if the lectures were broken up into individual videos. For me, I am learning the Python programming language, so my focus will be on that lecture, alone.
@@NBT2469I mean the whole cs50 lectures aren't only about Python itself, but also about other languages. Tbh as the beginner its actually way better to start from lower level language and move on Python much easier than from Python to any other language which requires all the stuff about self allocing/freeing memory or pointers and other this type of stuff
i am in the last semester for my Bachelor's in Science degree and Computer science has always intrigued me, so much that i self taught myself web development. Lets see if i can complete this whole video and get a deeper idea of things in computer science. It might take me a while since I am in the last semester for my degree but lets see how many days i can do it in(if someone wanna do it together reply your timestamps, lets do it together) day1 => 35:10 day2 => 1:14:00 day3 => 1:25:00 day4=> 2:17:00
Heading to the final year of my bachelors degree and this video, is just a blessing. Just so engaging and intuitive. Everything's concise. It's the perfect video for recapitulating and summarizing everything I've learnt so far, just in a more fun, interesting and logical manner. There's not a single moment where I feel I have a doubt coz everything's just so well structured. Prof. David is super thorough in his explanations and so engaging in the way he delivers the lectures. To provide this for free is truly a gift to many.
@@SadiaYasmin-e9x I am not sure, but apparently looks very interesting for those who want to learn the basics of many aspects and topics from computer science.
This is absolutely beautiful for people who are interested in computer science this professor deserves a huge thank you for uploading this cause for free.
This is so awesome. Im going through the entire couse using link in the description. I am doing the homework and practice problems and exams. I just wish I had someone to ask questions of and someone who could check my work. I just have to hope I'm doing it right. But I am not complaining. This is so awesome for being free. Thank you for posting this.
The starting made me cry ..... never got teachers like that... Became a huge fan of dr David.. i wish i could meet him one day.. and thank him with a small gift... He is just so amazing.. i always wanted to have knowledge like that and keep up the things in line. As a slow learner I always wanted someone like him with so relatable and simple examples that incorporates some meaningfulness. I wish I had him when i was 16. But 28 now.. This is a huge miss in my life.. Wish Dr david live a wonderful life.. and huge respect.. There is no age to have knowledge and i will keep on listening to his lectures.. please, i ask you to share his videos more and more so that i can have the skills like him.. also The energy he have is amazing thus is what we call teaching.. not even a single blink i had for like first 2 minutes when he started.. Just amazing..😊😊😊😊❤❤❤❤
You can tell from this it's not the content itself that's different that top universities. It's the way it's taught. This is what makes it worth it to invest more into a good college if you have to choose between that and a cheap state school.
I am into cybersecurity deeply and also interested in CS specially from low level perspective and I found this course to be useful, will book mark it and get back to it in the near future. I sped it to see whats so good about the course and I'm at 10:44:19 the C and valgrind part where he debugs the C code. I have the basics of understanding computer arch, Python, C, scripting, Linux, networking and I should be able to crash the course! Inshallah!
@ I would just recommend for you to start watching and research what you gonna understand and maybe next time it will be easier to digest the information when you come back to it
At 9:14:41 there is an amazingly hilarious cut where a student is asking a question and right as she is about to ask the question, it cuts to David saying "Good question!". Haha
I have completed the first 40 minutes of this lecture and I bet no other teacher explained about the concept of bits and bytes better than this !!!. Thank you for providing it for free!!
David is an amazing teacher. I took computer science a few courses at Oklahoma State University in 2010-2011 before I dropped out, but this CS50 is really helping me to understand some things I didn’t when I gave up all those years ago. I was doing some basic html for my current job and it really sparked my interest in learning coding again. It was my favorite class when I was in college, but physics and chemistry were so hard for me I decided computer engineering wasn’t for me. I wish I would’ve continued to learn things on my own for the past decade but I’ve learned that this is something I’m passionate about and am motivated to learn on my own through free code camp and then start with personal projects. All of the self taught developers have given me so much hope and motivation that I can do this if I put my mind to it and give myself time to understand it. Thank you, free code camp!
I am literally speechless. This is not just teaching, this is art. Those students are blessed by having such an opportunity.
those students worked their ass off to get into Harvard and their parents paid a ton of money. make no mistake. this is marketing for Harvard university.
We are blessed to have such an opportunity!
@@raav2878 "While it may seem a bit harsh, it is undeniably true.
Nonetheless, the effort and money invested were well spent. The mere difficulty or expense of something does not always guarantee the highest quality."
Well for the price of Harvard you should expect nothing more than world class professors like this.
the white and chinese ones did.
@@raav2878
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 3x3 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
Appreciate your effort
Thank you 👍
respect ❤
❤❤
You are a hero!
24 hours of Harvard Computer Science for free?! Huge respect 🙌
First day on internet?😮
LoL ... Nothing that 1 hour of good reading on some tech blogs can tell you even better.
@@GooogleGoglee Can you recommend some good tech blogs to read
@@GooogleGoglee yes, but there is the cs50x edX course and people say it is rather hard.
@@V.D. very generic...
The light bulbs on the edge of the stage spell a different word in binary for each class. I've never loved a class more. David makes learning effortless.
wow, I didn't even notice that. Thanks for pointing it out!
What do they spell?
@@chillforlizz7757 ligma
@@williamantonio9743 what's ligma
@@williamantonio9743 lmao you made me crack up in the university library
I'll leave this comment here so that whenever someone likes it it will remind me of my day one in learning computer programming
One day! Only the passionate like this teacher hopped right on it. This man is literally running a marathon teaching his passion; be passionate like him then it won't just be "one day"
How is it going so far? If u haven't started u should its lowkey hard.
it's been 3 months how is it now?
Got laid off of my construction job after working 50-60 hours a week faithfully. Now I’m going to lock down for the next year and learn the basics of coding to ultimately get a tech job. Today is day 1. Let’s go 🙏🏾
Let's goooooo! 📈
Today, is day 13! Keep going!
@@ItzBakeYT He's already done
so today is day 13 right?
Update?
5:00:11 Compiling converts C code into assembly code.
5:01:53 AMD CPUs understand Assembly Language for efficient code execution
5:05:45 The code is stored on a virtual hard drive in the cloud.
5:07:54 The purpose of a library is to make it easier to use and reuse code that's already been written.
5:11:53 Code compiled into zeros and ones is not necessarily predictable, making decompiling challenging.
5:13:34 Debugging code is a lifelong skill and there are tools and techniques available to make it easier.
5:16:57 Debugging using printf statements
5:18:42 Using printf as a diagnostic tool in programming
5:22:09 Using breakpoints in debug mode to step through code
5:23:56 The debugger in CS50 shows variables and allows stepping through code
5:27:18 Using a panel to display changing values instead of print statement
5:29:07 The cs50 library prompts the user for a negative integer and stores the value in n.
5:32:52 Exploring the behavior of a 'do-while' loop in the program.
5:34:38 Using a debugger can help in finding bugs in code
5:38:11 Data types represent different types of data with a specific number of bits allocated to them.
5:39:58 Data in computers is represented using bits and bytes.
5:43:27 Memory in a computer is like a canvas for storing information in units of bytes or 8 bits.
5:45:11 Computing the average of three values using C
5:48:42 The video discusses the concept of memory and storing data.
5:50:33 Declare an array in C to store three integer values
5:54:26 Using loops to avoid repetitive code and improve code design.
5:56:21 Memory in computers is contiguous, and arrays can be passed as arguments in code.
5:59:58 Declare a constant variable to avoid hardcoding and easily reuse values.
6:02:01 Taking the average of a variable number of scores using a loop.
6:06:01 In C, you must remember the length of an array yourself.
6:07:58 In C, you cannot determine the size of an array when it is passed into a function.
6:11:31 A string is just an array of characters in memory.
6:13:24 Strings in memory take up one more byte than the characters typed by the programmer
6:17:12 Understanding operations on strings in computer science.
6:19:12 Strings in C are treated differently and have special implementations
6:22:59 Manipulating strings in arrays using new syntax
6:25:11 Calculate the length of a string in C
6:28:54 Introduce string manipulation and library functions in C
6:30:56 Iterate through each character in a given string, check if it is lowercase, and convert it to uppercase.
6:34:53 Using libraries in programming to solve common problems efficiently
6:36:42 Implement a program that's correct but better designed with fewer lines of code and lower probability of mistakes.
6:40:40 Introducing command-line arguments in the program
6:42:40 argc stands for argument count and is used to determine the length of the array of words typed at the prompt.
6:46:44 Command line arguments are used to modify the behavior of a program.
6:48:34 Command line arguments and exit status in coding
6:52:22 You can use the command 'Echo $?' to see the exit status of your program.
6:54:17 Cryptography is the art and science of encrypting information.
6:57:50 Encryption and decryption process explained
7:01:19 Efficiency of algorithms and its impact on solving problems
7:04:40 Searching algorithms and memory storage in computers
7:06:20 Executing the linear search algorithm to find the hidden 50 in the lockers
7:10:26 Using bracket notation, Jackson can treat the set of lockers as an array
7:12:06 Using binary search algorithm to find a number in an array
7:15:44 Divide and conquer approach for searching in an array
7:17:30 Binary search is more efficient than linear search
7:20:54 Algorithms perform similarly for large input sizes
7:22:39 Linear search has a time complexity of O(n) and binary search has a time complexity of O(log n).
7:26:21 Big O, Omega, and Theta allow computer scientists to analyze algorithm efficiency.
7:28:04 Translate the discussed ideas to actual code using arrays
7:31:50 Implementation of linear search in C using an array of numbers.
7:33:44 String comparison in C requires using a function called strcmp instead of == operator.
7:37:50 Avoid touching memory that shouldn't be accessed
7:39:40 Returning zero in main signifies code execution is successful
7:43:25 Using a 2D array to store names and numbers is a cleaner approach than combining them into the same array.
7:45:20 Code successfully searches for phone numbers in a phone book.
7:49:16 Defining a new data type called person using struct keyword
7:51:08 Creating a structure to store person's information
7:54:51 Read and update information dynamically from a file
7:56:50 C cannot set default values in struct, unlike more modern languages like Python and Java.
8:00:49 Sorting volunteers using selection sort algorithm
8:02:34 Using selection sort to sort a list of numbers
8:05:56 Bubble sort is a different approach to sorting that focuses on smaller problems.
8:07:34 Bubble sort algorithm to solve sorting problems
8:11:25 Counting the number of comparisons is a global unit of measure to analyze algorithms.
8:13:14 Number of comparisons to find the smallest element decreases by 1 for each iteration.
8:16:57 Selection sort takes N^2 steps in worst case and N^2 steps in best case
8:18:52 Iterate through the array from 0 to n minus 2 to avoid going beyond array boundaries.
8:22:30 Bubble sort has a short-circuit detail helpful for already sorted data
8:24:27 Sorting algorithms like selection sort and bubble sort have a redundant comparison process that results in slow performance for large numbers
8:28:14 Recursion allows calling a function on a smaller version of the problem until no more problems to solve.
8:30:05 Recursive search algorithm for a phone book
8:33:52 Implementing a pyramid drawing function using recursion.
8:35:49 Creating a pyramid recursively
8:39:33 The base case is important to prevent the code from running forever.
8:41:20 Recursion can be used with return values.
8:45:07 Merging two sorted halves
8:46:51 Merge sort requires additional memory for implementation
8:50:24 Sorting the left half and right half of the original input separately
8:52:19 Merging and sorting the left and right halves of the given list
8:56:09 The running time of merge sort is O(n log n) and it is better than bubble sort and selection sort.
8:57:56 Merge sort is generally preferred for sorting as it is faster.
9:03:45 Understanding computer memory helps in representing and creating interesting things
9:05:26 RGB color system: Red, Green, Blue
9:08:59 Hexadecimal is a base-16 system used to represent numbers beyond 0-9.
9:10:53 Heximal (hexadecimal) is a number system that uses 16 symbols to count. It is useful for various applications.
9:14:48 Hexadecimal is a base system used in computers to represent information.
9:16:35 Hexadecimal is commonly used to describe memory locations in computer systems and software.
9:20:11 Conceptually, the programmer knows that the number 50 is assigned to the symbol n in the computer's memory.
9:21:51 C language has operators to get the address of a variable and go to a specific address in memory.
9:25:30 A pointer is a variable that contains the address of a value.
9:27:23 The video explains the concept of pointers in C programming.
9:30:59 The code assigns the value of 'n' to variable 'p' using the address of 'n'.
9:32:42 Pointers are variables that point to something else
9:36:19 Arrays and pointers have a relationship, but are technically different.
9:38:07 Strings in programming are special as they store multiple characters and have a null character at the end.
9:41:42 String in C is actually a Char star
9:43:30 Defining data types in C using type def
9:47:13 Pointers in C are declared using the star symbol and can be dereferenced using the star symbol.
9:49:00 Printing the address of a string using the %p format specifier
9:52:40 The 'percent s' is used in printf to print the characters in a string.
9:54:39 The video discusses the concept of addresses in C programming.
9:58:19 Printing characters from a string using pointers
Hey I’m just wondering is this C# he teaches
@@ShmurdaaaA i didn't watch the whole video so i only saw him teaching in C. But if you're asking if C and C# are the same, the answer is no, they're completely different languages. C is more similar to C++
@@theprofessional2884 thank you for that was looking to know looking for a C sharpe one
Save
thanks for spoiling it bro
This teacher is a world class, no question on it
The first 40 minutes have answered so many random questions I’ve asked over the years but never truly answered. Ill probably watch this over and over again
Did u
🎯 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 3x3 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*
thank you so much
Wow 😅
Thank you kindly you absolute mad lad
thank you
🎉✊
This harvard lecturer has so much passion impacting knowledge. 20 mins in and I've learnt quite a lot.
That reminded me that sometimes the way the teacher does his/her job can considerably impact a student 's life and the way the students see the subject.
The teacher is truly passionate and loves his subject; that impacts a student a lot too! Really impressive what he's taught me in a span of 30min - 1hr
26 hours of full course and no ads ?
You people are doing god's work !!
Harvard CS course for free that too without any ads !
Do y’all not use Adblock? I haven’t seen a UA-cam ad in years. I guess if you watch on a phone it’s harder which I understand.
BUT PEOPLE: IF YOU USE UA-cam ON A COMPUTER PLEASE USE ADBLOCK.
I have ads :(
@@sebastianpedraza4481 use adblocker bro if you are using laptop
there are ads :I
the video is an ad in itself
love how you can fast forward to any point, and the energy level never decreases
That is what makes him obnoxious to me: he never stops and takes a breath. This entire video is worthless. I can’t learn when someone is yelling continuously.
@@thewiseowl8804 its your fault then
@@thewiseowl8804 Remember that the lecture is meant for Harvard students and not for the general public so of course hes not gonna stop. Its easy to pause and take a break instead of complaining because you cant handle a Harvard course
@@xavierggez Remember that countless unidentifiable uploaders put out tutorials far more substantive and insightful than this guy can, and also that this was uploaded for the general public. Why are you mad that I don’t like his lecturing style?
@@thewiseowl8804 No I just think the energy is necessary in a learning environment. I would love for you to tell me the countless unidentified uploaders that give a lot more substance than a whole course (for my own learning)
I remember enrolling in a free harvard course online a couple years ago. The way they think and teach made me speechless, truly amazing.
Best teacher found on UA-cam THANKS CS50
I graduated from my undergrad in CS at a uni in the UK back in 2019, decided to watch this since my field of work briefly shifted post uni, but now coming back to software dev thought about checking this out, I'm only 2 hours into this course and it's already miles and miles better than what I went through on my course, almost feels like I wasted money, there were useful bits ofc, but this is just highly engaging and so well structured. So glad this is available for free!!!!
What uni
If universities were actually this engaging people would actually care and go regularly
@@DailyShit.if they would get paid they would…
Hmmmm, if you were a Computer Science graduate in 2019, and you are going back to this, then there was something seriously wrong wth your computer science course, either that or you didint attend lectures.
You should be so far beyond what he is talking about. there is just no comparison. Before anybody has a go, I do speak from experience, as I am a computer science graduate and in the past I have taught C & Advanced C for over 10 years.
@@turdwarbler Happened to see this post only now, but the assignments and workload was lackluster imo, I don't want to discredit the uni by giving its name as I don't know if the course has changed since or not. But this is clearly my fault too, as I wasn't as invested as I should be. My attendance was very high, only watched lectures virtually when I was ill and did my assignments when required ... but that was about it, I did no further or out of hour coding work. And in my final year of uni, my final year project/dissertation was mostly research with little coding using Flutter. After submission, it was months till graduation, during which I did no studies. Week later I got a job working in insurance, did some coding tests for the interview and got the job soon after, only to realize the role wasn't much coding and more pricing model development. 2 years went by with no traditional programming apart from a few automation scripts to then applying for a full backend developer role, I think it's fair to say I'd forgotten a lot of the concepts and how to apply and I would think would happen to anyone if they don't practice and stay in touch. I view it like Math and less like riding a bike, you just have to keep practicing, or at the very least I'm not a genius, I tend to require more work/study to get to where others might get to with ease.
Based on what you've said, you seem very invested into the subject, considering you've also taught. So I don't think you can relate nor are justified here.
10:00:08 Pointer arithmetic allows performing operations on pointers to manipulate memory addresses.
10:03:24 The power and danger of C programming and solving various segfault errors
10:05:08 Printing substrings of a string using printf
10:08:45 The program compares two strings and determines if they are the same or different.
10:10:30 Comparing strings in C involves comparing the memory addresses
10:14:06 String comparison in programming is special and treated differently from other data types.
10:16:13 Explains the concept of address and how it is used in comparing characters of strings.
10:19:55 Line 12 capitalizes the first letter of T
10:21:48 Python and other languages have benefits
10:25:30 Managing memory using malloc and free
10:27:05 Copying a string to another variable using pointers and memory allocation.
10:30:47 Iterating over and copying the characters in a string.
10:32:48 Avoid calling a function repeatedly inside your condition in a loop.
10:36:31 Use null to signal errors in coding
10:38:13 Always free memory allocated using malloc
10:41:46 Introducing the program valgrind to find memory errors in code execution
10:43:33 Bug in memory allocation and writing
10:47:07 Not initializing values in an array in C can lead to unpredictable output.
10:48:50 Garbage values in computer memory can cause errors in programs.
10:52:19 Understanding pointers and how they work
10:54:21 Manipulating memory with pointers.
10:58:09 Swapping two values using a temporary variable
10:59:51 Passing arguments by value in C does not allow swapping of values
11:03:25 Memory management in computer programs
11:05:07 Understanding memory allocation and deallocation in programs.
11:08:37 You can change the value of a variable by following memory addresses and swapping the values.
11:10:14 Passing addresses instead of integers for swap function
11:13:46 Buffer overflows can occur due to logical bugs in code
11:15:28 scanf can change the value of X by reference using Ampersand
11:19:08 Not initializing a pointer can lead to reading/writing into garbage memory locations.
11:20:59 Handling variable length inputs in C programming.
11:24:09 Introduction to reading and writing files in C
11:27:11 This week we will focus on data structures and abstract data types.
11:31:08 FIFO and LIFO are two different ways of adding and removing items from a queue or stack.
11:32:47 Storing emails and sweaters using a stack
11:36:29 The main limitation of this design is that it can only hold a finite number of items.
11:38:16 Jack learns to use a queue to manage his clothes
11:41:49 Moving a string to a new chunk of memory to add a number
11:43:27 Growing the array in this way can lead to inefficiency
11:47:07 Allocating memory dynamically for an array in C programming.
11:48:53 Using a pointer instead of an array for a list increases dynamism.
11:52:40 Copying bytes from old array to new array, allocating and freeing memory in C programming
11:54:31 Implementing inefficient allocation and population of a new array with a fourth value.
11:58:35 The function realloc simplifies the process of reallocating memory in C.
12:00:30 The use of realloc in C allows for dynamic memory allocation and copying without the need for explicit for loops.
12:04:32 Arrays and memory manipulation in computer science
12:06:20 Struct in C allows us to create our own structure in memory.
12:09:50 Creating a linked list with random memory positions
12:11:47 Use a sentinel value as a special signal for an invalid address
12:15:35 To enable backward traversal in a linked list, we can use a doubly linked list or make the list circular.
12:17:25 Using pointers in C to create self-referential structures
12:21:11 Using linked lists in place of arrays increases memory usage and eliminates the ability to index elements.
12:22:54 Binary search algorithm cannot be used when the data is not sequentially stored in memory.
12:26:10 Executing the provided code assigns a valid pointer to variable n.
12:27:53 Syntax for dereferencing a pointer and accessing a structure using arrow notation
12:31:22 Memory leak due to orphaned node
12:33:17 Implementing a stack using a linked list
12:36:52 Implementing a linked list of size zero and taking command line arguments
12:38:51 Converting command line arguments to integers using atoi.
12:42:28 Printing each number in a linked list
12:44:14 Iterating over a linked list using pointers and the null value
12:48:06 To avoid segmentation faults, use a temporary pointer for swapping and freeing memory.
12:49:54 Understanding the usage of while loops and for loops in iterating over nodes in a linked list.
12:53:23 Appending values at the end of a linked list increases the running time to O(n).
12:55:02 Maintaining a sorted list in a linked list
12:58:31 Binary search trees are structured like family trees and have special properties for binary search.
13:00:24 Using a two-dimensional approach for array layout and introducing nodes and pointers to connect them
13:03:56 Implementing binary search using a two-dimensional structure
13:05:45 Recursion is a beautiful technique for dealing with two-dimensional structures.
13:09:21 Not necessary to have pointers in both directions, but it can improve efficiency.
13:11:10 Implementing a binary search tree without balancing can result in an unbalanced tree with a height of N instead of log base 2 of N
13:14:39 Hashing is a final building block to achieve constant time lookup.
13:16:26 Sorting a deck of cards using bucketization and hashing.
13:20:16 Using linked lists improves the efficiency of contact lookup in a contact card representation
13:22:07 Hash tables offer efficient search time in constant time
13:25:49 Representation of nodes in the tree
13:27:35 Hash tables allow for constant time indexing and searching.
13:31:32 Tries are a data structure that combines aspects of arrays and hash tables.
13:33:21 Finding someone in a trie data structure takes a constant number of steps, regardless of the number of names in the data structure.
13:36:58 The try data structure is used to efficiently store and retrieve data.
13:39:00 Data structures are everywhere in the real world
13:44:03 Transition from Scratch to Python
13:45:46 Python eliminates the need for compiling code and allows program to be interpreted directly
13:49:05 Running python hello.py will print 'hello world' on the terminal.
13:50:50 In Python, the syntax for declaring variables and printing has changed compared to C.
13:54:22 Python supports format strings or F strings for automatic value substitution.
13:56:16 Python printing with curly braces
13:59:52 Implementing a spell checker in Python instead of C
14:01:38 Using a set in Python can be used as a dictionary for spellchecking words.
14:05:15 The C version of spell checker compiled faster than the Python version.
14:07:10 Using a more modern and user-friendly language like Python comes with a trade-off of potential performance loss.
14:10:46 Face recognition software can analyze and detect multiple faces, but can be trained to recognize specific faces.
14:12:44 Software can identify a human face by analyzing patterns of pixels.
14:16:21 Python has simplified the syntax for conditionals and introduced the 'elif' keyword
14:18:07 In Python, you can create a variable and set its initial value without specifying the type or using a semicolon.
14:21:33 Using the range function in Python is more efficient than hardcoding a list of numbers.
14:23:16 Infinite loops can be implemented using a 'while true' statement in C and a 'while True' statement in Python.
14:26:49 The default indentation in a Python file is left indented, and code is executed top to bottom, left to right
14:28:44 Python has a built-in function called 'int' to convert a string to an integer.
14:32:35 Python has solutions for floating point precision issues and integer overflow
14:34:31 Comparing values in C and Python
14:38:26 Explaining the usage of single quotes and double quotes in Python
14:40:17 In Python, you can use the 'in' keyword to search a list and it will return True if the value is found and False if not.
14:44:12 Python strings have built-in methods that can modify their values.
14:46:16 Strings in Python are immutable and cannot be changed directly
14:49:51 Implementing functions in Python using the 'def' keyword
14:51:34 Troubleshooting Python name errors
14:55:15 Code execution order in Python
14:57:04 Introducing Python's functionality to print a vertical column of bricks in the Mario game
Bro’s a saint
Yup ,I agree
10 years ago, I left a security job where i slept my 12 hour shifts. I'd wake & attend an intensive plumbing school for nearly a year. Started a plumbing business. Enjoy teaching, so posted youtube videos & got monetised, but it isn't the same as teaching irl. For some reason, I've always wanted to be a programmer. I became a plumber for money, but I've always wanted to create and have countless ideas that I've seen others create decades after. I'm nearly 40, but i want to do this just so i don't regret it. I could even create a new YT channel to see if a Plumber could become a programmer 😅 i also just hate getting older and the pain of manual labour it's tiring, i want a inside sit down job 😢
good luck man, i am 29 old completely lost in life with no support and i started doing this video and at the same time about to finish coursera google cybersecurity course, maybe i will be able to finally do something with what i am trying to learn
Cheer up friend, hope you have a nice day❤
for me
10:00:08 Pointer arithmetic allows performing operations on pointers to manipulate memory addresses.
10:03:24 The power and danger of C programming and solving various segfault errors
10:05:08 Printing substrings of a string using printf
10:08:45 The program compares two strings and determines if they are the same or different.
10:10:30 Comparing strings in C involves comparing the memory addresses
10:14:06 String comparison in programming is special and treated differently from other data types.
10:16:13 Explains the concept of address and how it is used in comparing characters of strings.
10:19:55 Line 12 capitalizes the first letter of T
10:21:48 Python and other languages have benefits
10:25:30 Managing memory using malloc and free
10:27:05 Copying a string to another variable using pointers and memory allocation.
10:30:47 Iterating over and copying the characters in a string.
10:32:48 Avoid calling a function repeatedly inside your condition in a loop.
10:36:31 Use null to signal errors in coding
10:38:13 Always free memory allocated using malloc
10:41:46 Introducing the program valgrind to find memory errors in code execution
10:43:33 Bug in memory allocation and writing
10:47:07 Not initializing values in an array in C can lead to unpredictable output.
10:48:50 Garbage values in computer memory can cause errors in programs.
10:52:19 Understanding pointers and how they work
10:54:21 Manipulating memory with pointers.
10:58:09 Swapping two values using a temporary variable
10:59:51 Passing arguments by value in C does not allow swapping of values
11:03:25 Memory management in computer programs
11:05:07 Understanding memory allocation and deallocation in programs.
11:08:37 You can change the value of a variable by following memory addresses and swapping the values.
11:10:14 Passing addresses instead of integers for swap function
11:13:46 Buffer overflows can occur due to logical bugs in code
11:15:28 scanf can change the value of X by reference using Ampersand
11:19:08 Not initializing a pointer can lead to reading/writing into garbage memory locations.
11:20:59 Handling variable length inputs in C programming.
11:24:09 Introduction to reading and writing files in C
11:27:11 This week we will focus on data structures and abstract data types.
11:31:08 FIFO and LIFO are two different ways of adding and removing items from a queue or stack.
11:32:47 Storing emails and sweaters using a stack
11:36:29 The main limitation of this design is that it can only hold a finite number of items.
11:38:16 Jack learns to use a queue to manage his clothes
11:41:49 Moving a string to a new chunk of memory to add a number
11:43:27 Growing the array in this way can lead to inefficiency
11:47:07 Allocating memory dynamically for an array in C programming.
11:48:53 Using a pointer instead of an array for a list increases dynamism.
11:52:40 Copying bytes from old array to new array, allocating and freeing memory in C programming
11:54:31 Implementing inefficient allocation and population of a new array with a fourth value.
11:58:35 The function realloc simplifies the process of reallocating memory in C.
12:00:30 The use of realloc in C allows for dynamic memory allocation and copying without the need for explicit for loops.
12:04:32 Arrays and memory manipulation in computer science
12:06:20 Struct in C allows us to create our own structure in memory.
12:09:50 Creating a linked list with random memory positions
12:11:47 Use a sentinel value as a special signal for an invalid address
12:15:35 To enable backward traversal in a linked list, we can use a doubly linked list or make the list circular.
12:17:25 Using pointers in C to create self-referential structures
12:21:11 Using linked lists in place of arrays increases memory usage and eliminates the ability to index elements.
12:22:54 Binary search algorithm cannot be used when the data is not sequentially stored in memory.
12:26:10 Executing the provided code assigns a valid pointer to variable n.
12:27:53 Syntax for dereferencing a pointer and accessing a structure using arrow notation
12:31:22 Memory leak due to orphaned node
12:33:17 Implementing a stack using a linked list
12:36:52 Implementing a linked list of size zero and taking command line arguments
12:38:51 Converting command line arguments to integers using atoi.
12:42:28 Printing each number in a linked list
12:44:14 Iterating over a linked list using pointers and the null value
12:48:06 To avoid segmentation faults, use a temporary pointer for swapping and freeing memory.
12:49:54 Understanding the usage of while loops and for loops in iterating over nodes in a linked list.
12:53:23 Appending values at the end of a linked list increases the running time to O(n).
12:55:02 Maintaining a sorted list in a linked list
12:58:31 Binary search trees are structured like family trees and have special properties for binary search.
13:00:24 Using a two-dimensional approach for array layout and introducing nodes and pointers to connect them
13:03:56 Implementing binary search using a two-dimensional structure
13:05:45 Recursion is a beautiful technique for dealing with two-dimensional structures.
13:09:21 Not necessary to have pointers in both directions, but it can improve efficiency.
13:11:10 Implementing a binary search tree without balancing can result in an unbalanced tree with a height of N instead of log base 2 of N
13:14:39 Hashing is a final building block to achieve constant time lookup.
13:16:26 Sorting a deck of cards using bucketization and hashing.
13:20:16 Using linked lists improves the efficiency of contact lookup in a contact card representation
13:22:07 Hash tables offer efficient search time in constant time
13:25:49 Representation of nodes in the tree
13:27:35 Hash tables allow for constant time indexing and searching.
13:31:32 Tries are a data structure that combines aspects of arrays and hash tables.
13:33:21 Finding someone in a trie data structure takes a constant number of steps, regardless of the number of names in the data structure.
13:36:58 The try data structure is used to efficiently store and retrieve data.
13:39:00 Data structures are everywhere in the real world
13:44:03 Transition from Scratch to Python
13:45:46 Python eliminates the need for compiling code and allows program to be interpreted directly
13:49:05 Running python hello.py will print 'hello world' on the terminal.
13:50:50 In Python, the syntax for declaring variables and printing has changed compared to C.
13:54:22 Python supports format strings or F strings for automatic value substitution.
13:56:16 Python printing with curly braces
13:59:52 Implementing a spell checker in Python instead of C
14:01:38 Using a set in Python can be used as a dictionary for spellchecking words.
14:05:15 The C version of spell checker compiled faster than the Python version.
14:07:10 Using a more modern and user-friendly language like Python comes with a trade-off of potential performance loss.
14:10:46 Face recognition software can analyze and detect multiple faces, but can be trained to recognize specific faces.
14:12:44 Software can identify a human face by analyzing patterns of pixels.
14:16:21 Python has simplified the syntax for conditionals and introduced the 'elif' keyword
14:18:07 In Python, you can create a variable and set its initial value without specifying the type or using a semicolon.
14:21:33 Using the range function in Python is more efficient than hardcoding a list of numbers.
14:23:16 Infinite loops can be implemented using a 'while true' statement in C and a 'while True' statement in Python.
14:26:49 The default indentation in a Python file is left indented, and code is executed top to bottom, left to right
14:28:44 Python has a built-in function called 'int' to convert a string to an integer.
14:32:35 Python has solutions for floating point precision issues and integer overflow
14:34:31 Comparing values in C and Python
14:38:26 Explaining the usage of single quotes and double quotes in Python
14:40:17 In Python, you can use the 'in' keyword to search a list and it will return True if the value is found and False if not.
14:44:12 Python strings have built-in methods that can modify their values.
14:46:16 Strings in Python are immutable and cannot be changed directly
14:49:51 Implementing functions in Python using the 'def' keyword
14:51:34 Troubleshooting Python name errors
14:55:15 Code execution order in Python
14:57:04 Introducing Python's functionality to print a vertical column of bricks in the Mario game
This large comment and only 29 likes? leme' fix that...
Appreciate your effort.
Appreciate your effort.
@@titilolaajayi6072 he didnt write that, AI did...
I’m crying right now because I was denied a college education after being shot and disabled and was not able to afford to get the education of such caliber. David is an amazing professor and I am grateful to be able to watch this awesome CS50 course.
For what it's worth, I don't know you and you don't know me, but just from one stranger to another somewhere out there even though I have no idea where you're from or anything about your life, here's a general tip:
I can't say how much information you can learn for free out there, and I wish I could just make you believe me somehow, but you can honestly find ANY information that you could get ina college/university simply on UA-cam. This video itself is just sheer proof of that.
So if you think this is good, just imagine what you would be able to do (learn) if you could just start searching correctly on that search bar above all this, and on Google.
A very smart programmer/hacker once said: "The only way to learn programming is to not only watch tutorials, but just pick a project and start a project and start making it. There is no other way to learn how to code."
I know he said something like that, maybe not exactly but the point is still the same.
You got this man.
Sorry, I just felt like I couldn't just be another person just scrolling past and ignore your comment as it touched my heart. Good luck dude.
ha caliber.
why would colleges reject disabled people tho?
@sensor american problems
@sensorAnd for homelessness, medical bankruptcy, and increased risk of getting shot to death while out shopping. I'd remain in Europe if I was you. Good luck!
This guy is absolutely amazing. I have always found coding fascinating but very complicated. He explains from the extremely bare basics and builds. And I'm absorbing it like a sponge. Thank you so much, I'll use this knowledge when I start coding for college
Really shows how important it is to have good lecturers for learning. Whoever made the subtitles deserves love and support.
Is it the full whole computer science course
Yeah UA-cam auto-subtitle deserves love and support🤣🤣🤣
@@VladdyHell yeah i know 😂, free likes dude!
He speaks very fast so I had to adjust the speed at 0.75
The subtitles and the transcript are on the website
He broke things down and explained topics so well. I'm thankful that this was provided for free and thankful to those who uploaded this moment in history.
every computer science professor around the world should watch this. amazing lecture!
Goodness yes !!my computer science class was a snooze fest at 8am ! University of Miami was more about teaching us how to turn it on and cop c copy v and the class / professor was as interesting as watching grass grow!! If I knew professors looked like this dude I would have attended Harvard ! What a gift this is!!
*_😅_*
This is available free and it's a blessing. Period.
I love professors like this! I get it now. This is why Harvard students are so successful. They're enlightened all day, every day with amazing leaders. Lucky ducks.
A huge huge huge respect to you guys! Wow!
Thanks for compiling all the information under one place
Sehr Gute Videos Danke
I developed a love of computers when I was in high school. Unfortunately, when I graduated, I didn't have support to further my education, so I decided to listen to tutorials and practice on my computer. However, I'm enrolling in an online course that will help me develop and enhance my software engineering skills. I always watch this guy's video every single day.
The professor makes the course so nice and enjoyable...the students are blessed.
(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
Someone beat you to it 😅
Would've appreciated if they'd put Timestamps of concepts inside those Lectures😂😭@@greywolf9783
Just finished the final problem set, compared to a year ago, this class alone has given me not just confidence in my programming skills, but confidence as a person. This is THE best course for free learning anywhere.
I'm only 7 hours in and so far it has been one of the most enjoyable and easy to understand courses I have seen.
The confidence in yourself part is real and a BIG DEAL.
can I just say that he is probably the first professor/teacher that has my interest in learning throughout this lecture. loved it
The professor makes the course so nice and enjoyable...the students are blessed.. every computer science professor around the world should watch this. amazing lecture!.
Day1: 41:57 Day 2: 1:45:00 Day 3: 2:09:00 Day 4: 2:43:00
Day 5: 3:45:34 Day6: 4:11:23 Day7: 4:35:22 Day8: 7:00:22
Day9: 7:18:02 8:15:00 8:27:18 9:30:12 10:24:38 10:55:00 11:40:00 13:56:30
why have you stopped updating?
Never too late to restart m8
Where are you 😢
Thank you for actually showing what you are doing. I hate my university so much because all my professors rely on powerpoint slides and it makes my head hurt. This is so easy and enjoyable to follow.
Omg yes, they just read the slides or even skip it and say you can look at it at home. Well why do i even pay then if i can just find these slides on github and use my time efficiently. Like i waste my time at school getting headaches and then basically have to self teach. This video is like everything.
Grass is greener moment
My professor for python had us copy and paste code from his GitHub lol
Is this a full cse course? Or just introductions of some classes?
@@SadiaYasmin-e9x it's 50. all courses in uni start at 101, 102, etc. so this isn't a full real course.
and frankly he leaves out so much that he misleads you without teaching you.
better off looking for python videos on YT
I pause the video sometimes so he can take a break
We need more people like you. I always make sure to thank my AI assistant.
😂😊
😂😂😂😂
This man’s neural activity is impressive!
The human 🧠 is truly a mystifying adventure that’s potential has yet to be tapped.
Awe that's so sweet of you !
I used to love to code and I had a real good opportunity to get into coding early on in my life, but i took all the wrong steps. and now am 22. working in Mcdonalds.
well time for change is no or never. am going to grind the living crap out of this and everything available online and dig myself out of this deep whole. I hope everyone watching good luck and may you also find you path in life
(Copying progress over from old video to new)
Day one: 2:18:00
Day two: 3:42:44
Day three (part 1): 3:58:00
Day three (part 2): 4:13:23
Day four: completed the challenging Mario problem!
Day five: 4:41:00
Day six: 5:53:00
Day seven to twelve: sleep away summer camp, no progress made
Day thirteen: 6:20:43
Day fourteen to eighteen: campingggg trip!
Day nineteen: completed scrabble :D
Day twenty: made wordle :)
Day twenty-one: 6:41:52
Day twenty-two: 7:09:42
idk even know: 7:35:39
nice: 8:24:57
in english: 8:37:55
10000 years later: Finished Tideman >:)
now: 9:23:17
in english again: 9:53:37
more progress: 10:39:28
on the way to state: 10:59:33
what a lovely fall: 11:26:33
I dunno: 11:56:22
asdas: 12:13:19
I’m bed: 12:53:30
zoopy: 13:19:12
finished data structure lecture: 13:42:44
finished speller!
more progress: 13:55:26
cs50 in class: 15:30:28
my gf broke up with me :(
man its cold outside: 16:54:18
cold couple of days: 17:33:38
haven't had school in a week, crazy storm: 17:51:14
finished SQL lecture: 18:18:30
first cemester in school over: 19:07:18
new stuffs pretty cool: 20:23:33
ok: 20:58:14
(I haven't been spending as much time on coding as I have been in the past few weeks. Hard to find time with all the running/biking that I am doing for xc season. Will hopefully finish this before school starts though!)
Thank you for the timestamps. You deserve praise, sir.
This comment should be pinned to the top.
Did ya finish :)
@@Chris-qb8kg lol not yet, but i'm very close
you spiraled
Just finished Week O: Scratch which lasted about 2 hours. My temporary plan is to do a lecture a day (10 lectures total), then review the notes for that lecture twice then do any of the examples given in the lecture, then the following day do the next lecture and repeat.
I'm 43 now and going back to school in 2 months to finish the last 5 classes needed for my Computer Science Bachelor's degree (lol, better late than never) at UMGC and have Python as my first coding language, so I needed a refresher to CS and an introduction to Python. I then plan to go for a Master's in either Health Informatics or Cyber security.
On to Lecture 1 and notes review tomorrow an so on... Thanks for the awesome video @David Milan
Very impressive!! Hope it all works out for you! I’m a senior in HS just trying to grab some concepts of CS and all that. I plan to do a finance/accounting major and CS minor in college next year
@@Luke-ft2vlI am in finance. There is very little that AI won't be replacing here in just a few years. Especially in accounting. Do what makes you happy but even the things I am able to do with AI make most of my coworkers obsolete. Once Microsoft co-pilot explodes...man. a sincere best of luck to you man. You seem cool
Just started how is your progress going?
😂anyway do really hope u make it
We are so proud of you❤
I just played this video at 0.25x speed 😢 so that professor don't get stressed out much
This is what education is. I really loved the atmosphere, the class, the instructor, all awesome.
🎯 Key Takeaways for quick navigation:
00:00 🎓 *Introduction to CS50*
16:44 🎉 *CS50 Events and Community Engagement*
17:27 🔍 *Introduction to Problem Solving*
26:30 🎭 *Binary Representation Demonstration*
34:52 🧠 *ASCII representation of letters*
37:07 🌐 *Unicode and character representation*
40:31 🎨 *Unicode expansion and use of multiple bytes*
46:23 🌈 *Advanced Emoji representation*
53:01 🎥 *Basics of Video Representation*
56:35 📦 *Abstraction and Algorithms*
57:48 📖 *Searching Algorithms - Phone Book Example*
01:05:03 📝 *Pseudocode and Programming Concepts*
01:08:43 🚀 *Introduction to Scratch programming*
01:14:54 🖥️ *Writing the first Scratch program*
01:20:56 🤖 *Interactive Scratch program with user input*
01:24:52 🚀 *Scratch Programming Basics*
01:27:10 🐱 *Scratch Sounds and Duplicate Blocks*
01:28:39 🔄 *Refactoring with Loops*
01:31:27 🧩 *Creating Custom Blocks*
01:39:32 📷 *Video Sensing for Interaction*
01:43:27 🕹️ *Implementation Details of Scratch Game*
01:45:56 🔄 *Iterative Development Process*
02:06:32 🎮 *Programming Game Features*
02:11:12 🛠️ *Evaluating Code Quality*
02:19:25 🛠️ *Compiling and running C programs in VS Code*
02:23:48 🎨 *Syntax highlighting and understanding C code structure*
02:35:48 📚 *Including Header Files in C Programs*
02:41:49 📚 *Utilizing cs50.h Library*
02:54:19 🎉 *Enhancing `printf`*
02:57:19 🧩 *Data Types in C*
02:58:45 ⏸️ *Break Announcement*
03:02:55 🤔 *Simplifying Conditionals*
03:07:08 🔄 *Logical Operations and Conditions in C*
03:13:41 🤝 *Agreement System in C*
03:19:47 ♦️ *Improving Case Handling in C*
03:22:23 🔁 *Introducing Loops in C*
03:38:48 🔁 *Infinite Loop in C (Forever Block)*
03:41:06 ⚙️ *Handling Infinite Loops and Using Ctrl+C*
03:43:41 📡 *Basic Command Line Commands in Linux*
03:50:56 🕹️ *Solving General Programming Problems in C*
03:56:30 🧱 *Printing 3x3 Grids in C*
03:57:09 🔄 *Loop structure and variable naming*
04:08:24 📝 *Coding Style and Comments*
04:10:38 🧩 *Abstraction and Pseudocode*
04:13:35 📝 *Functions and Abstractions*
04:20:31 🕹️ *Integer Overflow and Longs*
04:31:08 🧮 *Floating Point Precision in C*
04:36:05 🌐 *Goals of CS50 - Understanding Computing Bottom-Up*
04:39:53 🔐 *Introduction to Cryptography and Cipher Text*
04:43:50 🖥️ *Manual Compilation with Clang and Custom Output*
04:47:16 🔄 *Compiling Code with Dynamic Input*
04:49:51 🛠️ *Compilation Process Overview*
05:08:22 🌐 *Compilation Steps Breakdown*
05:14:28 🐜 *Origin of the Term "Bug"*
05:24:00 🛠️ *Debugging with Debug50*
05:38:24 📊 *Data Types and Representation*
05:49:45 🔄 *Improving Code Design with Arrays*
05:57:26 🧮 *Function "average" Implementation:*
06:00:11 🔄 *Improving Main Function:*
06:06:20 📏 *Array Size in C:*
06:07:31 🎭 *Passing Array Length as a Parameter:*
06:10:55 📝 *Introduction to Strings in C:*
06:20:41 🧩 *Working with Arrays of Strings*
06:32:54 🧮 *Char manipulation and ASCII conversion*
06:35:27 📚 *Leveraging ctype.h Library for Case Conversion*
06:49:06 🚪 *Exit Status in C*
06:50:42 🔍 *Understanding C Programming*
06:59:00 🛡️ *Using Exit Status in C Programs*
07:09:47 🔄 *Array Introduction and Pseudo Code*
07:13:18 🧩 *Binary Search Demonstration*
07:27:38 📊 *Examples of Big Theta*
07:44:02 📚 *Introduction to the Phone Book Example*
07:55:18 🧱 *Implementation of a Struct in the Phone Book*
07:58:27 🔄 *Break and Recap*
07:59:11 🤔 *Considerations for Sorting Data*
08:01:51 🌐 *In-Class Sorting Activity*
08:06:51 🔄 *Bubble Sort Overview*
08:11:38 📊 *Analysis: Selection Sort*
08:18:22 📊 *Analysis: Bubble Sort*
08:20:01 🔄 *Bubble Sort Pseudo Code Analysis*
08:23:39 🌐 *Visualization of Sorting Algorithms*
08:28:56 🔄 *Recursive Elements in Algorithms*
08:36:38 🔄 *Recursive call and Base Case*
08:38:41 🔄 *Recursive Draw Function*
08:53:14 🔄 *Merge Sort Algorithm Explanation*
08:54:48 🧠 *Divide and Conquer in Merge Sort*
08:55:55 📉 *Time Complexity of Merge Sort*
08:58:01 🤔 *Space Complexity Considerations in Merge Sort*
08:58:15 🔄 *Tradeoffs in Sorting Algorithms*
09:00:16 🎓 *Conclusion of CS50 Course*
09:12:36 🧮 *Hexadecimal Representation*
09:14:40 🤔 *Understanding Hexadecimal*
09:15:46 🌐 *Hexadecimal in Computer Systems*
09:17:24 🕵️ *Hexadecimal in Memory Addresses*
09:19:28 🔄 *Exploring Memory with Pointers*
09:27:43 ⚙️ *Using Pointers*
09:29:32 🚀 *Pointers in C*
09:30:42 🔍 *Pointers and Data Types*
09:34:18 📬 *Memory Addresses Analogy*
09:35:28 🗺️ *Pointers Pointing at Values*
09:36:45 🔄 *Arrays vs. Pointers*
09:39:18 🧵 *Strings as Pointers*
09:42:25 🤯 *Unveiling String's True Nature*
09:49:34 📝 *Working with Strings and Addresses in C*
09:53:42 🤔 *Why `%s` for Strings in `printf`*
10:04:09 📜 *Exploring Strings with Pointer Arithmetic*
10:06:39 🔄 *Utilizing Pointer Arithmetic for Strings*
10:10:03 🧐 *String Comparison with `strcmp`*
10:17:50 🕵️♂️ *Examining Memory Addresses*
10:20:20 🔄 *String Copying Basics*
10:34:22 🔄 *Leveraging Standard Library Functions*
10:37:23 🧠 *Memory Management in C*
10:39:34 🗣️ *Understanding `free` in C*
10:43:18 🛠️ *Using Valgrind for Memory Debugging*
10:49:03 🚫 *Avoiding Garbage Values*
10:50:38 🧨 *Pitfalls with Pointers*
10:54:04 🧠 *Understanding pointer assignment*
10:58:13 🔄 *Swapping values using a temporary variable*
11:01:26 💡 *Understanding memory segments in C*
11:10:37 🔄 *Pointers and Ampersands in C*
11:14:24 💡 *User Input Handling in C*
11:28:35 🧠 *Introduction to Abstract Data Types*
11:38:22 🎭 *A Creative Explanation of Queues and Stacks*
11:40:28 🧱 *Implementing Queues and Stacks with Arrays*
11:43:04 🔄 *Dynamic Solutions for Resizing Arrays*
11:46:12 🖥️ *Transition to Dynamic Memory Allocation*
11:49:50 🔄 *Dynamic Memory Allocation in Action*
11:53:15 🔄 *Realloc Function for Array Expansion*
11:59:50 ❓ *Questions and Clarifications*
12:03:04 🔄 *Linked Lists Introduction*
12:06:16 🧠 *Building Data Structures with Memory Allocation*
12:07:35 🔗 *Linked List Implementation in Code*
12:24:03 📝 *Translating Concepts to Code: Building a Linked List*
12:54:05 🔄 *Linked List Insertion Overview*
12:55:15 🔄 *Inserting into a Sorted Linked List*
12:58:12 🌳 *Introduction to Binary Search Trees*
13:11:00 🌲 *Hash Tables and Binary Search Trees*
13:21:16 ⚖️ *Trade-offs in Hash Tables*
13:26:42 📦 *Implementation of Hash Tables*
13:28:17 📚 *Memory Management in Arrays*
13:30:54 🌲 *Introduction to Tries*
13:54:08 🧾 *Introduction to f-strings for formatted strings*
14:04:21 🧠 *Trade-offs in Programming Languages*
14:14:06 ⌨️ *CS50 Library in Python*
14:15:29 🔄 *Python Conditionals*
14:18:06 🔢 *Python Variables and Incrementing*
14:19:54 🔁 *Python Loops*
14:21:02 📚 *Efficient List Generation with Python's Range*
14:23:22 🔄 *Infinite Loops in Python*
14:26:41 🔧 *Removing Training Wheels in Python*
14:39:07 📚 *Lists and 'in' Keyword*
14:43:00 🐍 *Object-Oriented Programming in Python*
14:49:29 🔁 *Introduction to Loops in Python*
14:57:13 🔄 *Introduction to loops in Python*
15:00:50 🔄 *Pythonic approach to input validation*
15:11:18 📜 *Printing horizontal characters in Python*
15:12:00 💻 *Printing in Python with Named Arguments*
15:15:02 🔄 *Using the Star Operator for String Multiplication*
15:18:02 📊 *Working with Lists in Python*
15:26:12 🎛️ *Command Line Arguments with sys.argv*
15:28:46 🔄 *Iterating Over Command Line Arguments*
15:31:18 🚪 *Exiting Programs and Error Handling*
15:36:05 🔄 *Pythonic Way of Searching in Lists*
15:43:41 🔄 *String Comparison in Python*
15:48:20 📂 *Working with CSV Files in Python*
16:00:04 📊 *Introduction to SQL*
16:05:08 🐍 *Working with CSV Files in Python*
16:36:18 🔄 *SQL Commands: Create Table and Basic Structure*
16:46:17 📊 *Using COUNT() and DISTINCT*
16:54:46 🔄 *Inserting Data into SQL Table*
17:00:15 🚫 *SQL DELETE Command and its Destructive Nature*
17:06:04 🗄️ *Overview of IMDb Database Schema and Relationships*
17:11:28 🔄 *One-to-Many and Many-to-Many Relationships in Databases*
17:14:29 🛢️ *Understanding Database Constraints*
17:27:44 👤 *Retrieving Data for a Specific Person*
17:31:50 🎬 *Introduction to Dynamic Queries*
17:33:15 🔄 *Joining Tables in SQL*
17:37:18 ⚖️ *Combining Data: Joining Shows and Ratings*
17:38:27 🌐 *Advanced Queries and Problem Solving*
17:49:04 🕵️ *Database Indexing Basics*
17:54:45 📊 *Retrieving Data from SQL Database in Python*
18:02:38 🏁 *Challenges in Handling Race Conditions in SQL*
18:11:15 🔒 *Preventing SQL Injection*
18:26:47 🔄 *Data Routing with TCP/IP*
18:34:11 📧 *TCP (Transmission Control Protocol) and Port Numbers*
18:39:21 🔍 *DNS (Domain Name System)*
18:43:02 🌐 *HTTP (Hypertext Transfer Protocol)*
18:48:48 📡 *URL Scheme or Protocol*
19:02:26 🌐 *HTTP Basics and Status Codes*
19:05:14 🎭 *Fun with HTTP: Yale Prank Story*
19:06:52 🕸️ *Transition to Web Development*
19:26:15 📜 *Working with Paragraphs*
19:31:35 📚 *HTML Headings*
19:35:16 📊 *HTML Tables*
19:36:49 🖼️ *Image Tag in HTML*
19:51:56 🔍 *Creating a Search Form in HTML*
Thank you so much
Please pin this comment
You're an ANGEL, tytyty
This is by far one of the best educational sessions I've ever witnessed. this guy could literally teach any age to any level. Very well presented. A HUGE thankyou
Progress - Day 1 31:10
Day 2 - 1:10:20
Day 3 - 2:38:28
Day 4 - 2:58:48
you stopped?
@koushikvenkata9272 Hey I am curious to know if you are alive?😀
why have you stopped?
Bro couldn't make it past 4 days 💔
come back!
My Progress :
Day 1 : 40:27 ...
Day 2 : 1:25:30 ...
Day 3 : 1:53:00...
Day 4 : 2:10:00...
Day 5 : 3:01:19...
Day 6 : 4:24:00...
Day 7 : 5:20:38...
Day 8 : 6:54:00...
Day 9 : 7:03:00...
Day 10 : 7:42:36...
Day 11 : 8:17:00...
Day 12 : 10:00:00...
Day 13 : 10:46:00...
Day 14 : 12:19:00...
Day 15 : 13:54:00...
Day 16 : 14:50:00...
Day 17 : 15:59:00...
alr
What a teacher! Just imagine having this quality of teachers everywhere. Master class.
On Coke?
Does it matter?@@AJ-kg1hc
11/18: 0:27:00
11/19 1:10:26
11/22 1:39:10
11/28 3:50:54
Ok but this is probably the best explanation of SQL I've seen on the internet. Other people try to make it more complicated than it is.
So true why do people keep doing that?
@@anastassiaedel3974 intellectual posturing or gatekeeping
Was just legit watching the previous version and saw this upload 😅 This is awesome, thank you so much for making this available for free!
I’m “learning” programming by myself. Having someone explain it like this make it so much easier
CS50 has helped me a lot. Thank you for compiling this and also thanks to David Malan for providing these useful lectures to the public!
Excellent! Those are some of the most high quality courses out there, thanks
// 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 3x3 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
Salute to you, guys. You are real heroes for novice and expert programmers. ❤️
I took this course 3 (2 and a half to be precise) times on Edx in the past 5 years and I loved it everytime. They keep changing, adding, adjusting. Every year you find something new, something different.
Why take it so many times though?
@@reinertgregal1130 The first time I didn't finish it. The second time, a couple of years later, I arrived very close to the end, I had one lesson left. The third time, last year, I arrived at the final exam.
Apart from the will to finish it completely, every time the course was different in some way. For example, now it uses a lot less C (like the first one I took it) and a lot more Python.
And a good refresher on the basic stuff, every tree years or so, is not a bad idea at my age.
@@reinertgregal1130 fun?
@@reinertgregal1130 it's not even a full credit course .. lol. it's 50 not 101
This professor can make 12 years old kid understand CS!
No wonder why students all around the world struggle in their colleges because now I understand that the professor is the key!
What a course!
Professor David Malan is a blessing for learning, he really knows the art of teaching complex conceptual ideas into easy to understand and grasp.
Thank you freecodecamp team for making this course available on UA-cam, really appreciate it!
Thank you and God bless you!
Perfect refreshed version, indeed pure masterclass
What's the difference between this and previous versions though? Aren't they all covering the same stuff and of the same quality?
5:34:00 For those that wonder why the jumping into the end of loop section, it's because the do..while loop just does a je/jne in assembly, which occurs before the end of the loop. Bit of a disconnect between visually debugging your code and the way it's expressed in assembly.
Is this a full cse course? Or just introductions of some classes?
⭐ 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
Let's see how long it takes..
Day 1✅ 3:44:12
Day 2✅4:36:21
+ Other c video
Day 3✅ decided to complete c (without cs50 lib) ch done in that video 4/10
Day 4 ✅ ch done in that video 8/10
thank god he has no mask on his face this time. he was literally suffocating in the previous video. and, strangely enough, I felt the lack of oxygen myself just by watching him. So happy there is this new version of the video
The man the myth the legend. Pure respect for you sir.
Started this course about 3 days ago completely new to computer science
I recently decided to start my journey in game development with unreal engine 5.3. I've always been afraid of learning to program. It seemed like this giant mountain of knowledge that I couldn't scale.
I'm 32 now. If I don't start now, it'll keep getting more difficult to learn. I'm watching through the entirety of this course to gain a fundamental understanding of computer science. It isn't strictly necessary to learn this material, especially with unreal's blueprint system (visual scripting), to develop video games. That said, I am already gaining a better understanding of how to break down problems in a way that makes sense to the computer.
Programming is so much like learning a second language. It teaches you to think in different ways: structure, syntax, etc. I am beyond grateful that this course is available for free on UA-cam. Thank you!!
It will be a huge help to you because not everything is perfectly solvable with blueprint and it helps to understand the basic workings of languages and how the computer handles input and data. Also regarding optimization it is helpful to know if you go through unnecessary steps and bloat.
Learning different paradigms can make you think of a smarter faster solution instead of a slow and easy one.
This lecturer is awesome
Have watched many of his online lectures - brilliant teacher!
At 4:30:36 he has a stack overflow and lists 3 synonims before picking the best fitting one. What a legend!
Thank you so much to everyone involved in making this resource free and easily accessible to everyone. What a talented teacher
This is one of the best uses of Technology on the Internet. Thank you for making this possible 🙏🏻
Two years ago, I went back to mathematical basics. It was a painful feeling wandering into a library, picking up a grade school math textbook, and getting sideways looks from other people. But now we're here.
And I am proud to keep going.
This is such an amazing opportunity made available to so many!
Thank you for making quality education free and easily accessible, like it's supposed to be.
I like how these guys casually upload 20+ hrs content for *FREE*
@@initializedis it the same one on edx? I doubt if you can access edx full content for free.
its not even their courses. Tbh all guides on this channel are only for people who are zero at IT and making big ass long vid about nothing
@@initialized As is the course on the EdX learning platform. Worth looking into.
@@romus007 Yes. It would be nice, if the lectures were broken up into individual videos. For me, I am learning the Python programming language, so my focus will be on that lecture, alone.
@@NBT2469I mean the whole cs50 lectures aren't only about Python itself, but also about other languages. Tbh as the beginner its actually way better to start from lower level language and move on Python much easier than from Python to any other language which requires all the stuff about self allocing/freeing memory or pointers and other this type of stuff
i am in the last semester for my Bachelor's in Science degree and Computer science has always intrigued me, so much that i self taught myself web development. Lets see if i can complete this whole video and get a deeper idea of things in computer science. It might take me a while since I am in the last semester for my degree but lets see how many days i can do it in(if someone wanna do it together reply your timestamps, lets do it together)
day1 => 35:10
day2 => 1:14:00
day3 => 1:25:00
day4=> 2:17:00
what happened?
@@ITSFarshidd c doesnot work on my pc
I can help you to run C on your pc @@himani1769
I love this harvard course can't get over it
Brilliant !! This is how education should be. Free and Open.
What a good professor. I am picking things up at an insanely fast pace.
Professor like him deserves to earn millions. No discuss.
This is probably the best explanation to date. If only he also explained for us local users how to use the cs50.h file locally.
Yes, I couldn't really execute the code but i did follow along
I've been reading The C Programming Language 2nd edition. Highly recommend it. @@notnicex6685
Download the library in your device then do "clang -o [name] code.c -lcs50"
.
So u just have to add -lcs50
4:51:11 here he explains
Heading to the final year of my bachelors degree and this video, is just a blessing. Just so engaging and intuitive. Everything's concise. It's the perfect video for recapitulating and summarizing everything I've learnt so far, just in a more fun, interesting and logical manner. There's not a single moment where I feel I have a doubt coz everything's just so well structured. Prof. David is super thorough in his explanations and so engaging in the way he delivers the lectures. To provide this for free is truly a gift to many.
This course seems to be amazing to anyone who wants to start in computer science. Thank you so much for bring this to the channel.
Is this a full cse course? Or just introductions of some classes?
@@SadiaYasmin-e9x I am not sure, but apparently looks very interesting for those who want to learn the basics of many aspects and topics from computer science.
This is absolutely beautiful for people who are interested in computer science this professor deserves a huge thank you for uploading this cause for free.
This man is so passionate about his subject, what a time to be alive where this is online for free
📌Detailed Timestamp
00:00:00 - Video Introduction
Week 0 : Scratch
00:01:26 - Course Introduction
00:16:41 - What is Computer Science?
00:18:08 - Data Repressentation (Binary Digits)
00:41:19 - Unicode
00:50:11 - File Types
00:56:06 - Algorithm
01:10:28 - Scratch
Week 1 : C
02:05:47 - Start
02:13:15 - Open VS Code
02:42:03 - printf w/variables
02:57:16 - Data type in C
2:59:12 - Conditionals
3:23:10 - Variables
3:26:28 - Loops
3:42:11 - Linux
3:50:50 - Mario
4:06:02 - do while loop
4:08:22 - comments
4:11:13 - Creating your own functions
4:17:46 - Operators
Week 2 : Arrays
4:35:19 - Week 2 Start
4:54:26 - Compiling process
5:10:08 - Decompiling
5:38:16 - 1st break
@@CookieSiweek 3???
This is so awesome. Im going through the entire couse using link in the description. I am doing the homework and practice problems and exams. I just wish I had someone to ask questions of and someone who could check my work. I just have to hope I'm doing it right. But I am not complaining. This is so awesome for being free. Thank you for posting this.
Go to the description. I think there's a link to join their community.
Use an ai. Paste in the code your stuck on and prompt Heeeeelp 🤩🤗
You can ask away on places like stack overflow and there'll be plenty of people who'll help you (or make fun of you) lol
i use chatgpt to check my work
There's a cs50 discord with channels to discuss each problem set
Day-1|
4:36:38
Day-2|
6:39:42|Completed Mario Problem
(2weeks later)
Day-16|
7:17:02 Starting Algorithm
I have no words to express my feeling. But this free course is awesome.❤❤❤
I can`t believe Harvard just dropped a 24h course for free for us
Great lecture! Amazing that lectures like these are available for free!
over 25 hours is crazy, especially when its a computer science course AND free
The starting made me cry
..... never got teachers like that... Became a huge fan of dr David.. i wish i could meet him one day.. and thank him with a small gift... He is just so amazing.. i always wanted to have knowledge like that and keep up the things in line. As a slow learner I always wanted someone like him with so relatable and simple examples that incorporates some meaningfulness. I wish I had him when i was 16. But 28 now.. This is a huge miss in my life.. Wish Dr david live a wonderful life.. and huge respect.. There is no age to have knowledge and i will keep on listening to his lectures.. please, i ask you to share his videos more and more so that i can have the skills like him.. also The energy he have is amazing thus is what we call teaching.. not even a single blink i had for like first 2 minutes when he started.. Just amazing..😊😊😊😊❤❤❤❤
Passion is a language and it spoke.
You can tell from this it's not the content itself that's different that top universities. It's the way it's taught. This is what makes it worth it to invest more into a good college if you have to choose between that and a cheap state school.
I am into cybersecurity deeply and also interested in CS specially from low level perspective and I found this course to be useful, will book mark it and get back to it in the near future. I sped it to see whats so good about the course and I'm at 10:44:19 the C and valgrind part where he debugs the C code. I have the basics of understanding computer arch, Python, C, scripting, Linux, networking and I should be able to crash the course! Inshallah!
I was 30 minutes in and it was too much information so I’m gonna come back to it later
@ I would just recommend for you to start watching and research what you gonna understand and maybe next time it will be easier to digest the information when you come back to it
This is gold, please never delete it.
It's a piece of art!
32:25
1:30:15
1:37:17
2:11:15
4:39:07
5:42:48
7:28:50
At 9:14:41 there is an amazingly hilarious cut where a student is asking a question and right as she is about to ask the question, it cuts to David saying "Good question!". Haha
I have completed the first 40 minutes of this lecture and I bet no other teacher explained about the concept of bits and bytes better than this !!!. Thank you for providing it for free!!
David is an amazing teacher. I took computer science a few courses at Oklahoma State University in 2010-2011 before I dropped out, but this CS50 is really helping me to understand some things I didn’t when I gave up all those years ago. I was doing some basic html for my current job and it really sparked my interest in learning coding again. It was my favorite class when I was in college, but physics and chemistry were so hard for me I decided computer engineering wasn’t for me. I wish I would’ve continued to learn things on my own for the past decade but I’ve learned that this is something I’m passionate about and am motivated to learn on my own through free code camp and then start with personal projects. All of the self taught developers have given me so much hope and motivation that I can do this if I put my mind to it and give myself time to understand it. Thank you, free code camp!
I will complete this course in the end of this month
I'm 16. I'm planning to learn to code. First day. Wish me luck.
wow, just the first 15-20 min, I learned more than all the research I been doing.