Foundations of AI and Machine Learning for Java Developers Course Review
Are you struggling with performance issues in your Spring, Jakarta EE, or Java EE application?
What if there were a tool that could automatically detect what caused performance issues in your JPA and Hibernate data access layer?
Wouldn’t it be awesome to have such a tool to watch your application and prevent performance issues during development, long before they affect production systems?
Well, Hypersistence Optimizer is that tool! And it works with Spring Boot, Spring Framework, Jakarta EE, Java EE, Quarkus, Micronaut, or Play Framework.
So, rather than fixing performance issues in your production system on a Saturday night, you are better off using Hypersistence Optimizer to help you prevent those issues so that you can spend your time on the things that you love!
Introduction
In this article, I’m going to review the Foundations of AI and Machine Learning for Java Developers video course from my fellow Java Champion, Frank Greco.
If you are new to AI and ML and want to get a great introduction to these topics, then you should definitely join watch the video lessons created by Frank Greco.
And, thanks to LinkedIn Learning’s generosity, until June 20, you can enroll in this video course for free.
Video Course Agenda
The course provides one hour and thirty-five minutes of video lessons that are structured as follows:
- Patterns: The Foundations of Machine Learning
- Design patterns
- Patterns are everywhere
- Regular expressions and their relationship to ML
- Machine learning definition
- Artificial Intelligence Taxonomy
- High-level description of AI and ML
- Predictive AI vs. generative AI
- Predictive AI with JSR #381
- JSR #381: Visual Recognition (VisRec)
- Sample VisRec code to train a PredAI model
- Sample VisRec code to use a PredAI model
- Demo: Running VisRec JSR #381
- Generative AI
- Large language models and NLP
- Prompts and completions
- Prompt tips
- Importance of context
- Retrieval-augmented generation (RAG)
- Different ways of using LLMs
- GenAI Services and APIs
- Available GenAI LLM services
- Accessing LLMs via stateless REST APIs
- Approaches and Java REST libraries
- Code examples of connecting to an LLM: Pure Java and LC4J
- Demo: Connecting to an LLM
- Patterns in Software Development
- Patterns in the software development process
- Determinism vs. probability
- AI flowchart
- Conclusion
The first two parts provide an introduction to AI and ML. You will learn that ML is a subcategory of AI that works well for recognizing various patterns in data sets, which can be used for predicting or generating new data that follows the identified patterns.
You will also learn that the IT industry has been using Predictive AI for over two decades (weather forecasting, financial trading, personalized ads), but it was the Generative AI that sparked the interest of the general public ever since OpenAI released its first version of ChatGPT.
The third module offers an introduction to JSR 381, a Java specification that provides a set of Java APIs for detecting, recognizing, and annotating images. There is an accompanying GitHub repository containing examples that you can run to train AI on a given set of images so that it can further predict whether new images fit into a given pattern.
The fourth and fifth modules provide a detailed description of Generative AI and give you tips about getting the most out of current LLM solutions. Frank provided a demo that we can use to connect to OpenAI using both Java REST and LangChain4j.
The sixth and seventh modules conclude that AI tools take a totally different approach than traditional programming, which is a very important thing to consider right from the start of your AI journey. While traditional programming languages and frameworks work in a deterministic way, AI works with probabilities, and for this reason, we should have a solid testing foundation that validates the output provided by AI services.
Frank Greco’s Advice
If you are now starting your AI and ML journey, then you should definitely follow Frank’s advice on this topic:
Predictive AI (PredAI) and especially Generative AI (GenAI) are quickly becoming key parts of the software development life cycle, and they are only going to grow in importance.
For Java developers, it is essential to get a solid understanding of machine learning basics. Concepts like language models, context, embeddings, and especially non-determinism are new to most of us and to many large organizations as well.
These tools go beyond what we are used to with traditional Java frameworks. To build effective systems using GenAI, PredAI, or a mix of both, you will need to understand what is happening under the hood of Java’s abstractions.
So, when you hear things like “It just works” or “A simple annotation is all you need,” take a step back and approach the problem with a critical mindset because it is probably the most useful tool you have.
— Frank Greco
If you enjoyed this article, I bet you are going to love my Book and Video Courses as well.
Conclusion
Whether you are a novice or not, taking the Foundations of AI and Machine Learning for Java Developers video course from Frank Greco is a great learning experience that I strongly recommend.
Not only will you get a better understanding of AI and ML theory, but you also have access to a GitHub repository you can play with to strengthen your practical skills.
I take this opportunity to thank Frank for creating this course and LinkedIn Learning for providing me with the access to attend it.


