We may earn an affiliate commission when you visit our partners.
Course image
Job Ready Programmer

LAST UPDATED: November 2023

If I had to pick the single most important topic in software development, it would be data structures and algorithms. Think of it as the fundamental tools available to every computer programmer. The better you get with these tools the more confident a programmer you’ll become. Software development is a vast field requiring all kinds of skill-sets but getting good at this single topic is a huge leap forward in your programming journey and it’ll certainly pave the way for a successful programming career.

Read more

LAST UPDATED: November 2023

If I had to pick the single most important topic in software development, it would be data structures and algorithms. Think of it as the fundamental tools available to every computer programmer. The better you get with these tools the more confident a programmer you’ll become. Software development is a vast field requiring all kinds of skill-sets but getting good at this single topic is a huge leap forward in your programming journey and it’ll certainly pave the way for a successful programming career.

The topics in this course are going to cover data structures such as lists, stacks, queues, trees and some of the most powerful sorting, searching, and graph algorithms that have revolutionized the field of computing. Throughout the course I keep things practical and provide real life examples of how all of these algorithms work and when & where they can be applied to write efficient computer programs.

I’ll be moving at a slow and steady pace introducing each topic followed by a PRACTICAL programming assignment so you can immediately apply what you learned. All homework assignments in the course will be accompanied with step by step solution videos demystifying each problem as I code up the solutions. My goal is to make sure, that after you complete this course you feel completely confident going into a coding interview because you will have built a solid foundation in computer programming. So go ahead and signup and I’ll see you in the course.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Gain confidence for coding interviews
  • Learn the most practical and popular data structures & algorithms in-depth rather than a rushed course on computer science
  • Get practice translating sudo code & implementing algorithms with assignments and solutions
  • Get an intuitive understanding of how many of the popular algorithms and data structures behave

Syllabus

Introduction to the course with overview and access to online discord community
Course Overview (Watch this First!)
Join our Online Community (Discord)
Read more
This section is an overview of Object Orientation in Java. It will prepare you for when we cover data structures in the course. You'll know how to use classes to create abstract types and structures.
Intro to OOP Class & Object
Program Flow and Using the Constructor
Application Runtime
Java Behind The Scenes
Dedicated TA Support
In this section we learn about the most popular data structures that are the subject of most interviews
Source Code For the Course
Abstract Data Types
Running Time of an Algorithm and Big O Notation
Stack Data Structure (Java Practical) + HW
Stacks Continued
Queue Data Structure (Java Practical)
Linked lists are a powerful data structure and serves as the building block of other very popular advanced data structures
Introduction to Linked Lists
Singly Linked List (Java Practical)
Circular Linked List (Java Practical)
Doubly Linked List - Part 1 + HW (Java Practical)
Doubly Linked List - Part 2
Doubly Linked List - Part 3 + HW (Java Practical)
Learn some of the most popular searching algorithms in CS - All are hot topics for coding interviews. There are Coding assignments with detailed solution videos for each! Make sure you code!
Basic Linear Search
Binary Search (Overview)
Binary Search (Java Practical) + HW
Recursion in Java
Recursive Search (Java Practical) + HW
Big O Notation Part 2
This section will cover popular sorting algorithms in CS - All are hot topics for coding interviews. There are Coding assignments with detailed solution videos for each! Make sure you code!
Selection Sort (Overview)
Selection Sort (Java Practical) + HW
Insertion Sort (Overview)
Insertion Sort (Java Practical) + HW
Merge Sort (Overview)
Merge Sort Continued (The Merge Process)
Merge Sort (Java Practical) + HW
Quick Sort (Overview)
Quick Sort Continued
Quick Sort (Java Practical) + HW
A ground breaking data structure in computer science. This structure is used throughout relational databases and other powerful data centric technologies (hot topic for interviews)
Binary Search Tree Overview
Java Implementation of Binary Search Tree
Deleting a Node from Binary Search Tree
Java Implementation to Delete Node
ASSIGNMENT: Print Binary Search Tree
Binary Search Tree - Odds and Ends
Heaps are another popular tree like data structure used in various software domains (hot topic for interviews)
Heaps Data Structure Overview
Java Implementation of Heap Data Structure
ASSIGNMENT: Print the Heap
The most efficient and powerful data structure there is in computer science. NoSQL data stores heavily rely on hashing - Hash table is another important interview subject
Overview of Hash Tables
Hash Tables (Java Practical) + HW
Graphs are used to represent many real-life applications and asked about in interviews
Graphs Overview + HW
Graphs (Java Practical) + Solution
Course Extras!
Bonus Lecture

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops important foundational skills that are essential for advancement in programming
Teaches practical skills that are commonly asked about in coding interviews
Covers a wide range of data structures and algorithms, providing a comprehensive study
Provides real-life examples and practical assignments to reinforce learning
Offers step-by-step solution videos for homework assignments, providing additional support
May be a suitable choice for learners with some prior programming experience

