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

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

  • 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
    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
    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
    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
    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
    I'm a self-taught programmer working on learning the prerequisite concepts for a CS masters program. This class was challenging but taught me a lot about data structures.
  • Anonymous
    Really wish there was more practice programming in the lessons and not just in the exams and assignments, but a pretty informative course otherwise.
  • 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
    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
    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.

Never Stop Learning.

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