We may earn an affiliate commission when you visit our partners.
Course image
Mary Hudachek-Buswell

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.

Read more

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.

Three deals to help you save

What's inside

Learning objectives

  • 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
Read more
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

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides a systematic exploration of data structures and algorithms, starting with basic Java techniques to intricate algorithms
Taught by recognized educators in computer science, offering a reputable learning experience
Rooted in the curriculum of an on-campus course at Georgia Institute of Technology, ensuring academic rigor
Emphasizes the foundational principles of object-oriented programming, making it accessible to beginners in the field
Utilizes an Exploratory Lab with a visualization tool, facilitating a deeper understanding of data structures
Requires some prior knowledge of Java programming, catering to students with a foundational understanding

Save this course

Save Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues to your list so you can find it easily later:
Save

Reviews summary

Popular course in data structures

learners say this course is well-received with good fundamentals and clear explanations. Its engaging assignments and quality content make it great for self-learners.
Course content well-organized, informative, and in-depth.
"An incredibly well-organized course."
"Really wish there was more practice programming in the lessons and not just in the exams and assignments, but a pretty informative course otherwise."
"Seems like it teaches good fundamentals."
Course is self-paced and great for self-motivated learners.
"Seems like it teaches good fundamentals."
"Great, well-put-together course."
"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."
Assignments creative, well-made, and test knowledge in engaging ways.
"The professor does an amazing job covering the topics and providing examples."
"The quizzes and coding assignments were very engaging and testing of my knowledge."
"I really enjoyed to the course."
Some videos contain minor errors or additional notes that are not always clear.
"It seemed like all or almost all of the videos contained at least one "errata" or "Additional note""
"Those were clearly identified AFTER the video, but it did hurt my attention to the videos, since I would try to catch the erratas first so I don't pollute my notes with errors."
Course assumes prior knowledge of Java.
"An incredibly well-organized course. Highly recommended to people having prior Java knowledge."
"Even with basic knowledge of Java you will be able to make yours first steps in learning Data Structures and Algorithms."
"I'm a self-taught programmer working on learning the prerequisite concepts for a CS masters program."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues with these activities:
Review Java Fundamentals
Ensure a solid foundation in Java, minimizing potential roadblocks in understanding advanced concepts.
Browse courses on Java
Show steps
  • Review basic Java syntax and data types
  • Practice writing simple Java programs
  • Complete online tutorials or exercises to refresh your understanding
Read 'Data Structures and Algorithms in Java'
Provide a comprehensive review of data structures and algorithms, deepening understanding of concepts covered in the course.
Show steps
  • Read each chapter thoroughly and take notes on key concepts
  • Solve the practice problems and exercises at the end of each chapter
  • Create summaries or mind maps to reinforce your understanding
  • Discuss the book's content with peers or a mentor to gain different perspectives
Review Course Materials
Refresh your knowledge of concepts covered in the course, improving retention and understanding for the upcoming semester.
Browse courses on Data Structures
Show steps
  • Revisit lecture notes, assignments, and quizzes
  • Identify areas where you need additional review
  • Seek clarification from the instructor or teaching assistants
Six other activities
Expand to see all activities and additional details
Show all nine activities
Participate in Study Groups
Facilitate collaborative learning and discussion of course concepts, enhancing comprehension.
Browse courses on Data Structures
Show steps
  • Form a study group with classmates
  • Meet regularly to discuss lecture material, assignments, and exam preparation
  • Work together to solve problems and clarify misunderstandings
Code Leetcode Problems
Help solidify understanding of data structures and algorithms by practicing solving coding problems.
Browse courses on Data Structures
Show steps
  • Choose a problem from the Leetcode website
  • Read the problem description and understand the requirements
  • Design and implement a solution using Java
  • Test your solution against the provided test cases
  • Optimize your solution for efficiency and correctness
Explore Java Data Structures Tutorials
Complement course lectures with guided tutorials, providing additional perspectives and reinforcing concepts.
Browse courses on Data Structures
Show steps
  • Seek assistance from the tutorial instructors or online forums if needed
  • Identify reputable online resources or tutorials on Java data structures
  • Follow the tutorials, taking notes and practicing the examples
Design and Implement Data Structures
Reinforce understanding by creating custom data structures and algorithms, fostering a deeper grasp of their implementation.
Browse courses on Data Structures
Show steps
  • Choose a data structure to implement, such as a stack, queue, or linked list
  • Design the Java class and its methods
  • Implement the data structure and test its functionality
Develop a Data Structures Visualization Tool
Enhance understanding of data structures by creating a visual representation of their operations, fostering a deeper comprehension.
Browse courses on Data Structures
Show steps
  • Choose a data structure, such as a binary search tree or hash table, to visualize
  • Design and implement a Java program to create a graphical representation of the data structure's operations
  • Test the tool and refine its functionality
Participate in Coding Challenges
Challenge yourself and apply course concepts in a competitive setting, sharpening your problem-solving abilities.
Browse courses on Data Structures
Show steps
  • Register for online coding challenges or competitions
  • Solve coding problems against time constraints
  • Analyze your solutions and identify areas for improvement

Career center

