Comprehensive Java Course
Join our 12-week, part-time Java Developer Programming course, taught live by an instructor, online or in person in London.
This Java course is designed to give you a comprehensive understanding of Java coding. It combines instructor-led lessons, hands-on practical exercises and personalised 1-to-1 mentoring.
From the fundamentals to becoming job-ready, the programme covers it all. It is part-time, practical and tailored to your needs. You will tackle real-world challenges through practical weekly assignments and a final project.
There is one day of instructor-led training per week, so you can balance learning with your existing commitments. Each group has a maximum of four participants, which makes for a more focused and effective learning environment.
On completion you receive a PCWorkshops Java Programmer Completion Certificate. You can also go on to take the Oracle OCP certification exam. It is an industry-standard, highly recognised qualification that proves in-depth Java skills and knowledge, and it helps set you apart from other Java developers.
Course at a Glance
- Duration: 12 weeks, part-time
- Live lesson: one instructor-led day per week
- Format: live online, or in person in our classroom at Regus, Golden Cross House, London, WC2N 4JF
- Practice time: about 4-6 hours of hands-on coding each week
- Group size: maximum of 4 participants
- Mentoring: personalised 1-to-1 support scheduled around your availability
- Level: beginners welcome, from scratch to job-ready
- Certificate: PCWorkshops Java Programmer Completion Certificate
- Exam preparation: covers all topics required for the Oracle OCP Java exam (exam fee paid separately to Oracle)
- Prices and start dates: contact us
Who Should Attend the Java 12-Week Course?
This course suits the onboarding of development teams, and individuals who want an in-depth Java course that covers a range of topics and is aligned with the content required for the Oracle Java OCP certification. Many university students and graduates looking for practical skills and extra support attend this course.
Some in-work professionals attend because their employers want them to upgrade their skills. They sometimes ask to be excused from the projects, because they have limited time and already work on professional projects.
Java 12-Week Course Details
Learn Java from Scratch and Become Job-Ready in 12 Weeks
The course takes you from complete beginner to career-ready Java developer, whether you attend online or in person in London.
Flexible, Part-Time Schedule
- Duration: 12 weeks
- Commitment: one weekly live lesson (online or in person in London)
- Practice time: about 4-6 hours of hands-on coding each week
- Mentoring: personalised 1-to-1 support scheduled around your availability
Weekly Coding Tasks and Real Java Projects
- Build skills with structured Java and JavaFX exercises
- Use tools such as JavaFX Scene Builder and JUnit
- Complete quizzes, mini-tests and developer challenges
- Complete a final practical project to showcase your full-stack Java skills
Build a Portfolio with Real Code
Upload your completed Java project to GitHub or your portfolio site to demonstrate your new skills to employers.
Previous Course Projects
- Movie theatre ticket sales
- Student Management System
- Hotel Booking System
- Bank Management Project
- E-commerce Product Sales
- Services quotation system
- Quiz app
- Food Ordering System
- Media Player Application
- Tic-Tac-Toe Game
Java Course Certificate
A PCWorkshops Java Programmer Completion Certificate is issued upon completion of the course.
OCP Oracle Certification
Our Java course is designed to cover all the topics required for the Oracle OCP exam. At an extra cost, paid directly to Oracle, you can sit the OCP Oracle Certification examination to earn the industry-recognised OCP Oracle certification. The exam is sat at an official Oracle test centre under third-party supervision, and our course fully prepares you for it. Read more about the OCP Exam: Java SE 17 and Java SE 8
12-Week Java Course Syllabus
Session 1: Java Core
- Overview of Java fundamentals
- Java data types and variables: primitive types, characters, boolean, working with variables and their scope, type conversion and casting
- The String class: using the String class and String methods
- The Scanner class: getting user input
- Java operators and expressions: arithmetic, relational, assignment and logical operators, increment and decrement operators
- Decision making: if, if-else, if-else if-else, nested if-else, switch statements
- Using loops: while, do-while and for loops, the enhanced for loop, jump statements (break, continue), the return statement, nesting loops
Session 2: Object-Oriented Programming (OOP)
- Using methods: introduction to methods, calling a method
- Classes and objects: creating a class, declaring member variables, creating and using an object
- Instance variables
- Encapsulation, getters and setters
- Controlling accessibility: private, public and protected
- Class constructors and parameterized constructors
- Inheritance, overriding and polymorphism
- Abstraction, interfaces and implementing interfaces
- The dot operator and the this, static and super keywords
- The final keyword
- Nested classes, inner classes, local classes and anonymous classes
- Lambda expressions and method references
- When to use nested classes, local classes, anonymous classes and lambda expressions
- Enum types
Session 3: Exceptions, Reading and Writing Files
Handling Exceptions
- Differentiate among checked exceptions, unchecked exceptions and Errors
- Create a try-catch block and determine how exceptions alter normal program flow
- Describe the advantages of exception handling
- Create and invoke a method that throws an exception
- Recognise common exception classes (such as NullPointerException, ArithmeticException, ArrayIndexOutOfBoundsException, ClassCastException)
- Use try-catch and throw statements
- Use catch, multi-catch and finally clauses
- Create custom exceptions and auto-closeable resources
- Use auto-close resources with a try-with-resources statement
- Test invariants by using assertions
Java I/O Fundamentals
- Read and write data from the console
- Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream and PrintWriter in the java.io package
JSON Files
Session 4: Arrays
- Working with arrays and 2-D arrays
- Iterating arrays
- Using the for-each loop with Java arrays
Session 5: Collections
- The Collection interface: enables you to work with groups of objects; it is at the top of the collections hierarchy
- The List interface: extends Collection; an instance of List stores an ordered collection of elements
- The Set: extends Collection to handle sets, which must contain unique elements
- The SortedSet: extends Set to handle sorted sets
- The Map: maps unique keys to values
Session 6: Streams and Filters
Streams and Filters
- Use the java.util.Comparator and java.lang.Comparable interfaces
- Collections, streams and filters
- Iterate using the forEach methods of streams and lists
- Describe the Stream interface and the stream pipeline
- Filter a collection by using lambda expressions
- Use method references with streams
Lambda Built-in Functional Interfaces
- Use the built-in interfaces in the java.util.function package, such as Predicate, Consumer, Function and Supplier
- Develop code that uses primitive versions of functional interfaces
- Develop code that uses binary versions of functional interfaces
- Develop code that uses the UnaryOperator interface
Java Stream API
- Extract data from an object using peek() and map(), including primitive versions of map()
- Search for data using the search methods of the Stream classes: findFirst, findAny, anyMatch, allMatch, noneMatch
- Develop code that uses the Optional class
- Develop code that uses stream data methods and calculation methods
- Sort a collection using the Stream API
- Save results to a collection using the collect method, and group or partition data using the Collectors class
- Use flatMap() methods in the Stream API
Session 7: File I/O, the NIO Library, Dates
Java File I/O (NIO.2)
- Use the Path interface to operate on file and directory paths
- Use the Files class to check, read, delete, copy, move and manage the metadata of a file or directory
- Use the Stream API with NIO.2
Working with Selected Classes from the Java API
- Manipulate data using the StringBuilder class
- String methods
- Create and manipulate Strings
- Random functions
- The Math class
Date/Time API
- Create and manage date-based and time-based events, including combining date and time into a single object, using LocalDate, LocalTime, LocalDateTime, Instant, Period and Duration
- Work with dates and times across time zones and manage changes resulting from daylight saving, including formatting date and time values
- Define, create and manage date-based and time-based events using Instant, Period, Duration and TemporalUnit
Localization
- Read and set the locale by using the Locale object
- Create and read a Properties file
- Build a resource bundle for each locale and load a resource bundle in an application
Session 8: Database and JDBC
Relational Database and SQL
- Relational database concepts: what a relational database is, relationships, tables, rows and columns, indexes, primary keys and foreign keys, data types
- SQL language essentials: the SQL SELECT statement
- SQL conditions and the WHERE clause: greater than, less than, =, NOT, BETWEEN, AND, OR, LIKE, wildcards
- The SQL ORDER BY clause
- SQL arithmetic operations and expression queries
- SQL column aliases
- LIMIT/TOP and DISTINCT
- Working with NULL values
- Summarising and grouping data: aggregate functions (SUM, AVG, COUNT, MAX, MIN), the GROUP BY clause, the HAVING clause
- Querying multiple tables: joining tables, inner joins, outer joins, self joins, full joins, cross joins, alternative join syntax
- Combining queries: the UNION, INTERSECT and MINUS operators
- Basic subqueries
- SQL queries, DML, DDL commands and stored procedures
- Introduction to Big Data, NoSQL databases and Hadoop
JDBC
JDBC stands for Java Database Connectivity. It is a Java API, part of Java SE (Java Standard Edition), used to connect to a database and execute queries. The JDBC API uses JDBC drivers to connect with the database.
- Connect to databases and embed SQL queries to interact with a database while coding
- Define the layout of the Java JDBC API
- Connect to a database by using a JDBC driver
- Submit queries and get results from the database
- Specify JDBC driver information externally
- Create and drop a database using JDBC
- Create and drop a table using JDBC
- Insert, update and delete records using JDBC
- Select records using JDBC
Session 9: Threads
- Life cycle of a thread
- Thread priorities
- Create a thread by implementing the Runnable interface
- Create a thread by extending the Thread class
- Thread methods
Major Java Multithreading Concepts
- What is thread synchronisation?
- Handling inter-thread communication
- Handling thread deadlock
- Processes and threads, thread objects
- Defining and starting a thread, pausing execution with sleep
- Interrupts and joins
- The SimpleThreads example
- Synchronisation, thread interference, memory consistency errors, synchronised methods, intrinsic locks and synchronisation
- Atomic access, liveness, deadlock, starvation and livelock
- Executors, executor interfaces, thread pools, Fork/Join, concurrent collections
- Guarded blocks and immutable objects
- A synchronised class example
- A strategy for defining immutable objects, high-level concurrency objects, lock objects
Session 10: JUnit
- Overview: different types of testing
- Principles of unit testing using JUnit
- JUnit environment setup
- JUnit test framework
- JUnit basic usage and API
- Writing tests
- Using assertions
- Execution procedure and executing tests
- Suite tests
- Ignoring tests
- Time tests
- Exceptions tests
- Parameterized tests
- Plugging JUnit in with Ant
- Plugging JUnit in with Eclipse
- JUnit extensions
Session 11: Java Spring Boot
- Why choose Spring as your Java framework?
- Inversion of Control and Dependency Injection with Spring
- Constructor Dependency Injection in Spring
- What is a Spring Bean?
- Spring Bean scopes
- Spring Bean annotations
- The Spring @Autowired annotation
- Wiring in Spring: @Autowired, @Resource and @Inject
- The Spring @Qualifier annotation
- @Component vs @Repository and @Service in Spring
- Properties with Spring
- Create a simple Java Spring Boot web application
Introduction to JPA with Spring
- Transactions with Spring and JPA
- Spring JDBC
- Spring persistence tutorial
- Create a simple Java Spring Boot login application using CRUD operations
Session 12: Front Ends and JavaFX
Getting Started with JavaFX
JavaFX is a software platform for creating and delivering desktop applications, as well as rich Internet applications (RIAs). It is intended to replace Swing as the standard GUI library for Java SE.
- Get acquainted with the JavaFX architecture
- JavaFX deployment guide
Graphics
- Getting started with JavaFX 3D graphics
- Use the Image Ops API
- Work with Canvas
JavaFX User Interface Components
- Work with JavaFX UI controls
- Create charts
- Add text in JavaFX
- Add HTML content
- Work with layouts
- Skin applications with CSS within JavaFX
- Build a UI with FXML
- Handle events
JavaFX Scene Builder 2
JavaFX Scene Builder is a visual layout tool that lets you quickly design JavaFX application user interfaces without coding. You can drag and drop UI components with Scene Builder.
- Install Scene Builder
- Get started with JavaFX Scene Builder
- Working with Scene Builder
- Design a UI with Scene Builder
- Use JavaFX Scene Builder with Java IDEs
Java 12-Week Course FAQs
- How long is the Java 12-Week Course?
- The course runs for 12 weeks with one live instructor-led day per week, plus about 4-6 hours of hands-on coding practice each week.
- Is the course suitable for complete beginners?
- Yes. The course takes you from Java fundamentals to job-ready skills, with theory and practical projects.
- Can I attend the Java 12-Week Course online?
- Yes. The weekly lesson is live and instructor-led, either online or in person at our London classroom at Regus, Golden Cross House, London, WC2N 4JF.
- How many people are in each group?
- Each group has a maximum of four participants, so everyone gets personal attention. 1-to-1 mentoring is also scheduled around your availability.
- Will I receive a certificate?
- Yes. A PCWorkshops Java Programmer Completion Certificate is issued when you complete the course.
- Does the course prepare me for the Oracle OCP exam?
- Yes. The course covers all the topics required for the Oracle OCP Java exam. The exam itself is taken at an official Oracle test centre under third-party supervision, at an extra cost paid directly to Oracle.
- What projects do students build?
- Previous project topics include a movie theatre ticket sales system, a student management system, a hotel booking system, a bank management project, e-commerce product sales, a services quotation system, a quiz app, a food ordering system, a media player application and a tic-tac-toe game.
Why should I learn Java? Find out on the Java FAQ page
Contact Us
Why Choose Our Java Courses?
Request a Free Java Trial
Want to experience the instructor-led training before booking? Request a free Java trial or contact us to discuss your Java training requirements.
Contact PCWorkshops
London Classroom
Regus, Golden Cross HouseLondon, WC2N 4JF.
Only when booked.
