Course Outline - Java in-depth
This five day beginners’ course is designed to equip the learner with ground-up knowledge to begin his / her Java journey. As Java covers a very large spectrum in the field of computer science, a strong foundation is necessary. This course attempts to achieve that.
Expected Outcome
By the end of this course, the learner shall be able to:
- Understand what Java is.
- Comprehend what Java can be used for.
- Determine which version of Java is suitable for which job.
- Select the correct Java framework for projects.
- Code in Java via shell for fast prototyping.
- Use modern IDE for coding in Java.
- Use external Java libraries.
- Create java libraries for distribution.
- Create stand-alone software systems in Java.
- Deploy applications developed in Java by ownself.
- Debug and analyse issues with coding.
- Understand the life-cycle of coding with Java.
Prerequisites
- Access to PC [either one of these OS: MS Windows / Mac / Linux (ubuntu)]
- Permission to remote into a server via SSH
- Experience and understanding of filing system
- Internet connection
- Webcam (for online learning, not applicable for F2F)
- Microphone (for online learning, not applicable for F2F)
- Dual screens (for online learning, not applicable for F2F)
- Very basic understanding of server architecture
- Ability to comprehend the English language
- Minimum 99% attendance
- Basic education in mathematics (understanding of linear and non-linear mathematics at high-school level)
Outline
Duration: 5 days
Each Day: 8 hours, inclusive of 2 x 15 minute breaks and one hour lunch break.
The exact outline with respect to the days are as follows:
- Day 1
- Overview of Java
- Understand what different versions and forms of java are for:
- Java for application development
- Java for mobile app development
- Java for Web Application development
- Java as in integration tool
- Coding principles
- Algorithms
- Flow
- Logic
- Subroutines
- Dependencies
- Memory
- Coding in Jshell
- Hello World
- Mathematics operations
- Basic I/O
- Manipulation
- Expressions
- Variables
- Data Types
- Operators
- Conditions
- Loops
- Day 2
- Methods
- Creation
- Reusability
- Arguments
- Expressions
- Compiling
- Simple Deployment
- IDE
- Eclipse
- IntelliJ
- How to choose
- Integration
- Introduction to OOP
- Going deeper into OOP
- Refactoring
- Creating Objects from Classes
- Methods
- Day 3
- I/O within Classes
- Encapsulation in coding
- Getters and Setters
- Properties and methods
- Abstractions
- Constructors
- File access
- Database Access
- Coding project
- Assessment
- Day 4
- Collections
- Lists and Arrays - in-depth
- Generics
- Functional Programming
- Recursion
- Streams
- Threads
- Multi-threaded programming
- Synchronisation
- Utility Execution
- Day 5
- I/O within Classes
- Encapsulation in coding
- Getters and Setters
- Properties and methods
- Abstractions
- Constructors
- File access
- Database Access
- Coding project
- Assessment
Practical, connected learning
My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.