Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Georgia Institute of Technology

Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues

Georgia Institute of Technology via edX

Overview

The Data Structures & Algorithms course begins with a review of some important Java techniques and nuances in programming. The course requires some prior knowledge of Java and object-oriented programming, but not in data structures or algorithms. This course introduces you to time complexity, and threads this concept throughout all data structures and algorithms presented in the course. You will work with the principles of data storage in Arrays and LinkedList nodes. You will program the low-level data structures: Singly, Circular and Doubly LinkedLists; and explore edge cases and efficiencies. LinkedLists and Arrays are used to implement Abstract Data Types, ADTs: Stacks, Queues and Deques. Harnessing the power of recursion to move through these data structures is necessary. As the size changes in your data structures, it becomes important to examine amortized analysis of the operations.

The course design has several components and is built around modules. A module consists of a series of short (3-5 minute) instructional videos. In between the videos, there are textual frames with additional content information for clarification, as well as video errata dropdown boxes. All modules include an Exploratory Lab that incorporates a Visualization Tool specifically designed for this course. The lab includes discovery questions that lead you towards delving deeper into the efficiency of the data structures and examining the edge cases. This is followed by a set of comprehension questions on topics covered in the module that count for 10% of your grade. The modules end with Java coding assignments which are 60% of your grade. Lastly, you'll complete a course exam, which counts for the remaining 30% of your grade.

This is a great course that has been derived from the on-campus version of CS1332 at the Georgia Institute of Technology, and is backed with an impressive reputation.

Syllabus

Module 0: Introduction and Review

  • Review of important Java principles involved in object-oriented design
  • The Iterator & Iterable design patterns, and the Comparable & Comparator interfaces
  • Basic “Big-Oh” notation and asymptotic analysis

Module 1: Arrays, ArrayLists and Recursion

  • The array class, access vs. search of an array, static allocation and efficiency
  • The List abstract data type (ADT) which is backed by an array and uses dynamic resizing and amortized analysis
  • Recursive methods that are applied to the array and ArrayList data structures

Module 2: LinkedLists

  • The Singly LinkedList data structure, its implementation, methods and time complexity
  • The use of the iterable interface and recursive methods in LinkedLists
  • Creating variations of LinkedLists such as Doubly-Linked and Circularly-Linked

Module 3: Stacks, Queues, and Deques

  • The Stack ADT based on the last-in, first-out principle, and its implementations using Arrays and LinkedLists
  • The Queue ADT based on the first-in, first-out principle, and its implementations using Arrays and LinkedLists
  • Creating variations of Stacks and Queues such as Priority Queues and Deques

Taught by

Mary Hudachek-Buswell

Reviews

4.9 rating, based on 30 Class Central reviews

4.7 rating at edX based on 23 ratings

