Where academic tradition
meets the exciting future

Development of Modern Web Applications (with Vaadin), 5cp


During the course you will learn what the title promises - developing modern web applications, with Vaadin. We will start by going through the basics of web applications before describing the Vaadin framework in detail. The course will focus more on practical aspects of the framework, rather than boring API descriptions. For example, we will learn not only what components are available in the framework and how they can be used in the code, but also what role they play and when should they be used to achieve different goals. Towards the end of the course we will also learn the emerging trends - from declarative UI through web components to progressive web applications.

The main objective of the course is for you to gain knowledge and the necessary skills to design and develop a modern web application - ideally, using Vaadin Framework.


You do not need any prior knowledge of Vaadin or web applications - this is what you are going to learn during the course.

What you do need to have, though, is some experience with Java and software development in general. This means that you are familiar with the syntax of Java and you know the principles and practices of object-oriented programming.


The course starts in week 37, on Monday, the 12th of September, 2016.

Lectures are held on Mondays, from 8:45 until 10:00 and on Thursdays, from 8:45 until 10:00. There will be no break during a lecture.

The room for the lectures is 110AB on Mondays and XX on Thursdays in Agora building.


The course includes 12 (mandatory) lectures, twice a week:

  1. Architecture of Web Applications / Introduction to Vaadin.
  2. Overview of components.
  3. Events and data binding.
  4. Styling, theming and layouts.
  5. Extending Vaadin - server side.
  6. Extending Vaadin - client side.
  7. UX best practices / Mobile First approach.
  8. Declarative UI / Vaadin Designer.
  9. Web Components and Vaadin Elements.
  10. Quality, debugging and testing.
  11. Progressive Web Applications / Q&A session 1.
  12. Q&A session 2.

The Q&A sessions are there to help you with your understanding of the framework. They are not obligatory, instead you can just come and ask whatever is puzzling you about software development that involves Vaadin Framework. Note that the lecturer might not be able to answer all the questions ;)

Passing the course

To pass the course you will need to deliver a working open-source software written with Vaadin. This means the following:

  • the software is available in the internet by the deadline, and
  • the source code is hosted in some publicly available repository, and
  • the software performs its major tasks without (obvious) bugs.


There will be a hackathon once the course ends, during which you will have an opportunity to sit together with your friends to design and implement a software of your choice - based on what you have learned during the course. This is the preferred way of passing the course.

Group work

If you miss the hackathon day, or you prefer regular boring group work, you can form a team of 3 to 5 people, get an idea for a useful software to implement and then get an approval from the lecturer. Once you fulfil all those requirements, you can start developing the application.

Individual work

First of all, software development is not individual work. For those of you, who still prefer it and insist on doing so, there is an option of passing the course by delivering an advanced Vaadin add-on, after getting a green light from the lecturer.

Of course, you can also create a stunning, out of this world application - during previous editions of the course a shoot-em-up and a physics engine were written with Vaadin. If you feel like you can deliver this sort of software - let the lecturer approve it and go implement it.