
Install the Java development kit and Eclipse IDE, set up the workspace, and write a hello world program. Understand the JDK, JRE, and JVM concepts and run your application.
Learn Java language basics by building simple programs, declaring and using int and double types, applying final constants, and calculating circle area with pi, in Eclipse with key tips.
Explore control flow in Java with if statements, boolean logic, and comparison operators; learn to combine conditions using and, or, and distinguish assignment from equality in conditionals.
Learn to control program flow with if, else, and else-if chains in Java, implement mutually exclusive conditions, calculate triangle and rectangle areas, and validate input ranges.
Explore how to use the switch statement in Java to map a month value to its name, employing cases, breaks, and a default fallback.
Discover Java's eight primitive types—byte, short, int, long, float, double, boolean, and char—and how bit limits, overflow, and ASCII affect storage and operations.
Learn how arrays in Java allocate memory, are fixed size, and use 0-based indexing, with examples of arrays and array lists and primitive versus object types.
Explore loops in Java, including while, do-while, for, and foreach. Learn array and array list iteration, manage bounds and increments, and format output effectively.
Explore strings in Java, from command line arguments to concatenation, length, substring, and toCharArray. Master trim, replace, contains, equals, equalsIgnoreCase, and split, with guidance to docs for method signatures.
Explore the Java math library, including pi and e, with key functions like abs, round, floor, ceil, toRadians, cos, sin, tan, pow, sqrt, log, and Random.
Master static methods in Java by building power and factorial routines, examining parameters, return types, recursion, base cases, and basic access modifiers.
Learn how to use the Java Scanner class to read input from files and the command line, handle file not found exceptions, and process tokens with nextLine, nextInt, and nextDouble.
Explore io streams in Java, using buffered writers and readers to read from and write to files, with flush and close guarantees, and examine prime factorization via trial division.
Master test-driven development with JUnit in Java, writing unit tests that guide implementation, using before and after annotations, and configuring Eclipse to run and debug tests.
Build a basic guessing game in Java using test driven development, showcasing static imports, package organization, and unit tests to verify input validation, game logic, and user feedback.
Learn practical debugging techniques in Eclipse for Java, including using breakpoints, stack view, and step-by-step execution to diagnose and fix runtime errors in a shunting-yard algorithm example.
Explore how Java handles errors and exceptions, learn to use try-catch blocks and finally, and understand specific exception types and the importance of catch order for robust programs.
Export and publish your Java program as a runnable jar, run from the command line, and share source and jar on GitHub for public deployment.
Master key object oriented concepts in Java, including classes, instances, and references. Understand constructors, static versus instance members, fields, methods, interfaces, and the role of garbage collection.
Demonstrate implementing an entity class in Java within a model-view-controller game architecture, defining x and y positions, speed, and angle, with boundary clamping and tests guiding behavior.
Develop and test an object-oriented entity class in Java, implementing getters and setters, distance, tickSecond, and wall checks within a 2D game loop using GLFW.
Learn Java object-oriented inheritance, using extends to build animal hierarchies, explore single inheritance and the diamond problem, and apply interfaces, abstract and final classes, and polymorphism for flexible design.
Explore the differences between abstract classes and interfaces in Java, with practical examples using an abstract Animal class and a driveable interface for a car.
Explore how to implement interfaces in Java with a concrete car example, extending Entity, using enums for color, and managing speed, odometer, and cruise control in an object-oriented design.
Explore implementing abstract classes and a driveable interface in a car class within a Java object oriented course, covering constructor normalization, input validation, angle handling, turning, and crash logic.
Implement a concrete class from a robust interface in abstract classes and interfaces part 4, ensure speed bounds and crash handling, and finalize a debug-friendly toString for testing.
Explore 2D graphics and sprites in object-oriented java using LWJGL and GLFW to render textures with OpenGL, set up a window, and outline the rendering loop.
In object oriented Java, part 2d graphics and sprites, implement a texture class to load PNGs, bind with OpenGL, and render textures for a car and a star.
Implement keyboard controls in object oriented java using GLFW: W A S D for gas, brake, turning; C cruise control; E to spawn an entity with a random velocity.
Learn to save and load a Java game by serializing an array list of entities to savegame.ser with object streams, then restore them on startup.
Explore building a simple Java HTTP server using server sockets on localhost:2017, handling a client via input/output streams, and sending an HTML response over HTTP/1.0.
Explore the Java collections interface, comparing lists, sets, and maps, focusing on performance trade-offs, contains checks, and practical usage with hash and tree structures.
Learn cryptography and security in object oriented java by implementing AES and RSA algorithms, exploring symmetric and asymmetric key cryptography, key generation, and cipher operations.
This comprehensive course, led by Mark and Justin, is designed to guide learners through mastering the Java programming language from scratch. By the end of the course, participants will have developed a strong understanding of Java syntax, common tools, and essential programming concepts.
The course begins with setting up the Eclipse Integrated Development Environment (IDE) and installing the Java Development Kit (JDK) necessary for compiling and running Java programs. Subsequent episodes cover fundamental programming constructs such as conditional statements, loops, arrays, and ArrayLists.
As the course progresses, learners delve into more advanced topics including handling Strings, utilizing the Math class for complex mathematical operations, creating and utilizing static methods, and working with input/output operations using the Scanner object.
Moreover, the course explores object-oriented programming (OOP) principles in Java, including classes, inheritance, abstract classes, and interfaces. Practical demonstrations include implementing classes, constructors, and managing exceptions effectively.
Additionally, learners will explore graphical user interface (GUI) development using the Lightweight Java Game Library (lwjgl) and rendering graphics with the Graphics Library Framework (GLFW). They will also gain insights into network programming and cryptographic procedures using the Java Standard Library.
Throughout the course, Mark and Justin provide examples, common mistakes, shortcuts, and practical exercises to reinforce learning. By the end of the series, participants will have built feature-filled programs and gained the skills necessary to tackle junior programming jobs with confidence.
Whether learners are new to programming or looking to expand their skills, this course equips them with the knowledge and tools needed to succeed in Java programming.