// 24 courses indexed
The course directory
Every course we track across 10+ providers, in one searchable index. Want a shortlist picked for your goals? Run a free skill gap analysis.
Introduction to JUnit
Unlock reliable Java testing with our "Introduction to JUnit" course. Designed for students, junior developers, and QA testers who want to improve code quality and confidence, this course provides the essential foundations and practical tools of unit testing using JUnit 4 and JUnit 5. From understanding why unit tests matter to setting up JUnit, organizing tests, and integrating with build and CI tools, you’ll gain the skills to deliver maintainable, bug-resistant software. With real-world examples, actionable patterns, and hands-on tools like assertions, exception testing, parameterized test
All levels
Building Scalable Java Microservices with Spring Boot and Spring Cloud
"Microservices" describes a software design pattern in which an application is a collection of loosely coupled services. These services are fine-grained, and can be individually maintained and scaled. The microservices architecture is ideal for the public cloud, with its focus on elastic scaling with on-demand resources. In this course, you will learn how to build Java applications using Spring Boot and Spring Cloud on Google Cloud. You'll use Spring Cloud Config to manage your application's configuration. You'll send and receive messages with Pub/Sub and Spring Integration. You'll also use
All levels
Apply SOLID Design to Optimize Java ML
"Tired of ""God Classes"" and spaghetti code in your Java ML projects? This course, ""Enhance Java ML Design with SOLID Principles,"" is for senior developers and architects ready to build resilient software. The secret to reliable systems is accepting that requirements always evolve. Master the S.O.L.I.D. principles to write code that embraces future changes with minimal impact. This course is designed for senior Java developers and architects with at least 6 months of hands-on experience in Java programming and basic knowledge of machine learning. If you're ready to tackle "God Classes" and
All levels
Build AI Apps with Spring AI, OpenAI, Ollama & SpringBoot
This course features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this course, you will explore how to harness the power of Spring AI, OpenAI, and Ollama to create intelligent AI-driven applications using Java and Spring Boot. From understanding the fundamentals of large language models (LLMs) to integrating OpenAI’s API, you'll learn the best practices for building and optimizing AI apps for real-world scenarios. By diving deep int
All levels
Java: Inheritance, Exceptions and APIs
Java: Inheritance, Exceptions, and APIs is the third course of Exam Prep: Oracle Certified Associate, Java SE 8 [1Z0-808] Specialization. This course begins with essential Java fundamentals, covering syntax, variables, and data types, before progressing into more advanced topics such as object-oriented programming, inheritance, and encapsulation. Learners will explore how to apply operators and decision constructs, create and manipulate arrays, and effectively use looping mechanisms to control program flow. The course emphasizes method creation, overloading, and the use of access modifiers for
All levels
Introduction to Python
Learning Python gives the programmer a wide variety of career paths to choose from. Python is an open-source (free) programming language that is used in web programming, data science, artificial intelligence, and many scientific applications. Learning Python allows the programmer to focus on solving problems, rather than focusing on syntax. Its relative size and simplified syntax give it an edge over languages like Java and C++, yet the abundance of libraries gives it the power needed to accomplish great things. In this tutorial you will create a guessing game application that pits the comput
All levels
Learn to Teach Java: Inheritance and Recursion
Learn to program with Inheritance and Recursion in Java, and prepare to teach others using the free, online interactive CS Awesome textbook. In this course for teachers we'll guide you both in learning Java concepts and skills but also in how to effectively teach those to your students. This course will support you in teaching the Advanced Placement Computer Science A course or a similar introductory university-level programming course. We'll cover the Java concepts of inheritance and recursion, as covered in the APCS A Units 9 and 10. Each topic will begin by relating Java to block-based
All levels
Java Object Basics: Functions, Recursion, and Objects
Code and run your first Java program in minutes without installing anything! This course is designed for learners with limited coding experience, providing a solid foundation of not just Java, but core Computer Science topics that can be transferred to other languages. The modules in this course cover functions, recursion, objects, and mutability. Completion of the prior 2 courses in this specialization are recommended. To allow for a truly hands-on, self-paced learning experience, this course is video-free. Assignments contain short explanations with images and runnable code examples with s
All levels
Testing and Advanced REST with Spring Boot
Updated in May 2025. This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. Dive into the world of modern Java application development with this comprehensive course on testing and building REST APIs using Spring Boot. Learn to master JUnit and Mockito to create robust, reliable, and maintainable unit tests. Gain practical insights into setting up and optimizing build tools like Maven and Gradle, and discover how the
All levels
Java SE 17 Developer (1Z0-829): Unit 8
Unlock the full potential of Java's data management capabilities with our comprehensive online course focused on JDBC and Java I/O APIs. This course is meticulously designed to equip you with the skills needed to seamlessly connect Java applications to SQL databases using JDBC. You'll learn to create connections, execute basic, prepared, and callable statements, and process query results efficiently. Our lessons emphasize transaction control and the importance of prepared statements in preventing SQL injection attacks. Additionally, the course delves into the Java I/O API, where you'll master
All levels
Intermediate Object-Oriented Programming with Java
This 1.5 hours class is a continuation of the class Object-oriented programming with Java. We will learn and explore more advanced topics of object-oriented programming with Java. At the end of this class, you will be able to use Java to develop projects such as mobile applications. You will also be able to understand Java object specifications and use objects and frameworks created by other developers.
All levels
Engineering Maintainable Android Apps
Engineering Maintainable Android Apps, which is a 4 week MOOC that shows by example various methods for engineering maintainable Android apps, including test-driven development methods and how to develop/run unit tests using JUnit and Robotium (or equivalent automated testing frameworks for Android), as well as how to successfully apply common Java/Android software patterns to improve the extensibility and clarity of Android apps. Students will work on the appropriate automated unit quizzes, based on the material covered in the lecture videos. These lessons will demonstrate the benefits of goo
All levels
Java SE 17 Developer (1Z0-829): Unit 6
Enhance your Java development skills with our specialized online course focused on mastering the Java Platform Module System. This course is meticulously crafted to guide you through the complexities of grouping, packaging, and deploying Java code using the module system. You'll learn to define modules and their dependencies, ensuring seamless integration and interaction between different parts of your application. Our lessons cover essential command-line operations for compiling and executing modular programs, highlighting the differences from non-modular systems. You'll gain insights into wr
All levels
Cloud-Native Microservices Deployment and Observability
This course teaches how to deploy and monitor microservices in cloud-native environments using Kubernetes. Mastering these skills is critical for building scalable, observable, and maintainable distributed systems. Learners will deploy microservices to Kubernetes, use service meshes for observability, implement centralized logging with the EFK stack, and monitor system performance. These exercises give hands-on experience in real-world deployments. The course combines theoretical concepts with practical applications, covering Kubernetes features, native compiled Java microservices, and cross
All levels
Spring Framework for Java Development
Over 60% of Java developers use the Spring Framework to build enterprise-level applications. With its powerful features and extensive ecosystem, Spring is a vital tool in Java development. This course explores the Spring Framework and its core components, and guides you through setting up your development environment using Spring Initializr. During this course, you’ll learn how to develop robust applications using Spring Boot, master RESTful APIs, and build dynamic web applications with Spring MVC. You’ll discover how to configure controllers, utilize annotations, and efficiently build RE
All levels
Learn to Teach Java: Boolean Expressions, If Statements, and Iteration
Learn to program with Boolean Expressions, If Statement, and For and While Loops in Java, and prepare to teach others using the free, online interactive CS Awesome textbook. In this course for teachers we'll guide you both in learning Java concepts and skills but also in how to effectively teach those to your students. This course will support you in teaching the Advanced Placement Computer Science A course or a similar introductory university-level programming course. We'll cover the critical Java concepts of selection (if statements) and iteration (loops), as covered in the APCS A Units 3
All levels
Introduction to Java Enterprise Edition (EE)
This course focuses on JEE as a platform. We discuss the motivation and purpose, as well as some of the frequently used libraries and technologies, in the Java Enterprise Edition. We take a look at Web basics, our building blocks for understanding how the internet works. Then, we get very hands on with understanding the Servlet hierarchy, and how servlets handle request/response cycles. Finally, we learn about transferring control via forward and redirect mechanisms.
All levels
Use Java APIs to sort and search a collection of data
In this project, the learner will use the Java API to sort and search arrays and lists by implementing the Collections sort function, the binarySearch function, and the Comparator and Comparable interfaces.
All levels
Java SE 17 Developer 1Z0-829: Concurrency
Step into the world of concurrent programming with our specialized course designed to master Java's threading and concurrency capabilities. This course delves into the essentials of creating and managing worker threads using Runnable and Callable interfaces, providing you with the skills to efficiently handle concurrent code execution. You'll explore the lifecycle of threads and the automation provided by various executor services and the concurrent API, ensuring you can manage tasks effectively. Our lessons cover the intricacies of thread pooling, task submission, and lifecycle management, in
All levels
Java Data Access - SQL Primer
This course will introduce the student to the basic concepts of SQL for interaction with Relational Databases. It will illustrate basic SQL statements to create and query tables, leverage table relationships through joins and subqueries, insert and update table rows. It is, however, only intended to cover the basics needed in order for the student to progress onto the Java Database Connectivity (JDBC) and Jakarta Persistence (JPA) courses in the Data Access Specialization.
All levels
IntelliJ IDEA: Complete Course
Build a strong foundation in IntelliJ IDEA and learn how to use one of the industry's leading integrated development environments (IDEs) for Java and Kotlin development. This hands-on course is designed for beginners and early-stage developers who want to install, configure, navigate, and use IntelliJ IDEA with confidence. You'll start by setting up IntelliJ IDEA, exploring its interface, and creating your first Java or Kotlin project. As you progress, you'll discover how to improve your development workflow using built-in tools, keyboard shortcuts, live templates, Maven integration, testing
All levels
REST Assured Java - Beginners
Build practical skills in REST API testing with REST Assured in Java through a hands-on learning experience focused on designing, implementing, and validating API test cases. This course introduces the fundamentals of REST Assured, guides you through setting up a Java testing environment, and helps you create your first automated API tests before progressing to response validation and dynamic request handling. As you advance, you will learn how to parse JSON responses, extract nested data, validate HTTP status codes and response headers, and pass query parameters to simulate real-world API re
All levels
Learn Java Programming
Unlock Your Future with Java: Are you ready to take your career to the next level? Dive into the world of software development with our Java Programming Course, designed specifically for professionals looking to upskill and individuals passionate about coding. Some course highlights include; Hands-On Learning: Throughout the course you will be given the opportunity to practice what you have learned in Coursera's Programming Labs. In the labs you will be able to practice your coding and be offered the chance to solve real-world projects that bring Java to life. You'll build applications from
All levels
Java Development with Databases
Databases are the backbone of modern applications, powering everything from large scale enterprise systems to web applications. This course gives you the comprehensive grounding you need to work with databases using Java programming. Whether you have a little or no knowledge of databases, if you’re keen to understand the different types of databases and how to work with these databases using Java, this course is for you! During the course, you’ll explore the fundamentals of databases and Java Database Connectivity (JDBC). You’ll get hands-on developing database applications using Spring
All levels