Course Overview
So you've worked with the basics of data structures and algorithms in Java (or another OO programming language) but feel like you need a deeper knowledge of how things work.
Maybe you have taken other courses on this topic that focus more on teaching how to pass job interview tests (theory) instead of how to make good choices for the programs you develop (implementation).
Or maybe you are ready to move from a junior programming position to a more senior one and need to get skilled in advanced concepts like data structures, and how to apply them to your own projects.
Whatever the reason, if you are looking for a course that focus on the implementations to give you a complete understanding of how things work, then this is the course for you.
This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered.
Complete source code is included and available for you to download.
This is a hands-on course! If you want to try understand things at a deep level, and work on implementations, rather than theory, then again, this is the course for you.
Topics covered:-
Arrays
Linked Lists
Trees
Hashtables
Stacks
Queues
Heaps
Sort algorithms
Search algorithms
The course also spends more time than most other courses of its kind looking at what’s available in the JDK. Students wanting to understand how things work "under the hood" will benefit enormously from this course.
Why learn about data structures and algorithms?
The reality is, the more you learn about data structures and algorithms, the better a programmer you become.
Why?
Because, data structures and algorithms are effectively patterns for solving problems. You want to add as many of them as you can to your skill-set. By doing so, you will find you solve more problems, and use the right tools for the job, in a more elegant way. And you will learn a heap of them in this course.
Why enrolling in this course is the best decision you can make.
Your instructor, Sarah Ettritch has over 25 years’ software development experience and has been working with Java since JDK 1.1. She has spent many years creating tools used by developers, which required a deep knowledge of data structures and algorithms, and is perfectly qualified to teach this course.
Most courses focus on giving you the theory of how things work, so that you can take an interview. Whilst the theory is important, the knowledge of how to implement these data structures and algorithms are of vital importance.
This course goes over the theory of how things work, but only to give you what you need to know to understand the implementation covered. The main focus of the course is to give you a real understanding of how things work under the hood, so that you can apply this to future programming projects.
If you want to actually understand how things work, and be able to take that understanding and apply it to your own programs, then this course is for you.
After completing this course, you will have a solid understanding of data structures and algorithms (both the theory, and the implementation).
The sooner you sign up for this course, the sooner you will have the skills and knowledge you need to increase your job or consulting opportunities. Java developers with key skills and understanding of data structures and algorithms are in high demand and get paid extremely well.
If you are ready for that new job promotion or consulting opportunity, it's time to get started.
Why not get started today?
Click the Signup button to sign up for the course
FAQ
FAQ area empty
Course curriculum
-
Course Introduction and Updates by Tim Buchalka
Xem trước -
Data Structures and Algorithms: Course Overview
Xem trước -
JDK 8 Installation Guide for Windows Users
Xem trước -
JDK 8 Installation Guide for macOS Users
Xem trước -
JDK 8 Installation Guide for Linux (Ubuntu)
Xem trước -
IntelliJ IDEA Installation Guide for Windows
Xem trước -
IntelliJ IDEA Installation Guide for macOS
Xem trước -
IntelliJ IDEA Installation Guide for Linux (Ubuntu)
Xem trước -
Understanding Data Structures: An Introduction
Xem trước -
Understanding Algorithms: An Introduction
Xem trước
-
Introduction to Sorting Algorithms
Xem trước -
Bubble Sort Explained: Theory and In-Place Sorting
Xem trước -
Bubble Sort Implementation in Java: Step-by-Step Guide
Xem trước -
Stable vs. Unstable Sorting Algorithms Explained
Xem trước -
Selection Sort: In-Place Sorting Algorithm Explained
Xem trước -
Selection Sort Implementation in Java: A Practical Guide
Xem trước -
Insertion Sort: Theory and Step-by-Step Explanation
Xem trước -
Insertion Sort: Implementation
Xem trước -
Shell Sort: An Efficient Sorting Algorithm Explained
Xem trước -
Shell Sort Implementation in Java: A Step-by-Step Guide
Xem trước -
Recursion Explained: A Deep Dive into Recursive Methods
Xem trước -
Merge Sort: Divide and Conquer Sorting Algorithm Explained
Xem trước -
Merge Sort Implementation in Java: A Practical Guide
Xem trước -
Quick Sort: Divide and Conquer Sorting Algorithm
Xem trước -
Quick Sort Implementation in Java: A Practical Guide
Xem trước -
Counting Sort: Linear Time Sorting Algorithm Explained
Xem trước -
Counting Sort Implementation in Java: A Step-by-Step Guide
Xem trước -
Radix Sort: Sorting Algorithm for Fixed Width Data
Xem trước -
Stable Counting Sort: Theory and Implementation
Xem trước -
Radix Sort Implementation in Java: A Practical Guide
Xem trước -
Sorting Arrays in Java: Using the Arrays Class
Xem trước -
Merge Sort Challenge: Descending Order Sorting
Xem trước -
Merge Sort Challenge Solution: Descending Order
Xem trước -
Insertion Sort Challenge: Recursive Implementation
Xem trước -
Insertion Sort Challenge Solution: Recursive Implementation
Xem trước -
Radix Sort Challenge: String Sorting Implementation
Xem trước -
Radix Sort Challenge Solution: String Sorting
Xem trước
-
Introduction to Lists in Java: Exploring the java.util.List Interface
Xem trước -
Understanding Abstract Data Types (ADTs): Definitions and Core Concepts
Xem trước -
Deep Dive into ArrayLists: Capacity, Size, and Dynamic Array Implementation
Xem trước -
Vectors in Java: Thread-Safe Operations and Synchronization vs. ArrayList
Xem trước -
Singly Linked Lists: Conceptual Overview and Node-Based Data Organization
Xem trước -
Implementing a Singly Linked List in Java: Node Creation and List Operations
Xem trước -
Doubly Linked Lists: Theory, Bidirectional Traversal, and Node Relationships
Xem trước -
Implementing a Doubly Linked List in Java: Enhancing Node Connections
Xem trước -
JDK LinkedList Class: Exploring Java's Built-in Doubly Linked List Features
Xem trước -
Linked Lists Coding Challenge 1: Adding Before a Node in a Linked List
Xem trước -
Linked List Challenge 1 Solution Implementing Add Before in a Doubly Linked List
Xem trước -
Linked Lists Coding Challenge 2: Sorted Insertion into a Singly Linked List
Xem trước -
Linked List Challenge 2 Solution: Maintaining Sorted Order
Xem trước
-
Introduction to Stacks: Fundamental Concepts and Applications
Xem trước -
Stack Operations and Principles: Understanding LIFO (Last-In, First-Out)
Xem trước -
Implementing Stacks with Arrays: Array-Backed Stack Data Structures
Xem trước -
Using JDK's LinkedList for Stacks: Leveraging Built-in Java Functionality
Xem trước -
Stack Challenge: Develop a Palindrome Checker Using Stack Operations
Xem trước -
Palindrome Checker Using Stacks: A Step-by-Step Solution and Code Walkthrough
Xem trước
-
Queue Data Structures: Introduction and Core Concepts for Beginners in Java
Xem trước -
Queue Fundamentals: FIFO Operations, Theory, and Time Complexity Analysis
Xem trước -
Implementing Queues with Arrays: A Practical Java Coding Guide with Resizing
Xem trước -
Enhancing Queues with Circular Arrays: Optimizing Space and Efficiency - Part 1
Xem trước -
Advanced Circular Queue Implementation: Resizing, Unwrapping, and Optimization
Xem trước -
Exploring Queue and Deque Interfaces in the Java Development Kit (JDK)
Xem trước -
Coding Challenge: Test Palindrome Recognition Skills Using a Queue and a Stack
Xem trước -
Palindrome Checker: Solution Using Stack and Queue in Java Detailed Walkthrough
Xem trước
-
Introduction to Hash Tables: Key-Value Pairs, and Advantages in Data Access
Xem trước -
Hash Table Fundamentals: Hashing, Keys, Values, Load Factor and Collisions
Xem trước -
Implementing Hash Tables with Arrays: A Practical Java Coding Guide
Xem trước -
Collision Resolution in Hash Tables with Linear Probing and Rehasing Techniques
Xem trước -
Implementing the Remove Method when Using Linear Probing in Hash Tables
Xem trước -
Rehashing After Removing with Linear Probing for Improved Hash Table Performance
Xem trước -
Handling Hash Table Collisions with Chaining: A Linked List Approach
Xem trước -
Exploring HashMap, Hashtable, and LinkedHashMap in the Java Development Kit
Xem trước -
Bucket Sort Algorithm Explained: Understanding the Theory and Implementation
Xem trước -
Implementing the Bucket Sort Algorithm in Java: A Step-by-Step Code Example
Xem trước -
Hashtables Challenge #1: Develop a Hashing Function for Integer Array Mapping
Xem trước -
Hashing Function Challenge Solution: Creating an Integer to Array Index Mapper
Xem trước -
Hashtables Challenge #2: Removing Duplicates from a LinkedList Using a HashMap
Xem trước -
Hash Table Challenge #2 Solution: Eliminate Duplicates in a LinkedList Expertly
Xem trước
-
A Comprehensive Introduction to Tree Data Structures in Java
Xem trước -
Fundamental Theory and Terminology of Tree Data Structures in Java
Xem trước -
Deep Dive into Binary Search Trees: Characteristics and Theory
Xem trước -
Implementing Insertion Operations in Binary Search Trees with Java
Xem trước -
Mastering Tree Traversal Techniques: In-Order, Pre-Order and Post-Order
Xem trước -
Implementing Get, Min, and Max Operations on Binary Search Trees
Xem trước -
Binary Search Tree Deletion: Handling Cases with Zero or One Child
Xem trước -
Implementing Node Deletion in Binary Search Trees: Zero and One Child
Xem trước -
Mastering Binary Search Tree Deletion: Handling Nodes with Two Children
Xem trước -
Implementing Deletion of Nodes with Two Children in Binary Search Trees
Xem trước -
Exploring Tree-Related Classes and Structures within the Java JDK
Xem trước -
Challenge Exercise: Implementing Pre-Order Traversal in Binary Trees
Xem trước -
Solution and Explanation for Pre-Order Traversal in Binary Trees
Xem trước -
Hands-On Practice: Insertion and Deletion Operations in Binary Trees
Xem trước
-
Comprehensive Introduction to Heap Data Structures in Java
Xem trước -
Understanding the Underlying Theory and Properties of Heaps
Xem trước -
Efficiently Storing and Representing Heaps as Arrays in Java
Xem trước -
Implementing Insertion Operations in Max-Heaps Using Java
Xem trước -
Theory and Concepts of Deletion Operations in Heap Data Structures
Xem trước -
Implementing Deletion in Heaps: Handling All Cases with Java Code
Xem trước -
Implementing the Peek Operation for Efficient Heap Data Access
Xem trước -
Priority Queues: Understanding and Utilizing Heap-Based Implementations
Xem trước -
Heapsort Algorithm Explained: In-Place Sorting with Max-Heaps (Theory)
Xem trước -
Implementing the Heapsort Algorithm in Java: A Step-by-Step Guide
Xem trước
Requirment
-
Previous experience with an object-oriented programming language, preferably Java (but any OO language is fine).
Outcomes
-
Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications
-
Code an implementation of each data structure, so you understand how they work under the covers
-
Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets
-
Learn what’s available in the JDK for storing and sorting data, so you won’t waste time reinventing the wheel
2 Students
16 Courses
0 review