Learners who complete Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues will develop knowledge and skills that may be useful to these careers:
Data Scientist
Study the Data Structures & Algorithms course to bolster a foundational understanding of the principles behind how different data structures operate. This knowledge of data storage and manipulation is essential for a Data Scientist, who helps businesses make the most of their available data. The course's focus on time complexity and how linked lists and arrays are used to implement abstract data types (ADTs) like stacks, queues and deques will be important to a career in this field.
Software Developer
As a Software Developer, you'll write and maintain the code that powers applications and software. The Data Structures & Algorithms course provides a foundation in Java programming, data storage principles, and time complexity - all essential tools for successful Software Developers.
Computer Programmer
Computer Programmers analyze user needs and develop software solutions to meet those needs. Taking the Data Structures & Algorithms course will provide the foundation in object-oriented design and data manipulation necessary to succeed in writing clean, efficient code. The course's emphasis on generics, references, interfaces and recursion will be especially valuable for a Computer Programmer.
Information Technology (IT) Specialist
IT Specialists help organizations leverage technology to improve their operations. The Data Structures & Algorithms course provides a strong foundation in essential programming concepts, and how data is stored, manipulated, and accessed in a computer system. This knowledge will aid an IT Specialist in designing and maintaining efficient and effective solutions.
Systems Analyst
A Systems Analyst will study an organization's current business processes and develop plans to implement new or improved systems. Having a knowledge of data structures and algorithms, as taught in the Data Structures & Algorithms course, will enable a Systems Analyst to evaluate and recommend efficient and cost-effective solutions.
Software Engineer
Software Engineers will apply the theories of computer science to the design, development and maintenance of software systems. Having a foundation in data structures and algorithms, as taught in the course, will enable a Software Engineer to build high-quality, scalable software.
Database Administrator
The Data Structures & Algorithms course provides a valuable foundation for a Database Administrator, who will design and maintain databases. The course deep-dive into how data is stored and accessed will be particularly useful, as will the modules on arrays, linked lists, stacks, and queues.
Data Analyst
The Data Structures & Algorithms course may be useful to those who want to pursue a career as a Data Analyst. The course teaches essential Java programming skills, as well as principles of data storage and manipulation. This knowledge will serve as a solid foundation for working with large datasets and extracting meaningful insights.
Quality Assurance (QA) Analyst
QA Analysts help ensure the quality and functionality of software products. The Data Structures & Algorithms course provides a practical understanding of data structures and algorithms, which will be useful for designing and executing test cases and understanding how software behaves under different conditions.
Web Developer
The Data Structures & Algorithms course may be useful for Web Developers who want to gain a deeper understanding of how data is stored and manipulated in software applications. The course's emphasis on Java programming, object-oriented design, and data structures will provide valuable knowledge for this role.
Information Security Analyst
Information Security Analysts are responsible for protecting an organization's computer systems and data from security breaches. Having a solid understanding of data structures and algorithms can aid in comprehending how attackers exploit vulnerabilities and developing effective security measures.
Technical Writer
Technical Writers are responsible for creating user manuals, technical reports, and other documentation. The Data Structures & Algorithms course provides a strong foundation in computer science concepts and terminology, which is essential for effectively communicating technical information to non-technical audiences.
UX Designer
UX Designers focus on designing user interfaces and experiences. The Data Structures & Algorithms course may be useful for UX Designers who want to gain a better understanding of how data is stored and organized in a computer system. This knowledge can help them design interfaces that are efficient and easy to use.
Product Manager
Product Managers are responsible for the development and launch of new products. The Data Structures & Algorithms course provides a good foundation in the technical aspects of software development, which can be helpful for Product Managers who need to make decisions about product features and architecture.
Business Analyst
A Business Analyst gathers and analyzes business requirements to help organizations improve their operations. The Data Structures & Algorithms course may be useful for Business Analysts who want to develop the technical skills necessary to analyze data and understand how it is used within an organization.

Reading list

We've selected 15 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues.
This comprehensive textbook covers all the fundamental data structures and algorithms, providing detailed explanations and plenty of worked examples.
This widely used textbook provides a comprehensive overview of algorithms and data structures, with a strong focus on mathematical analysis.
This introductory textbook provides a thorough overview of Java programming, including object-oriented programming principles and data structures.
This undergraduate textbook provides a comprehensive introduction to data structures and algorithms, with a focus on Java implementation.
This concise reference book provides a quick overview of a wide range of algorithms, with a focus on practical applications and real-world examples.
This concise book provides a high-level overview of computer science concepts, including data structures and algorithms.
This online tutorial provides a comprehensive introduction to data structures and algorithms, with a focus on Ruby implementation.
This online tutorial provides a comprehensive introduction to data structures and algorithms, with a focus on Go implementation.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues.
Introduction to Java Programming: Fundamental Data...
Most relevant
Java 11 Fundamentals: Collections
Most relevant
Working with Arrays and Collections in Java (Java SE 11...
Most relevant
Data Structures and Algorithms In Java ( DSA )
Most relevant
Data Structures Fundamentals
Most relevant
Data Structures & Algorithms II: Binary Trees, Heaps,...
Most relevant
Data Structures & Backend with Java
Most relevant
Data Structures and Algorithms: Deep Dive Using Java
Most relevant
Algorithms and Data Structures - Part 1
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser