Education
I am working on my slideshows continuously. The new hand outs will be available in English but the legacy ones are still Hungarian.
Design Patterns
Lectures
The lectures are based on the Socratic method so there are no slideshows. On the lectures we will discuss about the topic selected from the Design Patterns book (Gamma et al).
Topics:
- Requirements
- Principles
-
Creational Patterns
- Abstract Factory, Factory Method
Reading Assignment - Builder, Prototype, Singleton
Reading Assignment
- Abstract Factory, Factory Method
-
Structuraal Patterns
- Adapter, Proxy
Reading Assignment - Composite, Decorator
Reading Assignment - Bridge, Facade, Flyweight
Reading Assignment
- Adapter, Proxy
-
Behavioral Patterns
- CoR, Command, Interpterter, Mediator
- Observer
- Strategy, Template Method
- State, Memento
- Iterator, Visitor
Practices
Students hold presentation about the usage of a given pattern. The goal of the tutorial is to improve the presentation skill of the students. Moreover, the debate about the usage of the pattern help the students to get a better understanding of the pattern.
Any object oriented programming language can be used but Java is preferred.
Distributed Systems
Lectures
- Requirements
- Overview of Distributed Systems
- Distributed Computational Systems
- Distributed Information Systems
- Scaling Techniques
- Enterprise Integration Patterns
- Spring Integration
- Spring Cloud
- Service Oriented Architecture
- Micro Services
Practices
You will learn how to build robust, scalable web applications. Standalone web applications will be integrated in order to form a bigger complex system.
The following technologies and tools are assumed to be known:
- Linux, bash
- Spring
- Tomcat
You will learn about:
- Spring Integration
- Spring Cloud
Software Projects and Testing
Lectures
- Requirements
- Software Quality
- Principles of Software Testing
- Functional Testing
- Unit, Component and Integration Tests in Java
- Testing of Persistance Layer
- UI Testing
- Classic Software Development Methodologies
- Agile Methods
Practices
The students form a developer team and create a web application. A team has about 10 members.
The following technologies and tools are assumed to be known:
- Linux, bash
- git, gitHub
- HTML, CSS, JavaScript
- Java, Maven
- Eclipse
- Tomcat, Spring
- MySQL + Workbench
You will learn about:
- JUnit
- EasyMock
- Jasmine
- Jenkins CI
Web Technologies I.
Lectures
Practices
You will learn the basics of the front-end development in the tutorials. The back-end of the web application are already implemented.
The following technologies and tools are assumed to be known:
- Linux, bash
- Java, Maven
- Eclipse
- git, gitHub
You will learn about:
- HTML
- CSS
- JavaScript
Web Technologies II.
Lectures
- Requirements
- CSS Preprocessors
- SASS
- Bootstrap
- AngularJS
- Jasmine
- Node.js
- Overview of Web Development
- Distributed Information Systems
- Scaling Techniques
- Service Oriented Architecture
- Micro Services
Practices
You will get familiar with some advanced front-end development technologies currently used. In the first part of the semester you will try each technology one-by-one. Then these technologies should be used to develop a nice front-end for the web application provided. The back-end of the web application are already implemented and available on GitHub.
The following technologies and tools are assumed to be known:
- Linux, bash
- Java, Maven
- Eclipse
- git, gitHub
- CSS
- JavaScript, AJAX
You will learn about:
- SASS
- Bootstrap
- AngularJS
- Jasmine
Web Application Development
Lectures
- Requirements
- Software Architectures (handout)
- Servlet Technology (handout)
- Spring Framework - Basics (handout)
- Component based Development (handout)
- Spring Framework - Web
- Model - View - Controler
- Spring Framework - Sessions
- REST API
- Documentations, End-point-reference
Practices
You will get familiar with the basics of back-end technologies. Tutorials are focused on the Spring framework that is quite popular these days. The practices and the learning material is tightly coupled with the Web Technologies I. subject.
The following technologies and tools are assumed to be known:
- Linux, bash
- Java, Maven
- Eclipse
- git, gitHub
You will learn about:
- Tomcat
- J2EE
- Spring
- Postman