A Java course for everyone - accessible yet serious, to take you from absolute beginner to an early intermediate level. What's Covered :
Style and Approach
Programming Basics: What programming is, and a carefully thought-through tour of the basics of any programming. Installing and setting up an IDE and writing your first program. The Object-Oriented Paradigm: Classes, Objects, Interfaces, Inheritance; how an OO mindset differs from a functional or imperative programming mindset; the mechanics of OO - access modifiers, dynamic dispatch, abstract base classes v interfaces. The underlying principles of OO: encapsulation, abstraction, polymorphism. Threading and Concurrency: A deep and thorough study of both old and new ways of doing threading in Java: Runnables, Callables, Threads, processes, Futures, Executors. Reflection, Annotations: The how, what and why - also the good and bad. Lambda Functions: Functional constructs that have made the crossover into the mainstream of Java - lambda functions, aggregate operators. Modern Java constructs: Interface default methods; properties and bindings too. Also detailed coverage of Futures and Callables, as well as of Lambda functions, aggregation operators. JavaFX as contrasted with Swing. Packages and Jars: The plumbing is important to understand too. Language Features: Serialisation; why the Cloneable interface sucks; exception handling; the immutability of Strings; the Object base class; primitive and object reference types; pass-by-value and pass-by-object-reference. Design: The MVC Paradigm, Observer and Command Design Patterns. Swing: Framework basics; JFrames, JPanels and JComponents; Menus and menu handling; Trees and their nuances; File choosers, buttons, browser controls. A very brief introduction to JavaFX.
The instructors are quite knowledgeable and they introduce the concepts by giving some context and then dig deep. Use Reflection, Annotations, Lambda functions and other modern Java language features. Build serious UI applications in Swing.
- This is a Java course for everyone. Whether you are a complete beginner (a liberal arts major, an accountant, doctor, and lawyer) or an engineer with some programming experience but looking to learn Java - this course is right for you.
- The course is accessible because it assumes absolutely no programming knowledge, and quickly builds up using first principles alone
- Even so, this is a serious Java programming class - the gradient is quite steep, and you will go from absolute beginner to an early intermediate level
- The course is also quirky. The examples are irreverent. Lots of little touches: repetition, zooming out so we remember the big picture, active learning with plenty of quizzes. There’s also a peppy soundtrack, and art - all shown by studies to improve cognition and recall.