Data Structures and Algorithms
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Data Structures and Algorithms
This course is part of Amazon Junior Software Developer Professional Certificate
22,660 already enrolled
Included with
63 reviews
Recommended experience
63 reviews
Recommended experience
What you'll learn
Identify, implement, and analyze the efficiency and performance of basic data structures and algorithms in Java.
Apply principles of recursion in Java to solve complex problems.
Implement search and sorting algorithms in Java to optimize data processing and retrieval.
Skills you'll gain
Tools you'll learn
Details to know
15 assignments
See how employees at top companies are mastering in-demand skills
Build your Software Development expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate from Amazon
There are 4 modules in this course
This is the third course in the Amazon Junior Software Developer Professional Certificate. In this course, you will gain a deep understanding of various fundamental data structures and algorithms essential for building efficient and scalable software solutions. Starting with Advanced Data Structures, you'll explore arrays, ArrayLists, linked lists, stacks, queues, and maps, understanding their implementations, operations, advantages, and use cases. Moving on to Searching and Sorting Algorithms, you'll manipulate essential algorithms like linear and binary search, as well as various sorting algorithms, including bubble sort, insertion sort, selection sort, merge sort, and quick sort.
You will grasp the theoretical concepts and implement these algorithms in Java, gaining hands-on experience in algorithmic problem-solving. Additionally, you will be introduced to basic testing methodologies using JUnit testing, test cases, and test-driven development, ensuring the quality and reliability of your code. By the end of this course, you will be equipped with the knowledge and skills required to design efficient algorithms, manipulate complex data structures, and write robust, high-performance Java applications After completing this course, you’ll be able to: • Identify and implement basic data structures and algorithms in Java. • Analyze the efficiency and performance of data structures and algorithms in Java applications. • Identify and apply principles of recursion in Java to solve complex problems. • Implement search and sorting algorithms in Java to optimize data processing and retrieval.
In this module, you'll delve into fundamental data structures in Java, including Arrays, ArrayLists, LinkedLists, Stacks, and Queues. You'll start by understanding the basics of Arrays, focusing on their efficiency and limitations. Then, you'll explore ArrayLists and LinkedLists to learn how these dynamic data structures offer flexibility in managing collections of data. You'll also cover Stacks and Queues, mastering their use in scenarios that require Last-In-First-Out (LIFO) and First-In-First-Out (FIFO) operations, respectively. This module equips you with essential skills to effectively implement and utilize these data structures in real-world applications.
What's included
21 videos13 readings5 assignments1 programming assignment5 ungraded labs
21 videos•Total 130 minutes
- Course introduction: Data structures and algorithms•8 minutes
- Arrays in Java•6 minutes
- Operations on an Array•5 minutes
- Arrays in the real world•5 minutes
- An Amazon software engineer•4 minutes
- Collections and generics in Java•9 minutes
- Introduction to ArrayLists•6 minutes
- Operations on ArrayLists•5 minutes
- ArrayLists in action•9 minutes
- ArrayLists vs. Arrays•4 minutes
- Understanding linked lists•6 minutes
- Singly linked list•8 minutes
- Doubly linked list•7 minutes
- Comparing linked list types•7 minutes
- Operations on LinkedLists•4 minutes
- Tasks and time – arrays and lists•6 minutes
- Practical application of Stacks•8 minutes
- Introduction to Stacks•5 minutes
- Tasks and time – Stacks with arrays and lists•7 minutes
- Introducing Queues - practical applications•7 minutes
- Exploring Queues•6 minutes
13 readings•Total 220 minutes
- Project preview•5 minutes
- Course syllabus•10 minutes
- How to be successful in this course•10 minutes
- Activity: Declaring Arrays•30 minutes
- Activity: Declaring ArrayLists•30 minutes
- Linked list – behind the scenes•10 minutes
- Activity: Implementing a linked list•30 minutes
- Doubly linked list – behind the scenes•10 minutes
- Activity: Implementing a doubly linked list•30 minutes
- Activity: Implementing Stacks•30 minutes
- Module Summary: Data structures•5 minutes
- Data Structures Solution•10 minutes
- Additional resources: Data structures•10 minutes
5 assignments•Total 90 minutes
- Module Quiz: Data structures•30 minutes
- Knowledge check: Arrays•15 minutes
- Knowledge check: ArrayLists•15 minutes
- Knowledge check: Linked list•15 minutes
- Knowledge check: Stacks and queues•15 minutes
1 programming assignment•Total 30 minutes
- Graded Lab: Data Structures•30 minutes
5 ungraded labs•Total 300 minutes
- Activity: Manipulating Arrays•60 minutes
- Activity: Programming with ArrayLists•60 minutes
- Activity: Manipulating linked lists•60 minutes
- Activity: Arrays - Pushing and Popping•60 minutes
- Activity: Linked list – Pushing and Popping•60 minutes
In this module, you'll explore advanced algorithms in Java, focusing on efficient data management and retrieval techniques. You'll begin with HashMap, TreeMap, and LinkedHashMap, learning how these structures optimize data storage and access. Then, you'll dive into searching algorithms, mastering both Linear and Binary Search for quick data retrieval. The module also covers a range of sorting algorithms, including Bubble, Insertion, and Selection Sort, as well as more advanced techniques like Merge Sort and Quick Sort. This module equips you with the skills to implement and optimize algorithms for enhanced application performance.
What's included
27 videos11 readings5 assignments1 programming assignment8 ungraded labs
27 videos•Total 156 minutes
- Introduction to HashMap•7 minutes
- HashMap – basic operations•6 minutes
- HashMap – performance and use cases•6 minutes
- LinkedHashMap•4 minutes
- LinkedHashMap – basic operations•5 minutes
- LinkedHashMap – access order•6 minutes
- TreeMap•6 minutes
- Navigating a TreeMap•6 minutes
- TreeMap - performance and use cases•6 minutes
- Introduction to searching algorithms•6 minutes
- Linear search overview•6 minutes
- Linear search time complexity•5 minutes
- Binary search overview•6 minutes
- Binary search time complexity•5 minutes
- Comparing linear and binary search•5 minutes
- Introduction to sorting algorithms•7 minutes
- Bubble Sort Overview•4 minutes
- Insertion Sort Overview•5 minutes
- Selection Sort Overview•5 minutes
- Comparing Bubble, Insertion, and Selection Sort•6 minutes
- Introduction to advanced sorting algorithms•7 minutes
- Merge Sort overview•7 minutes
- Merge Sort time complexity•6 minutes
- Quick Sort overview•8 minutes
- Quick Sort time complexity•7 minutes
- Comparing Merge Sort and Quick Sort•5 minutes
- Module Summary: Searching and sorting algorithms•4 minutes
11 readings•Total 330 minutes
- Activity: HashMap - iteration•30 minutes
- Activity: LinkedHashMap - calling methods•30 minutes
- Activity: TreeMap – basic operations•30 minutes
- Activity: Implementing linear search•30 minutes
- Activity: Implementing binary search•30 minutes
- Activity: Implementing Bubble Sort•30 minutes
- Activity: Implementing Insertion Sort•30 minutes
- Activity: Implementing Selection Sort•30 minutes
- Activity: Implementing Merge Sort•30 minutes
- Activity: Implementing Quick Sort•30 minutes
- Additional resources: Searching and sorting algorithms•30 minutes
5 assignments•Total 90 minutes
- Module quiz: Searching and sorting algorithms•30 minutes
- Knowledge Check: Advanced data structures•15 minutes
- Knowledge check: Linear and binary search•15 minutes
- Knowledge Check: Bubble, Insertion, and Selection Sort•15 minutes
- Knowledge check: Merge Sort and Quick Sort•15 minutes
1 programming assignment•Total 45 minutes
- Graded lab: Searching and sorting algorithms•45 minutes
8 ungraded labs•Total 405 minutes
- Activity: Implementing HashMap•40 minutes
- Activity: Implementing TreeMap•40 minutes
- Activity: Using a linear search•25 minutes
- Activity: Using a binary search•60 minutes
- Activity: Using Bubble Sort•60 minutes
- Activity: Using Insertion Sort•60 minutes
- Activity: Using Merge Sort•60 minutes
- Activity: Using Quick Sort•60 minutes
In this module, you'll explore essential software testing practices, covering both manual and automated testing. You'll begin with the fundamentals of software testing, understanding its importance in ensuring code quality. Next, you'll dive into version control with Git and GitHub, learning how to manage and collaborate on code efficiently. The module also covers JUnit Testing, where you'll gain hands-on experience writing and executing test cases in Java. Finally, you'll delve into Test-Driven Development (TDD), mastering the approach of writing tests before code to ensure robust and maintainable software development.
What's included
13 videos4 readings4 assignments1 programming assignment2 ungraded labs
13 videos•Total 70 minutes
- Types of testing•5 minutes
- Manual and automated testing•6 minutes
- Test cases•6 minutes
- Automated tools•5 minutes
- Integrating Git•5 minutes
- Introduction to JUnit•7 minutes
- Writing JUnit tests•5 minutes
- Annotations in JUnit•5 minutes
- Test suites•5 minutes
- Introduction to TDD•6 minutes
- Red-Green-Refactor Cycle•6 minutes
- Automation in TDD•5 minutes
- Module Summary: TDD•5 minutes
4 readings•Total 55 minutes
- Activity: Writing a test case•30 minutes
- Version control with GitHub•10 minutes
- Setting up JUnit•10 minutes
- Additional resources: Basic testing•5 minutes
4 assignments•Total 75 minutes
- Module Quiz: Basic testing•30 minutes
- Knowledge Check: Introduction to software testing•15 minutes
- Knowledge Check: JUnit testing•15 minutes
- Knowledge Check: TDD•15 minutes
1 programming assignment•Total 90 minutes
- Graded Lab: Basic testing•90 minutes
2 ungraded labs•Total 120 minutes
- Activity: Parameterized tests•60 minutes
- Failing tests, passing tests, and refactoring•60 minutes
In this module, you'll apply your knowledge of data structures and algorithms to a small project, allowing you to solve real-world problems efficiently. You'll start by selecting appropriate data structures like Arrays, LinkedLists, or HashMaps for the project's requirements. As you progress, you'll implement algorithms for tasks such as searching, sorting, and managing data flows. The project will challenge you to optimize your solutions for performance and scalability, reinforcing your understanding of how to integrate data structures and algorithms into practical applications. This hands-on experience will solidify your skills in developing efficient and effective code.
What's included
4 videos3 readings1 assignment1 programming assignment
4 videos•Total 16 minutes
- Course Recap: Programming with Java•5 minutes
- Congratulations•3 minutes
- Software development at Amazon•4 minutes
- An internship at Amazon•4 minutes
3 readings•Total 105 minutes
- About the project•10 minutes
- Exemplar: Search engine•90 minutes
- Next steps•5 minutes
1 assignment•Total 180 minutes
- Course quiz: Data structures and algorithms•180 minutes
1 programming assignment•Total 90 minutes
- Course project: Creating a search engine •90 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Explore more from Software Development
Course
Course
- A
Amazon
Course
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
58.73%
- 4 stars
19.04%
- 3 stars
1.58%
- 2 stars
4.76%
- 1 star
15.87%
Showing 3 of 63
Reviewed on Feb 19, 2025
Some small errors in content, but overall well-presented and structured.
Reviewed on Jan 21, 2025
Provided a clear, engaging, and informative learning experience
Reviewed on Apr 11, 2025
Nicely Explained topics with good hands-on Lab exercises, Great course!
Frequently asked questions
This Professional Certificate is designed for aspiring junior software developers who are looking to kickstart their careers in the tech industry. It is also for current professionals that are seeking greater understanding of software development fundamentals.
This program is for you:
- If you are interested in the field of software development or just beginning to work in junior software development roles.
- If you want to switch or start a career in the field of software development
- If you already work in software development and are seeking a greater understanding of software development fundamentals, earning an Amazon software development certificate can help advance your career or help you address gaps in your knowledge, skills, and abilities.
While prior coding experience is beneficial, it's not mandatory. A basic understanding of programming concepts and a willingness to learn are recommended.
The primary advantage lies in acquiring practical skills and knowledge essential for launching a career as a junior software developer. This Professional Certificate not only equips you with the expertise needed for entry-level roles but also provides a recognized certification, bolstering your credibility within the industry. This credential offers hands-on learning experiences under the guidance of seasoned professionals.
A junior software developer usually supports software application design, development, and maintenance while receiving guidance from senior developers, making them suitable candidates for internships or apprenticeships.
More questions
Financial aid available,
