Skip to content

thrako/java_fundamentals

Repository files navigation

Java lessons (theory and practice):

📁 Basic Syntax, Conditional Statements and Loops

Introduction to Basic Syntax
Input/Output
Comparison Operators
Implementing Control-Flow Logic
Logical Operators
Loops
Debugging and Troubleshooting

📁 Data Types and Variables

Data Types and Variables
Integer Types
Real Number Types
Type Conversion
Boolean Type
Character Type
String Type

📁 Arrays/Lists

Allocating Arrays
Assigning Values to Array Elements
Accessing Array Elements
Reading Arrays from the Console
Foreach Loop

📁 Methods/Functions

Declaring and Invoking Methods
Naming and Best Practices
Void and Return Type Methods
Methods with Parameters
Value vs. Reference Types
Overloading Methods
Program Execution Flow

📁 Lists/Arrays Advanced

Lists Overview
List Manipulating
Reading Lists from the Console
Sorting Lists and Arrays

📁 Exam Preparation - Mid Exam

📁 My Mid Exam

01 The Hunting Games
02 Tax Calculator
03 The Angry Cat

📁 Objects and Classes

Objects
Classes
Built in Classes
Defining Simple Classes
Fields
Constructors
Methods

📁 Associative Arrays / Dictionaries

Associative Arrays
HashMap <K, V>
LinkedHashMap <K, V>
TreeMap <K, V>

Lambda
Stream API

📁 Text Processing

Strings
Manipulating Strings
Building and Modifying Strings

📁 Regular Expressions

Regular Expressions Syntax
Definition and Pattern
Predefined Character Classes
Quantifiers and Grouping
Backreferences
Regular Expressions in Java

📁 Exam Preparation - Final Exam

📁 My Final Exam

01 Hogwarts
02 Encrypting Password
03 Messages Manager

📁 Basic Web Project

Model-View-Controller (MVC)
Spring MVC (Annotations, Controllers, Processing Requests)
Thymeleaf View Engine

Common lectures (theory mainly):

Language Comparison

Execution Model
Variables
Data Types
Printing on the Console
Conditional Statements
Loops
Development Environments (IDE)

Git and GitHub

Software Configuration Management
Source Control Systems
Introduction to Git:

  • Working with git, Git Bash, TortoiseGit

Introduction to GitHub:

  • Create a Repo, Clone, Commit, Push, Conflicts

HTTP Basics

The HTTP Protocol – Basic Concepts
HTTP Developer Tools
HTML Forms
HTTP Request
HTTP Response
URLs and URL Structure

HTML & CSS Basics

Introduction to HTML
HTML Common Elements
Introduction to CSS
Selectors
Block Elements
Dev Tools
Fonts

Software Development Concepts - Part 1

Fundamental Software Engineering Concepts
Math Concepts in Software Development
Object-Oriented Programming (OOP)
Functional Programming (FP)
Data Structures and Algorithms
Component-Based and Event-Driven Programming
Asynchronous Programming and Promises
Software Architectures, Front-End and Back-End

Software Development Concepts - Part 2

Front-End Development Concepts

  • Web Front-End and DOM
  • AJAX and RESTful APIs
  • Templating Engines
  • Routing and Routing Libraries
  • Libraries vs. Frameworks
  • UI Frameworks
  • Mobile Apps

Back-End Development Concepts

  • Databases and DBMS Systems
  • ORM Frameworks
  • The MVC Pattern
  • Virtualization, Cloud and Containers
  • Operating Systems and Linux Shell

Embedded Systems and IoT

  • Arduino
  • ESP32

Software Engineering Concepts

  • Software Development Lifecycle
  • Software Quality Assurance (QA)
  • Unit Testing
  • Source Control Systems
  • Project Trackers and Kanban Boards

Bitwise Operations

Bits, Numeral Systems and Bitwise Operations
Bits and Bitwise Operations

Problem Solving

Fundamental Skills of Software Engineers
Problems: Definition and Solving
Stages of Problem-Solving
Solving Exam Problems

Database Basics

Databases Introduction
SQL vs. NoSQL Databases
DBMS Systems

QA Introduction

Software Quality Assurance
QA Engineers and Resposibilities
Bugs and Bug Trackers
Testing, Test Types and Test Levels
Test Automation, Frameworks and Tools