Save this course

Save Practical Data Structures & Algorithms in Java + HW to your list so you can find it easily later:
Save

Reviews summary

Practical data structures for beginners

According to students, this course is a well-structured, in-depth guide to data structures in Java. Beginners and those unfamiliar with data structures may find this course particularly helpful. While the pace may be slower for more advanced learners, the content is still applicable and can be sped up.
Covers data structures in great detail.
"Good in-depth guide on Data Structures"
Suitable for those new to data structures.
"definitely recommend for beginner programmers"
"those unfamiliar with data structures"

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 Practical Data Structures & Algorithms in Java + HW with these activities:
Create a Glossary of Data Structures and Algorithms
Organize and expand on course materials by creating a comprehensive glossary of key terms and concepts.
Show steps
  • Review course notes and materials.
  • Identify key terms and concepts.
  • Write clear and concise definitions for each term.
  • Organize the glossary alphabetically or by category.
Review the Book 'Cracking the Coding Interview'
Enhance problem-solving skills and prepare for coding interviews by reviewing a classic book on the subject.
Show steps
  • Read through the book and take notes.
  • Solve the practice problems in the book.
  • Review your solutions against the provided answers.
Join a Study Group or Online Community
Collaborate with peers to discuss concepts, share knowledge, and work on problems together.
Show steps
  • Find or create a study group with peers.
  • Meet regularly to discuss course material.
  • Work together on assignments and projects.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow Online Tutorials on Data Structures and Algorithms
Supplement the course material by exploring additional resources online to deepen understanding.
Show steps
  • Find reputable online tutorials on data structures and algorithms.
  • Watch the tutorials and take notes.
  • Try implementing the concepts covered in the tutorials.
Practice Coding Data Structures and Algorithms
Solve coding problems and practice implementing data structures and algorithms to reinforce the concepts learned during the course.
Show steps
  • Identify a coding problem or algorithm to practice.
  • Code the solution using Java.
  • Test and debug the code.
  • Review the solution against the provided solution videos.
Attend a Workshop on Data Structures and Algorithms
Deepen understanding by participating in a workshop led by experts in the field.
Show steps
  • Research and find a relevant workshop.
  • Register for the workshop.
  • Attend the workshop and actively participate.
Build a Java Project Using Data Structures and Algorithms
Apply the concepts learned in the course by creating a project that utilizes data structures and algorithms.
Show steps
  • Identify a problem or idea for a project.
  • Design the project using appropriate data structures and algorithms.
  • Implement the project in Java.
  • Test and debug the project.

Career center

