Design Patterns

Details

Schedule
Semester
Spring
Assessment
Oral Exam
Examples

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:

  1. Requirements
  2. Principles
  3. Creational Patterns
    1. Abstract Factory, Factory Method
      Reading Assignment
    2. Builder, Prototype, Singleton
      Reading Assignment
  4. Structuraal Patterns
    1. Adapter, Proxy
      Reading Assignment
    2. Composite, Decorator
      Reading Assignment
    3. Bridge, Facade, Flyweight
      Reading Assignment
  5. Behavioral Patterns
    1. CoR, Command, Interpterter, Mediator
    2. Observer
    3. Strategy, Template Method
    4. State, Memento
    5. 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

Details

Schedule
Semester
Autumn
Project Work
Exam

Lectures

  1. Requirements
  2. Overview of Distributed Systems
  3. Distributed Computational Systems
  4. Distributed Information Systems
  5. Scaling Techniques
  6. Enterprise Integration Patterns
  7. Spring Integration
  8. Spring Cloud
  9. Service Oriented Architecture
  10. 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

Details

Schedule
Semester
Autumn
Assessment
Project based
Environment
Examples

Lectures

  1. Requirements
  2. Software Quality
  3. Principles of Software Testing
  4. Functional Testing
  5. Unit, Component and Integration Tests in Java
  6. Testing of Persistance Layer
  7. UI Testing
  8. Classic Software Development Methodologies
  9. 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.

Details

Schedule
Semester
Autumn
Project Work
Assessment
Environment

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.

Details

Schedule
Semester
Spring
Project Work
Exam

Lectures

  1. Requirements
  2. CSS Preprocessors
  3. SASS
  4. Bootstrap
  5. AngularJS
  6. Jasmine
  7. Node.js
  8. Overview of Web Development
  9. Distributed Information Systems
  10. Scaling Techniques
  11. Service Oriented Architecture
  12. 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

Details

Schedule
Semester
Autumn
Project Work
Assessment
Exam

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