Data Structures - Computer Science Course for Beginners

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.ย. 2020
  • Learn all about Data Structures in this lecture-style course. You will learn what Data Structures are, how we measure a Data Structures efficiency, and then hop into talking about 12 of the most common Data Structures which will come up throughout your Computer Science journey.
    ✏️ Course created by Steven from NullPointer Exception. Check out their channel: / @nullpointerexception
    ⭐️ Script, Visuals, and Sources ⭐️
    🔗 Google Folder: tinyurl.com/yxr64y46
    ⭐️ Links as They Appear ⭐️
    🔗 An Introduction to Programming: • Introduction to Progra...
    🔗 Binary Search Explanation: • Introduction to Progra...
    🔗 Linear Search Explanation: • Introduction to Progra...
    🔗 Introduction to Object Oriented Programming: • An Introduction to Obj...
    🔗 Recursion Explanation: • Introduction to Progra...
    🔗 Article explaining Backed Data Structures: tinyurl.com/y3fs9lt7
    ⭐️ Course Contents ⭐️
    💻 (00:00) Introduction
    ⌨️ (01:06) Timestamps
    ⌨️ (01:23) Script and Visuals
    ⌨️ (01:34) References + Research
    ⌨️ (01:56) Questions
    ⌨️ (02:12) Shameless Plug
    ⌨️ (02:51) What are Data Structures?
    ⌨️ (04:36) Series Overview
    💻 (06:55) Measuring Efficiency with BigO Notation
    ⌨️ (09:45) Time Complexity Equations
    ⌨️ (11:13) The Meaning of BigO
    ⌨️ (12:42) Why BigO?
    ⌨️ (13:18) Quick Recap
    ⌨️ (14:27) Types of Time Complexity Equations
    ⌨️ (19:42) Final Note on Time Complexity Equations
    💻 (20:21) The Array
    ⌨️ (20:58) Array Basics
    ⌨️ (22:09) Array Names
    ⌨️ (22:59) Parallel Arrays
    ⌨️ (23:59) Array Types
    ⌨️ (24:30) Array Size
    ⌨️ (25:45) Creating Arrays
    ⌨️ (26:11) Populate-First Arrays
    ⌨️ (28:09) Populate-Later Arrays
    ⌨️ (30:22) Numerical Indexes
    ⌨️ (31:57) Replacing information in an Array
    ⌨️ (32:42) 2-Dimensional Arrays
    ⌨️ (35:01) Arrays as a Data Structure
    ⌨️ (42:21) Pros and Cons
    💻 (43:33) The ArrayList
    ⌨️ (44:42) Structure of the ArrayList
    ⌨️ (45:19) Initializing an ArrayList
    ⌨️ (47:34) ArrayList Functionality
    ⌨️ (49:30) ArrayList Methods
    ⌨️ (50:26) Add Method
    ⌨️ (53:57) Remove Method
    ⌨️ (55:33) Get Method
    ⌨️ (55:59) Set Method
    ⌨️ (56:57) Clear Method
    ⌨️ (57:30) toArray Method
    ⌨️ (59:00) ArrayList as a Data Structure
    ⌨️ (1:03:12) Comparing and Contrasting with Arrays
    💻 (1:05:02) The Stack
    ⌨️ (1:05:06) The Different types of Data Structures
    ⌨️ (1:05:51) Random Access Data Structures
    ⌨️ (1:06:10) Sequential Access Data Structures
    ⌨️ (1:07:36) Stack Basics
    ⌨️ (1:09:01) Common Stack Methods
    ⌨️ (1:09:45) Push Method
    ⌨️ (1:10:32) Pop Method
    ⌨️ (1:11:46) Peek Method
    ⌨️ (1:12:27) Contains Method
    ⌨️ (1:13:23) Time Complexity Equations
    ⌨️ (1:15:28) Uses for Stacks
    💻 (1:18:01) The Queue
    ⌨️ (1:18:51) Queue Basics
    ⌨️ (1:20:44) Common Queue Methods
    ⌨️ (1:21:13) Enqueue Method
    ⌨️ (1:22:20) Dequeue Method
    ⌨️ (1:23:08) Peek Method
    ⌨️ (1:24:15) Contains Method
    ⌨️ (1:25:05) Time Complexity Equations
    ⌨️ (1:27:05) Common Queue Uses
    💻 (1:28:16) The Linked List
    ⌨️ (1:31:37) LinkedList Visualization
    ⌨️ (1:33:55) Adding and Removing Information
    ⌨️ (1:41:28) Time Complexity Equations
    ⌨️ (1:44:26) Uses for LinkedLists
    💻 (1:47:19) The Doubly-LinkedList
    ⌨️ (1:48:44) Visualization
    ⌨️ (1:50:56) Adding and Removing Information
    ⌨️ (1:58:30) Time Complexity Equations
    ⌨️ (1:59:06) Uses of a Doubly-LinkedList
    💻 (2:00:21) The Dictionary
    ⌨️ (2:01:15) Dictionary Basics
    ⌨️ (2:02:00) Indexing Dictionaries
    ⌨️ (2:02:40) Dictionary Properties
    💻 (2:05:53) Hash Table Mini-Lesson
    ⌨️ (2:13:26) Time Complexity Equations
    💻 (2:16:39) Trees
    ⌨️ (2:16:55) Introduction to Hierarchical Data
    ⌨️ (2:18:54) Formal Background on the Tree
    ⌨️ (2:20:03) Tree Terminology and Visualization
    ⌨️ (2:25:08) Different types of Trees
    ⌨️ (2:28:07) Uses for the Tree
    💻 (2:29:00) Tries
    ⌨️ (2:29:50) Trie Basics
    ⌨️ (2:30:41) Trie Visualization
    ⌨️ (2:34:33) Flagging
    ⌨️ (2:35:15) Uses for Tries
    💻 (2:38:25) Heaps
    ⌨️ (2:38:51) Heap Basics
    ⌨️ (2:39:19) Min-Heaps
    ⌨️ (2:40:07) Max-Heaps
    ⌨️ (2:40:59) Building Heaps
    ⌨️ (2:44:20) Deleting from Heaps
    ⌨️ (2:46:00) Heap Implementations
    💻 (2:48:15) Graphs
    ⌨️ (2:49:25) Graph Basics
    ⌨️ (2:52:04) Directed vs. Undirected Graphs
    ⌨️ (2:53:45) Cyclic vs. Acyclic Graphs
    ⌨️ (2:55:04) Weighted Graphs
    ⌨️ (2:55:46) Types of Graphs
    💻 (2:58:20) Conclusion
    💻 (2:58:43) Shameless Plug
    --
    Learn to code for free and get a developer job: www.freecodecamp.org
    Read hundreds of articles on programming: freecodecamp.org/news

