EdX

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

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

Work with the principles of data storage in Arrays, ArrayLists & LinkedList nodes. Understand their operations and performance with visualizations. Implement low-level linear, linked data structures with recursive methods, and explore their edge cases. Extend these structures to the Abstract Data Types, Stacks, Queues and Deques.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

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 course is part of the Data Structures and Algorithms Professional.

What you'll learn

  • Develop mature Java programming skills with the use of generics, references and interfaces
  • Understand the principles of data storage in Node objects
  • Program various low-level data structures like Singly, Doubly and Circular LinkedLists
  • Design and implement ADTs like Lists (backed by Arrays), Stacks and Queues
  • Examine the edge cases that occur in these linear data structures
  • Analyze the time complexity of linear data structures and their algorithms
  • Compute amortized analysis for Arrays, ArrayLists, Stacks and Queues
  • Implement recursive methods that operate on linear data structures
  • Extend knowledge of these concepts to other structures like PriorityQueues and Deques

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
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX)

Learn the basics of object-oriented programming and algorithms. Students will build on the skills learned from “Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics” and learn the basics of writing classes that serve as blueprints of concepts or objects that are represented in a programming problem. Students will leverage the concepts of inheritance, interfaces, and polymorphism to program reusability and flexibility in classes. Finally, students will gain experience walking through and analyzing algorithms that are applied on data (including objects) in many object-oriented programs.

Self Paced
Self-Paced
Data Structures and Algorithm Design Part II | 数据结构与算法设计(下) (edX) EdX
Tsinghua University,TsinghuaX

Data Structures and Algorithm Design Part II | 数据结构与算法设计(下) (edX)

Learn the basics of data structures and methods to design algorithms and analyze their performance. 本课程旨在围绕各类数据结构的设计与实现,揭示其中的规律原理与方法技巧;同时针对算法设计及其性能分析,使学生了解并掌握主要的套路与手段。

Self Paced
Self-Paced
Introduction to Java Programming: Starting to code in Java (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Starting to code in Java (edX)

Learn to program with Java in an easy and interactive way! In this introductory Java programming course, you will be introduced to powerful concepts such as functional abstraction, the object oriented programming (OOP) paradigm and Application Programming Interfaces (APIs). Examples and case studies will be provided so that you can implement simple programs on your own or collaborate with peers.

Self Paced
Self-Paced
Computing in Python IV: Objects & Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python IV: Objects & Algorithms (edX)

Learn about recursion, search and sort algorithms, and object-oriented programming in Python. Complete your introductory knowledge of computer science with this final course on objects and algorithms. Now that you've learned about complex control structures and data structures, learn to develop programs that more intuitively leverage your natural understanding of problems through object-oriented programming. Then, learn to analyze the complexity and efficiency of these programs through algorithms. In addition, certify your broader knowledge of Introduction to Computing with a comprehensive exam.

Self Paced
Self-Paced
Advanced Linear Algebra: Foundations to Frontiers (edX) EdX
University of Texas at Austin,UTAustinX

Advanced Linear Algebra: Foundations to Frontiers (edX)

Learn advanced linear algebra for computing. Linear algebra is one of the fundamental tools for computational and data scientists. In Advanced Linear Algebra: Foundations to Frontiers (ALAFF), you will build your knowledge, understanding, and skills in linear algebra, practical algorithms for matrix computations, and the analysis of the effects of floating-point arithmetic as performed by computers.

Self Paced
Self-Paced
Java Programming Fundamentals (edX) EdX
Galileo University,GalileoX

Java Programming Fundamentals (edX)

Your career as a program developer starts here. Gain entry-level programing skills in Java language, and prepare yourself to handle any task that is required in any programming job. Java is one of the most in-demand programming languages today. This course is designed to provide students the basic skills and knowledge on Java.

Self Paced
Self-Paced
Data Structures & Algorithms IV: Pattern Matching, Dijkstra’s, MST, and Dynamic Programming Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Data Structures & Algorithms IV: Pattern Matching, Dijkstra’s, MST, and Dynamic Programming Algorithms (edX)

Delve into Pattern Matching algorithms from KMP to Rabin-Karp. Tackle essential algorithms that traverse the graph data structure like Dijkstra’s Shortest Path. Study algorithms that construct a Minimum Spanning Tree (MST) from a graph. Explore Dynamic Programming algorithms. Use the course visualization tool to understand the algorithms and their performance.

Self Paced
Self-Paced