Școala informală de IT

Java - Curriculum

Școala Informală de IT

Content

1. Programming basics
2. Intro to Java
3. IntelliJ IDEA
4. Functions
5. OOP Concepts
6. Java OOP Concepts I
7. Java OOP Concepts II
8. Maven
9. Git
10. Object Containers
11. Testing
12. Generics
13. Enumerations and Annotations
14. IO
15. Exceptions
16. Java 8 & Beyond
17. Concurrency
18. Databases
19. Web Introduction
20. Java Web
21. Interview Preparation
22. Team Project

1. Programming basics

  • Course goals
  • Curricula & schedule
  • Software development process
  • Basic principles and terminology
  • Intro to programming

2. Intro to Java

  • History of Java
  • Why choose Java?
  • How do computers & JVM execute code?
  • Toolchain: JDK, JRE, java, javac, etc.
  • Application structure and elements
  • Data types
  • Java libraries
  • Flow of Control
  • Javadoc

3. IntelliJ IDEA

  • Intro to IntelliJ IDEA
  • Write, compile and execute a program
  • Coding style
  • Refactoring
  • Debugging
  • Tests & Coverage
  • Plugins

4. Functions

  • Java Methods
  • Static Methods
  • Solving problems with functions
  • Function call trace
  • Recursion
  • Libraries & Clients

5. OOP Concepts

  • Introduction
  • Abstraction
  • Encapsulation
  • Composition
  • Inheritance
  • Polymorphism
  • Dynamic dispatch
  • Modularity

6. Java OOP Concepts I

  • Everything is an Object
  • Object class
  • creating Objects
  • using Objects
  • this
  • Initialization and clean-up
  • Constructors
  • Member Initialization
  • clean-up: finalization and Garbage Collector (GC)
  • Primitive types
  • (Un)Boxing

7. Java OOP Concepts II

  • Reusing classes
  • Access control
  • super and final keywords
  • Interfaces
  • Abstract classes
  • Runtime polymorphism
  • Upcast and downcast
  • Static and dynamic binding
  • Inner, nested and anonymous classes

8. Maven

  • Project management tool
  • Project Object Model (POM)

9. Git

  • What is GIT?
  • Document management system
  • How to use it

10. Object ContainersExceptions

  • Arrays
  • List, Set, Map, Iterator, Stack, Queue
  • Equals and hashcode
  • Collection vs collections
  • Operations on collections
  • Interface and Class hierarchy

11. Testing

  • Unit Testing
  • Integration Testing
  • Functional Testing

12. Generics

  • Simple generics
  • Generic interfaces
  • Generic methods
  • Type erasure
  • Wildcards

13. Enumerations and Annotations

  • Enum
  • Basic annotations

14. IO

  • Streams
  • Standard IO
  • File IO
  • (De)Serialization

15. Exceptions

  • Understanding exceptions
  • Syntax
  • How try / catch / throw works
  • finally and try-with-resources
  • Types of exceptions
  • checked and unchecked
  • Effectively using exceptions
  • Logging
  • Stacktraces

16. Java 8 & Beyond

  • Lambda expressions
  • Functional interfaces
  • Method references
  • Streams
  • Default methods

17. Concurrency

  • Threads
  • Process
  • Call stack
  • Daemon threads
  • Join
  • Synchronization
  • Share resources
  • Tasks

18. Databases

  • Relational databases
  • Java EE Database Connectivity (JDBC)

19. Web Introduction

  • Internet
  • TCP / IP
  • World Wide Web (WWW)
  • Uniform Resource Locator (URL)
  • Client-Server Architecture
  • Domain Name Server (DNS)
  • HyperText Transfer Protocol (HTTP(s))
  • Requests and Request Methods
  • Responses and Response Status Codes
  • Web Browsers
  • Postman

20. Java Web

  • Web Server and Client
  • HTML, CSS, Javascript
  • JSON, XML
  • Servlets
  • Jakarta Server Pages (JSP)
  • Web Containers
  • Web Application Directory Structure
  • Deployment Descriptor

21. Interview Preparation

  • How to present oneself during an IT interview
  • CV formatting tips

22. Team Project