Start your review of Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues

  • Anonymous
    Computer Science is a powerful and future-focused field. It teaches problem-solving in a smart way. I learned how computers and software work. Programming improved my logical thinking. It is challenging but very interesting. Computer Science helps b…
  • Anonymous
    I am going to speak as a broke student who has no money to get full access to the course or to pay for a verified certifications. I took advantage of the audit access to follow along the course and let me just say that it was really great and I've l…
  • Anonymous
    This course is a fantastic introduction to the topic. Taking the course (and the rest of the track) is an ideal complement to any university degree that lacks Data Structures and Algorithms as part of its software development units.
    The course ramps up from the basics and is easy to follow. The assignments are compatible with the level of difficulty in the lectures and exercises. Only a little Java is required to better understand the implementation. OOP in Java is more than enough.
    I'm thoroughly impressed with the quality and the material and delivery. You can feel that the author/s spent a considerable amount of time planning for it. Well worth investing on the verified option.
  • Anonymous
    What a great course. I have no background in CS but I was able to understand the implementation of each of the data structures by actually implementing it. I recommend taking the verified track and completing the assignments. Great course! Looking forward to part II and then to apply to the OMSCS!! :)
  • Profile image for Douglas
    Douglas
    8
    A excellent course for who already knows the basics of java and wants to learn about data structures and it related algorithms.
    It starts from the very basics but doesn't stop there, explaining the concepts and common errors and difficulties you may encounter while implementing
    the data structures.
    There are many interactive animations, comprehension and coding exercises.
    It covers arrays, circular arrays, singly, doubly and circular linked lists, stacks, queues, priority queues and deques.
  • Anonymous
    I was amazed at how the material was explained in such clear and easy to follow videos, hands on visualizations and a chance to do coding assignments. I got enough points to pass without taking the final, but I would like to go on to a Master's program so I tried my hand at it. I will say that unlike what was said, the exam is not easier than the practice exam. I found it to be almost exactly as difficult. I did well on it anyhow because I studied the practice exam and rewatched some videos. Don't be scared to give this course a try.
  • Anonymous
    If you're familiar with Java, and curious to learn about the data structures presented in the course for the first time, or looking to deepen your current understanding of them, this course will be valuable to you. The lectures are of a high quality, as are the assignments and examinations. I am glad I took the time to complete the course, and will be following this up with the subsequent DS/Algo offerings from GA tech on EdX.
  • Profile image for Jimmy Miao Zhang
    Jimmy Miao Zhang
    3
    This course is fantastic! I've previously attended Java and data structure bootcamps focused heavily on breaking down LeetCode problems and preparing for interviews. While these bootcamps taught me how to use various data structures to tackle spec…
  • Anonymous
    Beautiful course, excellent visuals, notes, lectures. The problem sets are fair (maybe a bit on the easy end).

    The practice exam and final exam really get you working and thinking about the material.

    Would recommend to anyone who has a good understanding of Java fundamentals and wants to dive deep into data structures/algorithms.
  • Anonymous
    So thankful for the chance to study the fundamentals of data structures at my own pace. The course format is perfect to this end, with a very nice demo tool that really lets you see the basics of how linked lists, queues, stacks, etc., work.
  • Anonymous
    I really enjoyed to the course. The videos were well-put together (clear, concise, informative), and the material lent itself really nicely to the format: video -> Visual Lab -> Quiz/Assignments. As with lots of things in CS, I learned a lot by "d…
  • Anonymous
    I enjoyed the way the course was structured. I also thought the creative and eclectic variety of exam questions struck just the right balance between practical coding skills and conceptual "textbook" understanding of the material. I really enjoyed this course as a whole.
  • Profile image for Allen Lau
    Allen Lau
    3
    Beautiful course, excellent visuals, notes, lectures, The problem sets are fair(maybe a bit on the easy end).

    The practice exam and final exam really get you working and thinking about the material.

    Would recommend to anyone who has a good understanding of java fundamentals and wants to dive deep into data structures/algorithms.
  • Anonymous
    Video lectures were concise and informative. Thought the material was comprehensive but not overwhelming/challenging. Problems were presented in creative ways (more than just MC or a code block). I enjoyed this section and am looking forward to parts 2,3,4.
  • Anonymous
    Great, well-put-together course. Deeply explores various abstract data types, and reinforces your learning by having you actually write the code to implement and test the data structures.
  • Anonymous
    Great introduction to linear data structures. In general I find Java to be verbose and cumbersome (I mostly use Python), but using Java for this course actually helps to focus more on the low-level details of the data structures and algorithms. Highly recommend this course if you want an in depth treatment of the topics.
  • Anonymous
    Coming into this course I thought it was going to be a nightmare because I had heard that this was one of the most difficult subjects in CS. However, this course was structured so well, that it was a pleasant learning experience all the way through!
  • Anonymous
    The content presentation was well done! One really has to delve into the material on their own to get the most out of the course.
  • Anonymous
    Even with basic knowledge of Java you will be able to make yours first steps in learning Data Structures and Algorithms. Clear explanation and on-topic
  • Anonymous
    Provided a breadth of resources to help grasp concepts, especially a dynamic visualization tool for data structures that would really help students that experience difficulty in visualizing data structures. Videos and text were also very well paced with plenty of subsequent reading material.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.