Learners who complete Practical Data Structures & Algorithms in Java + HW will develop knowledge and skills that may be useful to these careers:
Algorithm Engineer
Algorithm Engineers design and develop algorithms to solve complex problems. They use data structures to organize and manage data efficiently, and they use algorithms to optimize the performance of computer programs. This course provides a comprehensive overview of data structures and algorithms, and it can help you build a strong foundation for a career as an Algorithm Engineer. The course covers topics such as object-oriented programming, abstract data types, big O notation, searching, sorting, and hashing. These concepts are essential for designing and developing efficient algorithms.
Computer Scientist
Computer Scientists use data structures and algorithms to solve a wide range of problems in computer science. They use data structures to organize and manage data efficiently, and they use algorithms to design and develop efficient computer programs. This course provides a comprehensive overview of data structures and algorithms, and it can help you build a strong foundation for a career as a Computer Scientist. The course covers topics such as object-oriented programming, abstract data types, big O notation, searching, sorting, and hashing. These concepts are essential for solving complex problems in computer science.
Software Engineer
Software Engineers design, develop, test, and maintain software applications. They use data structures to organize and manage data efficiently, and they use algorithms to solve complex problems. This course provides a comprehensive overview of data structures and algorithms, and it can help you build a strong foundation for a career as a Software Engineer. The course covers topics such as object-oriented programming, abstract data types, big O notation, searching, sorting, and hashing. These concepts are essential for designing and developing efficient software applications.
Systems Analyst
Systems Analysts design and implement computer systems. They use data structures to organize and manage system data, and they use algorithms to optimize system performance. This course provides a foundation in data structures and algorithms that can be applied to systems analysis. The course covers topics such as data structures for storing and retrieving system data, algorithms for optimizing system performance, and techniques for managing system security.
Data Scientist
Data Scientists use data to solve complex problems and make informed decisions. They use data structures to organize and manage data efficiently, and they use algorithms to analyze data and extract insights. This course provides a foundation in data structures and algorithms that can be applied to a wide range of data science problems. The course covers topics such as linear search, binary search, selection sort, insertion sort, merge sort, quick sort, binary search trees, and hash tables. These concepts are essential for understanding the algorithms used in data science.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. They use data structures to organize and manage data, and they use algorithms to train and evaluate machine learning models. This course provides a foundation in data structures and algorithms that can be applied to machine learning. The course covers topics such as data structures for storing and retrieving data, algorithms for training and evaluating machine learning models, and techniques for managing machine learning data.
Data Architect
Data Architects design and manage data architectures. They use data structures to organize and store data efficiently, and they use algorithms to optimize data access. This course provides a foundation in data structures and algorithms that can be applied to data architecture. The course covers topics such as data structures for storing and retrieving data, algorithms for optimizing data access, and techniques for managing data security.
Technical Project Manager
Technical Project Managers manage technical projects. They use data structures to track and manage project artifacts, and they use algorithms to plan and schedule project activities. This course provides a foundation in data structures and algorithms that can be applied to technical project management. The course covers topics such as data structures for tracking and managing project artifacts, algorithms for planning and scheduling project activities, and techniques for managing project risks.
Database Administrator
Database Administrators manage and maintain databases. They use data structures to organize and store data efficiently, and they use algorithms to optimize database performance. This course provides a foundation in data structures and algorithms that can be applied to database administration tasks. The course covers topics such as data structures for storing and retrieving data, algorithms for optimizing database performance, and techniques for managing database security.
Information Security Analyst
Information Security Analysts identify and mitigate security risks to an organization's information systems. They use data structures to organize and manage security data, and they use algorithms to analyze security data and identify potential threats. This course provides a foundation in data structures and algorithms that can be applied to information security. The course covers topics such as data structures for storing and retrieving security data, algorithms for analyzing security data, and techniques for managing security data.
Data Engineer
Data Engineers design, build, test, and maintain complex data systems, such as databases and data warehouses. To succeed in a Data Engineer role, you should have a solid foundation in data structures and algorithms, which can be learned through this course. This course covers topics such as stacks, queues, linked lists, binary search trees, and hash tables. These data structures are essential for efficient data storage and retrieval, and they play a crucial role in modern data systems.
DevOps Engineer
DevOps Engineers manage the software development process. They use data structures to track and manage software development artifacts, and they use algorithms to automate the software development process. This course provides a foundation in data structures and algorithms that can be applied to DevOps. The course covers topics such as data structures for tracking and managing software development artifacts, algorithms for automating the software development process, and techniques for managing DevOps pipelines.
Quantitative Analyst
Quantitative Analysts use data to make investment decisions. They use data structures to organize and manage financial data, and they use algorithms to analyze financial data and identify investment opportunities. This course provides a foundation in data structures and algorithms that can be applied to quantitative analysis. The course covers topics such as data structures for storing and retrieving financial data, algorithms for analyzing financial data, and techniques for managing financial data.
Web Developer
Web Developers design and develop websites and web applications. They use data structures to organize and manage data, and they use algorithms to optimize the performance of web applications. This course provides a foundation in data structures and algorithms that can be applied to web development. The course covers topics such as data structures for storing and retrieving data, algorithms for optimizing web application performance, and techniques for managing web application security.
Business Analyst
Business Analysts use data to identify and solve business problems. They use data structures to organize and manage business data, and they use algorithms to analyze business data and make recommendations. This course provides a foundation in data structures and algorithms that can be applied to business analysis. The course covers topics such as data structures for storing and retrieving business data, algorithms for analyzing business data, and techniques for managing business data.

