Syllabus - Java From Scratch
No of hours Form Modules Scope Guidelines Software
- Data types, variables, constants, operators, casting
- String class
- Conditional statements, visibility
- Loops - Java 8 SE
- Arrays Use maven and IntelliJ; First - IntelliJ IDEA Community
Java -
35 stationary - OOP (class, object, state, behaviour) project can be plain Java Edition
Fundamentals project - Maven 3
- Fields, methods, constructors, packages, imports
- varargs
- Date, Time
- Regular expressions
- Static fields, methods and classes
- Basic CLI commands
- GIT Commands: init, add, commit, branch, merge
- Remote repositories: clone, push, pull - practical usage of GIT and - GIT 2+
video Git
- Tools to choose from: CLI and/or IntelliJ IDEA CLI
- Simple apps helping
- Exercises based on theory from Java - Fundamentals
understanding and
Java - - Exercises for GIT
developing skills for Java - - GIT 2+
21 stationary Fundamentals:
Fundamentals
Coding - Use GIT
- Introduction to software testing
- Exercises for writing unit - JUnit 5
Software Testing - - Good practices (FIRST principles etc.)
7 stationary tests - AssertJ 3.8.x+
Fundamentals - JUnit: structure, lifecycle, assertions, custom assertions
- Practical usage of TDD
- Matchers library (AssertJ)
- Use GIT
- Introduction to TDD
- OOP: inheritance, composition, polymorphism,
encapsulation, abstraction
- Abstract classes and methods, Interfaces, Inner Classes,
Anonymous Classes
- Enumerations - Java 8 SE
- Exceptions - IntelliJ IDEA Community
Java - Advanced
35 stationary - Generic Types - Use GIT Edition
Features - Maven 3
- Collections
- Annotations, Reflection
- IO, NIO
- Concurrent and Parallel programming: Thread, Runnable,
Callable, Executors, Atomic, synchronized, immutability,
volatile
- Software Craftsmanship Manifesto - Exercises with usage of
- Good Practices: SOLID, KISS, DRY, YAGNI, Demeter Law, selected design patterns
Clean Code with utilizing good practices
- (Optional) GRASP - Presenting example
Design Patterns implementations: Singleton
14 stationary - Fluent Interface/Fluent API
& Good Practices - Design Patterns: classification and types (Lazy, Eager, Double-
- Gang of Four Patterns checked locking, Enum) and
- Examples of describes Patterns, f.e. Singleton, Factory Builder
Method, Builder, Visitor, Decorator, Command, Strategy, - use GIT
Template Method
- Exercises for Java - Advanced Features - Apps consisting of several
- Extending block: Java - Fundamentals: Coding classes (OOP)
- Exercises in groups with using git, f.e. Gitflow - Writing Unit testing
Java - Advanced
21 stationary - Debugging
Features: Coding - Using Logger
- Handling configuration files
(properties, xml, yaml)
Relations
- Databases, Tables: Creating and Designing
- Data types, indexes, limitations - MySQL 5.7.x+/8.x.y+
- SQL - MySQL Workbench
21 stationary Databases - SQL
- CRUD 5.x.y+/8.x.y+
- Complex queries with JOIN (INNER, OUTER, LEFT, RIGHT)
- having, group by, order by, limit
- (Optional) triggers, procedures
# JDBC
- Architecture
- Connection, Statement, PreparedStatement, ResultSet,
executeQuery, executeUpdate - Exercises for JDBC (CRUD)
- Exercises for creating - JDBC 4.2+
JDBC & # Hibernate entities, relations - MySQL Connector 5.x.y+
21 stationary - Architecture
Hibernate - HQL exercises - Hibernate 5.x.y+
- Entity modeling - Use GIT
- Creating relations, directions and ownership
- HQL
- (Optional) strategies of inheritance, composite keys, one
entity in two tables
- @Embeddable
IT market in Albania and abroad
Possible career paths
Where to begin?
5 Stationary HR Class Preparing your CV & LinkedIn profile
Where to look for a job?
Recruitment process and job interview
- Working in pairs
- Creating simple CRUD app using Hibernate
- CLI interface
21 stationary Practical Project
- (Optional) Interface in Java FX
- Unit testing have to be in place
- Use GIT
- Basics of HTTP, TCP/IP, DNS, URL, URI - Practical exercises with
- Commands, Status Codes, Headers, Forwarding using mentioned tools
Introduction to
video - Tools: curl, wget, ping, telnet, ssh, wireshark, postman, - Use HTTP/1.1
HTTP - (Optional) Mention HTTP/2
http live headers
- Request, Response
- Basics of HTML and CSS - HTML5
- Creating simple HTML - CSS3
HTML, CSS, - Basics of JavaScript
14 remote - (Optional) JQuery
pages with CSS and - JavaScript 1.8.x+ / ECMA
JavaScript JavaScript
- (Optional) Bootstrap 6+
- Basics of Angular
- Architecture
- Lifecycle
Frontend - Basics of [Link] and Angular CLI - Creating simple CRUD
21 stationary Technologies: - Modules: @angular/core, @angular/forms, Angular 7+
application
Angular @angular/router
- TypeScript
- Application parts: modules, components, templates,
directives, services, pipes
- Introduction to frameworks based on Spring: Framework vs
Library
- Basics of Spring
- Spring 5+
- Spring Core - Do a lot of practical
- IntelliJ IDEA Ultimate
- Spring MVC (JSP or Thymeleaf) exercises with students
42 stationary Spring Edition
- Spring Boot - Use GIT
- (Optional) JHipster 5+
- Spring Data
- Spring Security
- Introduction to WebServices
- Integration with Angular
- Parameterized tests - Exercises covering above
- JUnit 5
Software Testing - - Testing exceptions points
- mockito 2.x
7 stationary Advanced - Mocking (Mockito) - Using Matchers library
- AssertJ 3.8.x+
Features - (optionally) PowerMock - Use GIT
- Agile Manifesto
- Scrum vs Kanban
video Agile & Scrum
- Agile vs Waterfall
- Extreme Programming
Creating Web Project, f.e: ToDo List, Twitter, Chat, Forum,
Hospital
- Work in groups of 4
- Work in Scrum, do a Code Review
- Practical usage of skills and knowledge gathered during
42 stationary Final Project
course
- Technology: Spring/SpringBoot
- (Optional) Use Thymeleaf
- (Optional) Use Angular
- Deploy project to Heroku
327