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 26 Class Central reviews

4.7 rating at edX based on 17 ratings

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

  • 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…
  • Profile image for Jimmy Miao Zhang
    Jimmy Miao Zhang
    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
    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
    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…
  • Profile image for Douglas
    Douglas
    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
    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!! :)
  • 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
    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.
  • 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
    It's a great course. I learned a lot from it. The coding assignments were very helpful to my understanding of the data structures and algorithms (especially recursion).
  • Anonymous
    This is a really excellent course that covers both good content and provides excellent instruction throughout. Georgia Tech was a real innovator the distance learning space, and this forward-thinking approach really comes through in the quality of the course material.
  • 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.
  • Anonymous
    This class was perfect for what I needed. Both the video and the problems were excellent to help me learn this material. I would highly recommend this course!
  • Profile image for Aliaksei Vasiukovich
    Aliaksei Vasiukovich
    An incredibly well-organized course. Highly recommended to people having prior Java knowledge. The instructor is really trying to explain the material.

  • 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.
  • Profile image for Allen Lau
    Allen Lau
    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
    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.
  • 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
    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

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.