ความคิดเห็น • 644

  • @NullPointerException
    @NullPointerException 3 ปีที่แล้ว +768

    Thanks again for the opportunity! Absolute pleasure working with you guys on this
    -Steven (NPE)

    • @sadiqhussain9202
      @sadiqhussain9202 3 ปีที่แล้ว +27

      Your explanation is on another level.
      Thank you so much Steven

    • @Trazynn
      @Trazynn 3 ปีที่แล้ว +8

      You can actually write "With @NullPointer Exception
      " in the title and it becomes a clickable link. IN THE TITLE. New TH-cam feature.

    • @Jihed
      @Jihed 3 ปีที่แล้ว +10

      I liked your teaching style and your sense of humor, I encourage you to keep going

    • @fadidabari9618
      @fadidabari9618 3 ปีที่แล้ว +6

      Thanks for your great contribution 👍

    • @slmshady539
      @slmshady539 3 ปีที่แล้ว +5

      Amazing work, I am halfway through it and I am loving every minute of this video. I wanted to watch DS and Algo in JS but after getting the basics from your video, I don't think understanding it all specific to JS will be a tough task. Thanks, great work once again.

  • @DxDy777
    @DxDy777 3 ปีที่แล้ว +166

    20:23 Array
    43:32 ArrayList
    1:05:02 Stack
    1:18:03 Queue
    1:28:18 LinkedList
    1:47:20 Doubly-LinkedList
    2:00:22 Dictionaries
    2:16:40 Tree
    2:29:02 Tries
    2:38:27 Heaps
    2:48:17 Graphs

  • @renishparghi
    @renishparghi 3 ปีที่แล้ว +337

    This 3-hour video is my Entire 2 semester of my Computer Engineering!! such nicely composed Video. Definitely recommend for beginners! Cheers!

    • @lisafleming9603
      @lisafleming9603 3 ปีที่แล้ว +3

      Renish Parghi,
      Thank you for refreshing my learning zest!

    • @curiosdevcookie
      @curiosdevcookie 2 ปีที่แล้ว +1

      @Renish Parghi: that strikes me as kinda slow going! Would you mind telling me if you with hindsight say that it was overall worth it to go to University to study Computer Engineering? Or not needed anymore due to such expertly done content like that?
      My brain seems to enjoy theoretic subjects in CS the most and to think about Datastructures & Algorithms feels somehow noble and pur; most combinations are also just so beautiful…😄🤟🏽
      Being a university certified nerd turned out to be a one shot thing for me as I could find only one single tech-related Master („Digital Humanities“ ) … In at least all of Germany… that I’m allowed to study with my cultural BA in History.
      I’m open to and very grateful for anyone’s educated advice, in any direction: Is the professional side of going to university, i.e.the content, the ways of teaching, …and finally the graduation certificate… still worth it or even needed nowadays?

    • @renishparghi
      @renishparghi 2 ปีที่แล้ว +5

      @@curiosdevcookie Hello. . . I hope my detailed review could help any person who has the same dilemma as you!!
      I have a couple of reasons why I wrote that comment. . .
      1) When we say computer skills (that practiced and recognized in the market by any IT company) is greatly lacking in our curriculum!
      2) The topic we learn in college and what we do in the actual scenario - is way different!
      3) Time it took to complete some topic in one term, was equivalent to 30 minutes of this video!
      And I think, when it comes to learning such a technical topic, the pace is important!
      4) What I feel, the fees I paid for, for learning these skills. ARE FREELY AVAILABLE ON TH-cam! AND NOT JUST FREE, I WOULD SAY UPDATED TOO!
      -If I got a chance to not attend college and watch this channel and get updated skills and then apply for an internship or job, I would do that happily! (I am not diminishing the importance of college. that's whole another topic to discuss. )
      ​​​​​​
      I would happy to know your take on this point!!
      please let me know!! :)

    • @koushikroy6259
      @koushikroy6259 2 ปีที่แล้ว +7

      @@renishparghi I completely agree with you. I am an Electrical Engineer and currently working as a data scientist. Also, I'm involved in some projects in the Application of Deep Learning in Computer Vision Tasks. I feel like my entire undergraduate period was a complete waste of money and time. I wish I could get that back. For anyone trying to decide between a university degree or a self-learning path, at least in the software or data science industry the skill is the most important factor. How you gained it, is irrelevant.

    • @tomjerrytomjerry7154
      @tomjerrytomjerry7154 2 ปีที่แล้ว

      @@koushikroy6259 can l please know how to become a data scientist???? And also
      If you have idea about Learning data science
      .. please sayyy...
      And regarding skills i've a doubt...
      How to develop them??
      Please say 🙏

  • @kameshparashar
    @kameshparashar 3 ปีที่แล้ว +193

    This guy taught me C++, Python and now DS.
    He's truly amazing.

    • @patrickzhao9072
      @patrickzhao9072 3 ปีที่แล้ว +8

      + for free yooooo

    • @prabhuraam5271
      @prabhuraam5271 3 ปีที่แล้ว +1

      From where u learn c++ ..I want to learn

    • @houfame
      @houfame 3 ปีที่แล้ว +2

      C++!
      give the links to his videos?

    • @SayakKolay
      @SayakKolay 3 ปีที่แล้ว +1

      Can anyone post the links for the above mentioned C++, Python videos ?

    • @TheJerzke
      @TheJerzke 3 ปีที่แล้ว

      @@prabhuraam5271 kaikki blogit

  • @aminblm_german
    @aminblm_german 3 ปีที่แล้ว +255

    Timeline
    00:00 Introduction
    01:06 Timestamps
    01:23 Script and Visuals
    01:34 References + Research
    01:56 Questions
    02:12 Shameless Plug
    02:51 What are Data Structures?
    04:36 Series Overview
    06:55 Measuring Efficiency with BigO Notation
    09:45 Time Complexity Equations
    11:13 The Meaning of BigO
    12:42 Why BigO?
    13:18 Quick Recap
    14:27 Types of Time Complexity Equations
    19:42 Final Note on Time Complexity Equations
    20:21 The Array
    20:58 Array Basics
    22:09 Array Names
    22:59 Parallel Arrays
    23:59 Array Types
    24:30 Array Size
    25:45 Creating Arrays
    26:11 Populate-First Arrays
    28:09 Populate-Later Arrays
    30:22 Numerical Indexes
    31:57 Replacing information in an Array
    32:42 2-Dimensional Arrays
    35:01 Arrays as a Data Structure
    42:21 Pros and Cons
    43:33 The ArrayList
    44:42 Structure of the ArrayList
    45:19 Initializing an ArrayList
    47:34 ArrayList Functionality
    49:30 ArrayList Methods
    50:26 Add Method
    53:57 Remove Method
    55:33 Get Method
    55:59 Set Method
    56:57 Clear Method
    57:30 toArray Method
    59:00 ArrayList as a Data Structure
    1:03:12 Comparing and Contrasting with Arrays
    1:05:02 The Stack
    1:05:06 The Different types of Data Structures
    1:05:51 Random Access Data Structures
    1:06:10 Sequential Access Data Structures
    1:07:36 Stack Basics
    1:09:01 Common Stack Methods
    1:09:45 Push Method
    1:10:32 Pop Method
    1:11:46 Peek Method
    1:12:27 Contains Method
    1:13:23 Time Complexity Equations
    1:15:28 Uses for Stacks
    1:18:01 The Queue
    1:18:51 Queue Basics
    1:20:44 Common Queue Methods
    1:21:13 Enqueue Method
    1:22:20 Dequeue Method
    1:23:08 Peek Method
    1:24:15 Contains Method
    1:25:05 Time Complexity Equations
    1:27:05 Common Queue Uses
    1:28:16 The Linked List
    1:31:37 LinkedList Visualization
    1:33:55 Adding and Removing Information
    1:41:28 Time Complexity Equations
    1:44:26 Uses for LinkedLists
    1:47:19 The Doubly-LinkedList
    1:48:44 Visualization
    1:50:56 Adding and Removing Information
    1:58:30 Time Complexity Equations
    1:59:06 Uses of a Doubly-LinkedList
    2:00:21 The Dictionary
    2:01:15 Dictionary Basics
    2:02:00 Indexing Dictionaries
    2:02:40 Dictionary Properties
    2:05:53 Hash Table Mini-Lesson
    2:13:26 Time Complexity Equations
    2:16:39 Trees
    2:16:55 Introduction to Hierarchical Data
    2:18:54 Formal Background on the Tree
    2:20:03 Tree Terminology and Visualization
    2:25:08 Different types of Trees
    2:28:07 Uses for the Tree
    2:29:00 Tries
    2:29:50 Trie Basics
    2:30:41 Trie Visualization
    2:34:33 Flagging
    2:35:15 Uses for Tries
    2:38:25 Heaps
    2:38:51 Heap Basics
    2:39:19 Min-Heaps
    2:40:07 Max-Heaps
    2:40:59 Building Heaps
    2:44:20 Deleting from Heaps
    2:46:00 Heap Implementations
    2:48:15 Graphs
    2:49:25 Graph Basics
    2:52:04 Directed vs. Undirected Graphs
    2:53:45 Cyclic vs. Acyclic Graphs
    2:55:04 Weighted Graphs
    2:55:46 Types of Graphs
    2:58:20 Conclusion
    2:58:43 Shameless Plug

  • @NOCDIB
    @NOCDIB 3 ปีที่แล้ว +77

    I graduated with my BS in Computer Science 16 years ago and, I must say, this video is a good conceptual refresher.

    • @WiLDbEAsTGameSHere
      @WiLDbEAsTGameSHere 2 ปีที่แล้ว +1

      I am 16 years old and I have 3 years of programming exp. :p

    • @EOMMunaware
      @EOMMunaware 10 หลายเดือนก่อน +1

      ⁠@@WiLDbEAsTGameSHereProgrmming and computer science are not the same.
      Computer science involves much more theory, and heavier math than programming.

    • @WiLDbEAsTGameSHere
      @WiLDbEAsTGameSHere 10 หลายเดือนก่อน

      @@EOMMunaware well still I have 5 years of prior programming exp and am still 18 ;p [you can atleast think that I might know about these concept because I do]

  • @silentlessons4221
    @silentlessons4221 2 ปีที่แล้ว +9

    just 20 minutes in and I realise i struggled with this concept at university for an entire semester solely because of the way the lecturers taught. Many thanks indeed for this

  • @inponderland
    @inponderland 3 ปีที่แล้ว +8

    Steven, this video was awesome! You clearly put a lot of preparation into your lessons, and the slide visuals are top notch compared to most other CS educational videos. You definitely earned a subscriber

  • @shervinmokthari1251
    @shervinmokthari1251 3 ปีที่แล้ว +43

    35 mins in, i am absolutely engrossed & loving the concise breakdown. Much love!

    • @shervinmokthari1251
      @shervinmokthari1251 3 ปีที่แล้ว

      world class joke about the completely random words that filled up the stack! 1.10.00

  • @rishikumarjha3616
    @rishikumarjha3616 3 ปีที่แล้ว +583

    Free code camp is heaven for us ....who can't pay on some online courses

    • @Trazynn
      @Trazynn 3 ปีที่แล้ว +51

      Most paid online courses aren't that great either. Udemy and Skillshare have a lot of garbage. Pluralsight is decent, same level as FreeCodeCamp but with more niche tutorials.

    • @Saffeyah
      @Saffeyah 3 ปีที่แล้ว +8

      I think online courses are good to have someone 1on 1 evaluate your code and teach you technique

    • @BetaNegative
      @BetaNegative 3 ปีที่แล้ว +6

      Thank goodness! I almost subscribed to Coursera, but decided not to since some users had unauthorized charges or ungraded assignments. The aggressive monetization with the "take high-quality courses for free (TRIAL)" rhetoric was also a bad sign.

    • @ritalaurennoel4584
      @ritalaurennoel4584 3 ปีที่แล้ว +4

      @@BetaNegative Well, I will say it's hit or miss. I took the SQL specialization, which covered 4 courses. The first course was fantastic for me to learn basic SQL, and I absolutely thought it was worth it. However, the second course (AB testing) was so frustrating that I didn't finish it. I think it really depends on which teacher sets up the class, and that's why it's so inconsistent unfortunately.

    • @omirospavlou7607
      @omirospavlou7607 3 ปีที่แล้ว +3

      Well I mean you can pay 20 dollars for a couple of courses

  • @sumanthhegde5148
    @sumanthhegde5148 2 ปีที่แล้ว +3

    The effort that went into this, the quality of the content and the presentation... Just REMARKABLE! Looking forward to learn a lot more from you. Thank You!

  • @aparnamahalingam1595
    @aparnamahalingam1595 3 ปีที่แล้ว +8

    This was the first and ONLY video tutorial that I stuck around to watch in its ENTIRETY on data structures, because I genuinely needed the knowledge. Well done. Very awesome explanations; the use cases were especially splendid!

  • @joneswafula
    @joneswafula 2 ปีที่แล้ว +2

    Very engrossing. The video is broken down to very simple forms that makes it quite a joy to watch through. Thanks man, you're a great teacher! 😊

  • @kia808
    @kia808 ปีที่แล้ว +9

    Wow, it's the best teaching video, for a non computer science background student, you make it easy to understand everything.... Thank you so much 😊😊😊

  • @strictnonconformist7369
    @strictnonconformist7369 3 ปีที่แล้ว +2

    I’ve recommended this to my 40+ years-old friend that decided to learn to code in C++ (hell of a first language, like juggling flaming chainsaws while on a tightrope over a pool of hungry sharks) after my Comcast cable app on autoplay through this up while I was sleeping, and I woke up in the middle of it. I wish I had run into this decades ago when I first started!
    This video has clear oration at an appropriate pace, great graphics, and covers a lot of data structures and where they’re used in a logical manner. Some people do best with graphical teaching, some with words, this appears to cover a fair number of learning styles: now students just need to learn by doing, but at least this is a great (and FREE!) audiovisual lecture, that can easily be rewound to desired spots (and the description has a nice time reference table of contents) for what they want to review.

  • @treyquattro
    @treyquattro 3 ปีที่แล้ว +45

    34:25 - two-dimensional arrays are by default row, column. The programmer can address a 2- or n-dimensional array any way they want (so long as the indices are within bounds) but the convention is array[row][column] not [column][row]. Using anything other than [row][column] will confuse other programmers and probably lead to errors. [2][2] was a bad example because it will result in the same element being addressed. Elements [2][1] and [1][2] are different ("Marcus" and "Quinten" by conventional addressing).

    • @rezan6971
      @rezan6971 3 ปีที่แล้ว +1

      C family multidimensional arrays are row-major ordered

    • @smzain8990
      @smzain8990 3 ปีที่แล้ว +1

      Thank you...
      I also noticed it

    • @Rubenvaldo
      @Rubenvaldo 2 ปีที่แล้ว +2

      yeah, I noticed that too. And also when mentioning inserting/deleting elements to/from an ArrayList (53:22), the index comes before the object in both Java an C#, not the other way around, right? (C# : public virtual void Insert (int index, object? value), (Java : public void add(int index, E element));

    • @bytekast
      @bytekast ปีที่แล้ว

      Yes. This video has so many flaws, inaccuracies and incorrect info that I had to stop watching it midway. I couldn't stand it, the bad parts were more serious than the great ones.
      I can't understand why some Indians there are finding it good. Guess they are beginners who love free content. There's even a senior developer liking it, wtf?
      I guess we really are better off with a book, guys. Or with a site like WikiBooks or Wikipedia, which are very thorough and well-written, unlike those shitty "tutorial" sites.

  • @mayxx2105
    @mayxx2105 3 ปีที่แล้ว +4

    Thank you for this vid. It's actually a great timing coz I'll be taking data structures for my class probably next week. A great start for beginners like me. ❤

  • @jonahrivera7
    @jonahrivera7 3 ปีที่แล้ว +1

    This video is so underrated. This is exactly what I needed for my Data Structures class. Thank you my braddah you are the man!!!!

  • @timothymaruti2165
    @timothymaruti2165 2 ปีที่แล้ว +4

    This is really enlightening,one of the best way the data structures has been unpacked.good job

  • @amahlejenete8501
    @amahlejenete8501 3 ปีที่แล้ว

    Have not seen/found any other video better than this one on Data structures. A definite must watch!

  • @mthokozisimtolo8910
    @mthokozisimtolo8910 2 ปีที่แล้ว +2

    This content is just brilliant. Thank you for the concise and meaningful work!

  • @kannalix-amsmhss4369
    @kannalix-amsmhss4369 2 ปีที่แล้ว +14

    ⭐️ Course Contents ⭐️
    💻 (00:00) Introduction
    ⌨️ (01:06) Timestamps
    ⌨️ (01:23) Script and Visuals
    ⌨️ (01:34) References + Research
    ⌨️ (01:56) Questions
    ⌨️ (02:12) Shameless Plug
    ⌨️ (02:51) What are Data Structures?
    ⌨️ (04:36) Series Overview
    💻 (06:55) Measuring Efficiency with BigO Notation
    ⌨️ (09:45) Time Complexity Equations
    ⌨️ (11:13) The Meaning of BigO
    ⌨️ (12:42) Why BigO?
    ⌨️ (13:18) Quick Recap
    ⌨️ (14:27) Types of Time Complexity Equations
    ⌨️ (19:42) Final Note on Time Complexity Equations
    💻 (20:21) The Array
    ⌨️ (20:58) Array Basics
    ⌨️ (22:09) Array Names
    ⌨️ (22:59) Parallel Arrays
    ⌨️ (23:59) Array Types
    ⌨️ (24:30) Array Size
    ⌨️ (25:45) Creating Arrays
    ⌨️ (26:11) Populate-First Arrays
    ⌨️ (28:09) Populate-Later Arrays
    ⌨️ (30:22) Numerical Indexes
    ⌨️ (31:57) Replacing information in an Array
    ⌨️ (32:42) 2-Dimensional Arrays
    ⌨️ (35:01) Arrays as a Data Structure
    ⌨️ (42:21) Pros and Cons
    💻 (43:33) The ArrayList
    ⌨️ (44:42) Structure of the ArrayList
    ⌨️ (45:19) Initializing an ArrayList
    ⌨️ (47:34) ArrayList Functionality
    ⌨️ (49:30) ArrayList Methods
    ⌨️ (50:26) Add Method
    ⌨️ (53:57) Remove Method
    ⌨️ (55:33) Get Method
    ⌨️ (55:59) Set Method
    ⌨️ (56:57) Clear Method
    ⌨️ (57:30) toArray Method
    ⌨️ (59:00) ArrayList as a Data Structure
    ⌨️ (1:03:12) Comparing and Contrasting with Arrays
    💻 (1:05:02) The Stack
    ⌨️ (1:05:06) The Different types of Data Structures
    ⌨️ (1:05:51) Random Access Data Structures
    ⌨️ (1:06:10) Sequential Access Data Structures
    ⌨️ (1:07:36) Stack Basics
    ⌨️ (1:09:01) Common Stack Methods
    ⌨️ (1:09:45) Push Method
    ⌨️ (1:10:32) Pop Method
    ⌨️ (1:11:46) Peek Method
    ⌨️ (1:12:27) Contains Method
    ⌨️ (1:13:23) Time Complexity Equations
    ⌨️ (1:15:28) Uses for Stacks
    💻 (1:18:01) The Queue
    ⌨️ (1:18:51) Queue Basics
    ⌨️ (1:20:44) Common Queue Methods
    ⌨️ (1:21:13) Enqueue Method
    ⌨️ (1:22:20) Dequeue Method
    ⌨️ (1:23:08) Peek Method
    ⌨️ (1:24:15) Contains Method
    ⌨️ (1:25:05) Time Complexity Equations
    ⌨️ (1:27:05) Common Queue Uses
    💻 (1:28:16) The Linked List
    ⌨️ (1:31:37) LinkedList Visualization
    ⌨️ (1:33:55) Adding and Removing Information
    ⌨️ (1:41:28) Time Complexity Equations
    ⌨️ (1:44:26) Uses for LinkedLists
    💻 (1:47:19) The Doubly-LinkedList
    ⌨️ (1:48:44) Visualization
    ⌨️ (1:50:56) Adding and Removing Information
    ⌨️ (1:58:30) Time Complexity Equations
    ⌨️ (1:59:06) Uses of a Doubly-LinkedList
    💻 (2:00:21) The Dictionary
    ⌨️ (2:01:15) Dictionary Basics
    ⌨️ (2:02:00) Indexing Dictionaries
    ⌨️ (2:02:40) Dictionary Properties
    💻 (2:05:53) Hash Table Mini-Lesson
    ⌨️ (2:13:26) Time Complexity Equations
    💻 (2:16:39) Trees
    ⌨️ (2:16:55) Introduction to Hierarchical Data
    ⌨️ (2:18:54) Formal Background on the Tree
    ⌨️ (2:20:03) Tree Terminology and Visualization
    ⌨️ (2:25:08) Different types of Trees
    ⌨️ (2:28:07) Uses for the Tree
    💻 (2:29:00) Tries
    ⌨️ (2:29:50) Trie Basics
    ⌨️ (2:30:41) Trie Visualization
    ⌨️ (2:34:33) Flagging
    ⌨️ (2:35:15) Uses for Tries
    💻 (2:38:25) Heaps
    ⌨️ (2:38:51) Heap Basics
    ⌨️ (2:39:19) Min-Heaps
    ⌨️ (2:40:07) Max-Heaps
    ⌨️ (2:40:59) Building Heaps
    ⌨️ (2:44:20) Deleting from Heaps
    ⌨️ (2:46:00) Heap Implementations
    💻 (2:48:15) Graphs
    ⌨️ (2:49:25) Graph Basics
    ⌨️ (2:52:04) Directed vs. Undirected Graphs
    ⌨️ (2:53:45) Cyclic vs. Acyclic Graphs
    ⌨️ (2:55:04) Weighted Graphs
    ⌨️ (2:55:46) Types of Graphs
    💻 (2:58:20) Conclusion
    💻 (2:58:43) Shameless Plug

  • @rickli84
    @rickli84 2 ปีที่แล้ว +2

    3 hours video and totally free! I have to pay about $2200 in Australia for these if I wanted to learn this from a Uni, thank you very much!

  • @ShadaeMastersAstrology
    @ShadaeMastersAstrology 2 ปีที่แล้ว +2

    Thank you for teaching these concepts, greatly appreciated!

  • @rajmashalkar
    @rajmashalkar 3 ปีที่แล้ว +1

    Thank you so much for this wonderful video..
    Literally what I learnt data structures in this 3 hours, never in 6 year of my computer science engineering diploma and degree

  • @honeysharma8643
    @honeysharma8643 ปีที่แล้ว

    Watching this 3 years after completing my engineering, and now I understood all of it.Thanks for this great content.

  • @user-wc1sm8cj8s
    @user-wc1sm8cj8s 3 ปีที่แล้ว +5

    A great tutorial sir! This is the only place on the web where I really understood this topic of all the free learning resources out there. I've been waiting for your Algorithms Tutorial btw.
    Thanks!!!
    (Guys, I think we'd better support this dude, let's subscribe to his channel to say thanks)

  • @FullHeartMommy
    @FullHeartMommy ปีที่แล้ว

    I watched this entire video and everything was explained so clearly. Thank you!

  • @maiahmed9711
    @maiahmed9711 3 ปีที่แล้ว +5

    Free code camp..way to go ❤❤❤
    With love from Egypt 🇪🇬

  • @Supakills101
    @Supakills101 3 ปีที่แล้ว

    Thanks this is a great refresher even for more advanced students. Love this channel

  • @manolisgkoulias8290
    @manolisgkoulias8290 3 ปีที่แล้ว

    One of the best videos I 've ever seen! Thanks a lot man!

  • @proxyvert8976
    @proxyvert8976 3 ปีที่แล้ว +6

    Very informative, info per second is 100x densier than in C++ courses that I studied at university.

  • @alfonstabz9741
    @alfonstabz9741 2 ปีที่แล้ว +2

    pls don't skip the commercials in this video it's our way of helping this teacher..!

  • @theegreatestever2420
    @theegreatestever2420 3 ปีที่แล้ว +5

    First of all thats an absolutely amazing thumbnail!
    Cant wait to learn from this

  • @lindseyb1445
    @lindseyb1445 ปีที่แล้ว +1

    Came across this video on accident… this is the best explanation I’ve seen so far! Thank you so much ❤️

  • @thomaspynchon8400
    @thomaspynchon8400 3 ปีที่แล้ว

    This is without a doubt the best data structure course in this channel.

  • @bongbong3871
    @bongbong3871 3 ปีที่แล้ว

    This channel is the best I have subscribed so far. Thank you very much!!!!

  • @AP-pm9qy
    @AP-pm9qy 3 ปีที่แล้ว +7

    This is a minor point but at 27:13 you can also create an array in Java using the C# syntax. In fact, that is the more conventional way to do it in Java.

  • @acestandard6315
    @acestandard6315 5 หลายเดือนก่อน

    Never in my life have i completed course as long as three hours. Thanks for sharing.

  • @emadmahmoud7
    @emadmahmoud7 3 ปีที่แล้ว +8

    your method of explaining concepts is insane, I watched lots of videos on data structures besides taking it now at my college I can say you are away way better when it comes to explaining these stuff, thnx a lot : )

  • @ren3083
    @ren3083 3 ปีที่แล้ว +1

    Very useful and clearly explained, thank you so much!

  • @gabrielfono844
    @gabrielfono844 3 ปีที่แล้ว +4

    I just watch the introduction
    Amd I know I will worth my time.
    Thanks for this course
    I am self taught

  • @KrishabBashyal
    @KrishabBashyal 2 ปีที่แล้ว +1

    Thank you so much for the value and information, loved the content. Thank you so much!

  • @mumk
    @mumk 2 ปีที่แล้ว

    I really appreciate the entire presentation, it must be taking a lot of effort to complete, thanks!

  • @abrahambaffoe7402
    @abrahambaffoe7402 3 ปีที่แล้ว +2

    Awesome dude. You made it easier and very advanced.. Thank you. Looking forward for more hint..

  • @ZaidIrfanKhan
    @ZaidIrfanKhan 3 ปีที่แล้ว

    God bless you guys. I was just looking for DS and Algo materials ❤️

  • @babrakoskei6134
    @babrakoskei6134 2 ปีที่แล้ว +1

    I like how you talk slow but aren't boring. I've always wondered what the big O notation means and now I do

  • @jwilliams8210
    @jwilliams8210 2 ปีที่แล้ว

    That was an absolutely fantastic exposition to Computer Science!!!

  • @sagarikahiremath2690
    @sagarikahiremath2690 3 ปีที่แล้ว +2

    It was worth watching without wasting time you did good job👍

  • @Ketan302
    @Ketan302 2 ปีที่แล้ว

    Thank you for such simple and clean explanation. Superb

  • @fayebradshaw4221
    @fayebradshaw4221 3 ปีที่แล้ว

    The narrator is amazing, I chuckled several times, very witty

  • @harinathlakku
    @harinathlakku 2 ปีที่แล้ว

    Great work, Steven. God bless!

  • @keepsecret7624
    @keepsecret7624 3 ปีที่แล้ว +12

    This needs a PDF! Reading is - at least for me - is important to learn and revise

  • @mccama19
    @mccama19 3 ปีที่แล้ว +10

    I'm so glad this information is available to everyone for free! I wish this had been available when I was in college.

    • @khytron06
      @khytron06 2 ปีที่แล้ว

      im not even in high school yet

  • @KrakkeX
    @KrakkeX 2 ปีที่แล้ว

    Dude, I just want to say thank you! your video its like a TL; DR and that's awesome!!! just thank you!

  • @devanarayanababu1996
    @devanarayanababu1996 3 ปีที่แล้ว +2

    ive only reached 6:30 but i can already tell that im going to enjoy this lecture!

  • @phuongnguyen3286
    @phuongnguyen3286 2 ปีที่แล้ว

    Concise and useful. Thanks again for your hard working

  • @oscarwang7920
    @oscarwang7920 3 ปีที่แล้ว

    Thanks a lot ! this is way better than the 4 months course from my school

  • @akhilanand298
    @akhilanand298 3 ปีที่แล้ว

    Such an amazing content with great visualization ...🙏🙏🙏🙏🙏

  • @mohammeds6314
    @mohammeds6314 2 ปีที่แล้ว

    THANKS,I love your way of teaching.

  • @azeez8399
    @azeez8399 ปีที่แล้ว +2

    Great bootcamp. I'll be putting small recommendations to tweak and mildly improve your slides in this comment.
    [14:55] - Switch the O(n) and O(log n) so there is a proper progression from fast to slow as you move left to right.
    [21:45] - Typo: Delete extra word "in".
    [30:10] - It may be a good idea to note that in Java both "int array[] =..." and "int[] array =..." are acceptable ways to declare and allocate memory to the array.
    [33:57] - I recall from my C++ class that when accessing the elements of a matrix A, it's row, then column as in A[row][column]. 🤔
    [55:45] - As the Java ArrayList get() function is lowercase, it makes sense to type it in lowercase in the blue box for consistency.

    • @trollface1994
      @trollface1994 7 หลายเดือนก่อน

      Nahh, ur suggestions are Wac bro. I like it as it is.
      why not make ur own video, if you're so critical.

  • @user-qo4jp6iq4t
    @user-qo4jp6iq4t 3 หลายเดือนก่อน

    This Video Is AMAZING for beginners on Computer Sciences. highly recommended to watch it all time long. it definitely worth's the 3 hours. as highly education.

  • @camilamarques4394
    @camilamarques4394 ปีที่แล้ว

    Thanks a lot for sharing all this knowledge!! So far the best educational videos for the new comers!

  • @TheOceanLoader
    @TheOceanLoader ปีที่แล้ว +3

    Having been a senior developer for some 15 years now, I still found this a very useful recap and great at articulating certain salient points. Thank you!

    • @bytekast
      @bytekast ปีที่แล้ว +1

      Yes, it's great to review the basics at some points, like the ones about BigO, array type and size and stack operations. But it's got seriously flawed information at some other parts, like suggesting Python supports arrays and calling dynamic arrays "ArrayList", and this is harmful for beginners!
      Even I, who am not even a junior developer, could spot that. I am sure you did too, if you really are who you say you are.
      I would say beginners are better off with a book, a college course or a WikiBooks tutorial. I wouldn't recommend this video to anyone who, unlike you, doesn't know the basics by heart.

    • @TheOceanLoader
      @TheOceanLoader ปีที่แล้ว

      @@bytekast I agree with what you said about there being some things wrong but C# and Java have some overlapping object names. I think this is C# not Python?

  • @kesavae9552
    @kesavae9552 3 ปีที่แล้ว +13

    Honestly that thumbnail of yours got me here...✌️

  • @vikrantambekar3394
    @vikrantambekar3394 3 ปีที่แล้ว

    You guys should get a oscar for providing knowledge without money
    Many people wants this who cant buy courses but can learn through your videos

  • @maximillianramirez1189
    @maximillianramirez1189 3 ปีที่แล้ว

    What a video!
    You have made very scary topics seem simple.

  • @knightr1der
    @knightr1der 3 ปีที่แล้ว

    Quality and explanation is top notch 👍👌

  • @CyrusPieris
    @CyrusPieris 3 ปีที่แล้ว

    Brilliant. I have subscribed to your channel. Will start the introduction to computer programming.

  • @PhallicDivinity
    @PhallicDivinity 3 ปีที่แล้ว +4

    It's amazing that anybody with an internet connection (and uncensored bandwidth 😶) can access technical information like this.
    Not long ago at all, we'd all have to be in the right place, around the right people, in order to find out about how things work. Often, paying a lot of money to do so too.

    • @ShadaeMastersAstrology
      @ShadaeMastersAstrology 2 ปีที่แล้ว

      I think this often when connecting with incredible people online, remarkable.

  • @AdrianOrosanu
    @AdrianOrosanu 3 ปีที่แล้ว

    Great introduction, thank you!

  • @ravigadadi6207
    @ravigadadi6207 3 ปีที่แล้ว

    Great resource !How can someone dislike this good Content! Maybe some who are selling the course materials..

  • @Rin-qj7zt
    @Rin-qj7zt ปีที่แล้ว

    19:42 a note here about this "other functionality."
    this is why "intermediary data structures" can be so useful. some structures can read really quickly, but with large data sets can take a long amount of time to set up due various factors in the system being programmed. so it may be beneficial to first create one structure because it's fast to populate(probably when data doesn't have to be modified to populate it), use it for a few tasks, and then later populate the second structure using reads from the previous structure to create a something that can be accessed many times in quick succession at the time that you need to do that. This way, your program smartly adapts to the kind of work that needs to be done on the data in question depending on what kind of work needs to be done on it. This will show the best results when a program is using large data sets for a variety of different things at different times.

  • @riazmkhan
    @riazmkhan 2 ปีที่แล้ว

    Excellent content Steven. Thanks!

  • @Alex-bc3xe
    @Alex-bc3xe ปีที่แล้ว

    To be able to explain abstract concepts simply enough for everybody that's mastery itself.

  • @sumneetkaurbamrah1982
    @sumneetkaurbamrah1982 3 ปีที่แล้ว

    Thank you for sharing the content.

  • @gayanthasubasinghe6225
    @gayanthasubasinghe6225 3 ปีที่แล้ว

    Thank you for this video really appreciate it..

  • @ditterbugleen
    @ditterbugleen 3 ปีที่แล้ว

    This is class. Thank you!

  • @safooraranjbaran1466
    @safooraranjbaran1466 2 ปีที่แล้ว

    Thank you. It was immensely helpful

  • @BlackFlux22
    @BlackFlux22 2 ปีที่แล้ว

    5 star presentation my dude. Very nice and informative

  • @portfedh
    @portfedh 2 ปีที่แล้ว

    Thank you for making this content. It was a great explanation.

  • @shouryagupta7624
    @shouryagupta7624 3 ปีที่แล้ว +1

    Thank uuu so much . Pls also make
    a complete vedio on algorithms. Again thank u so much.

  • @kizoyo6414
    @kizoyo6414 3 ปีที่แล้ว +1

    hey codecamp! i just wanna say ill love that u make a lua full course for beginners! ill love so much!

  • @ytdevs
    @ytdevs 3 ปีที่แล้ว

    Wow, that was great! 🙏👌

  • @AlternativeEnding
    @AlternativeEnding 3 ปีที่แล้ว

    Love you guys and God bless you!

  • @fly7188
    @fly7188 2 ปีที่แล้ว

    Thank you for the lesson great work.

  • @SirajFlorida
    @SirajFlorida 2 ปีที่แล้ว

    Great job young man. I enjoyed this presentation.

  • @bhanukaweerasekara9474
    @bhanukaweerasekara9474 3 ปีที่แล้ว

    Awesome video with great explanation.👍

  • @firozalam2749
    @firozalam2749 3 ปีที่แล้ว +1

    This man is so clean hearted.

  • @beenapandey3136
    @beenapandey3136 3 ปีที่แล้ว +7

    Hello Steven ,
    I just wanted to ask that when will you Upload Algorithms tutorial?
    By the way it was a great tutorial..

  • @JameS00989
    @JameS00989 2 ปีที่แล้ว

    Thanks What an exceptional video for introduction to Data structures kudos to you

  • @jimmytorres4181
    @jimmytorres4181 3 ปีที่แล้ว

    It would be cool some videos on Design Patterns and Object Oriented Design

  • @peppermintdior
    @peppermintdior 3 ปีที่แล้ว

    the intro 6 min had me.. great video sir, keep it up

  • @inspirationalquotes5840
    @inspirationalquotes5840 3 ปีที่แล้ว

    in JavaScript, arrays can be declared without setting its size, and you can add limitless of elements.

  • @jobairhossaintamim5949
    @jobairhossaintamim5949 3 ปีที่แล้ว

    It's Really nice. Thanks

  • @bindassplay5114
    @bindassplay5114 3 ปีที่แล้ว +1

    May God bless you guys, I am very grateful😊 , I hope to help other guys too I have I am able to

  • @7own878
    @7own878 2 ปีที่แล้ว +3

    2:56:06 You contradict yourself there. An Undirected Graph can't be Acyclic. You say that a minute before.
    This is really ranting with the highest standards. Amazing video! I learned so much. Thank you a lot!

  • @mahmudurrashid9035
    @mahmudurrashid9035 2 ปีที่แล้ว

    I should've come here sooner, wouldn't have wasted so much of my time that way. Awesome explanation!

  • @souvikdas7788
    @souvikdas7788 3 ปีที่แล้ว

    Thanks a lot..from INDIA🇮🇳

  • @MauricioAvellar
    @MauricioAvellar 2 ปีที่แล้ว

    Amazing content! Got yourself a follower.