Reading list

We've selected 16 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 Practical Data Structures & Algorithms in Java + HW.
This widely used textbook provides a comprehensive and authoritative introduction to algorithms. It covers a wide range of topics, including sorting, searching, graph algorithms, and dynamic programming. valuable resource for students and professionals who want to learn more about the theory and practice of algorithms.
This classic textbook provides a rigorous and in-depth treatment of algorithms. It covers a wide range of topics, including sorting, searching, graph algorithms, and dynamic programming. valuable resource for students and professionals who want to learn more about the theory and practice of algorithms.
Provides a comprehensive overview of data structures and algorithms in Java, making it a valuable resource for students and professionals alike. It covers a wide range of topics, including stacks, queues, linked lists, trees, and graphs.
This comprehensive book provides a deep dive into the Java programming language. It valuable resource for students and professionals who want to learn more about the intricacies of Java.
Provides a set of principles and practices for writing clean and maintainable code. It valuable resource for students and professionals who want to improve their software development skills.
Provides a practical guide to test-driven development, a software development approach that emphasizes the importance of writing tests before writing code. It valuable resource for students and professionals who want to learn more about software development best practices.
Provides a practical guide to unit testing, a software development technique for testing individual units of code. It valuable resource for students and professionals who want to learn more about software development best practices.
Provides a practical guide to continuous delivery, a software development approach that emphasizes the importance of automating the build, test, and deployment process. It valuable resource for students and professionals who want to learn more about software development best practices.
Provides a practical guide to DevOps, a software development approach that emphasizes the importance of collaboration between development and operations teams. It valuable resource for students and professionals who want to learn more about software development best practices.
This comprehensive reference book covers all aspects of the Java programming language. It valuable resource for students and professionals who want to learn more about Java or who need a quick reference to the language.
Provides a collection of best practices for writing effective Java code. It valuable resource for students and professionals who want to improve their Java programming skills.
Provides a practical guide to domain-driven design, a software development approach that emphasizes the importance of understanding the business domain. It valuable resource for students and professionals who want to learn more about software development best practices.
Provides a practical guide to refactoring, a technique for improving the design of existing code. It valuable resource for students and professionals who want to learn more about software development best practices.
This engaging and approachable book provides a gentle introduction to Java programming. It great resource for beginners who want to learn the basics of Java.

Share

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

Similar courses

Here are nine courses similar to Practical Data Structures & Algorithms in Java + HW.
Data Structures and Algorithms In Java ( DSA )
Most relevant
Algorithms: Design and Analysis, Part 1
Most relevant
Computing in Python IV: Objects & Algorithms
Modern C++ Concurrency in Depth ( C++17/20)
Data Structures and Algorithms: In-Depth using Python
Data Structures and Algorithm Design Part I | 数据结构与算法设计(上)
Computer Science 101: Master the Theory Behind Programming
Data Structures & Algorithms Using C++
Data Structures and Algorithms Bootcamp
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