General information:
Code:
UBPJO-135
Name:
Web application technologies
Profile of education:
Academic (A)
Lecture language:
English
Semester:
Spring
Responsible teacher:
mgr inż. Konieczny Marek (marekko@agh.edu.pl)
Academic teachers:
mgr inż. Konieczny Marek (marekko@agh.edu.pl)
Module summary

The course focuses on practical aspects of creating web apps. Students will learn modern technologies on laboratories and later will practice it in their projects deployed on the cloud.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Can think and act in a creative manner, can cooperate with teammates during project work. Project,
Participation in a discussion
Skills
M_U001 Can create web applications using modern languages and frameworks. Activity during classes,
Project,
Execution of a project,
Execution of laboratory classes
M_U002 Can create, configure and use services available through different technologies. Activity during classes,
Project,
Execution of a project,
Execution of laboratory classes
M_U003 Can use various techniques and framworks as a part of web-based application development process. Activity during classes,
Project,
Execution of a project,
Execution of laboratory classes
Knowledge
M_W002 Knows and understands modern technologies, patterns and programming languages used in enterprise systems. Examination,
Activity during classes
M_W003 Knows and understands fundamental rules of software testing. Activity during classes,
Examination
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Can think and act in a creative manner, can cooperate with teammates during project work. - - + - - - - - - - -
Skills
M_U001 Can create web applications using modern languages and frameworks. - - + - - - - - - - -
M_U002 Can create, configure and use services available through different technologies. - - + - - - - - - - -
M_U003 Can use various techniques and framworks as a part of web-based application development process. - - + - - - - - - - -
Knowledge
M_W002 Knows and understands modern technologies, patterns and programming languages used in enterprise systems. + - - - - - - - - - -
M_W003 Knows and understands fundamental rules of software testing. + - - - - - - - - - -
Module content
Lectures:
  1. Introduction, history and taxonomy of web-based systems.

    • Introduction to the web-based applications
    • Network layer in the web, Hypertext Transfer Protocol
    • Taxonomy of web-based systems, from CGI to Spring
    • Introduction to J2EE technologies, Java Servlets

  2. Representational State Transfer REST

    • Introduction to Representational State Transfer REST architecture.
    • Different methods of describing and using resources.
    • Designing REST applications.

  3. Frontend technologies

    • Introduction to HTML, HTML5
    • Cascading Style Sheets (CSS), Bootstrap library
    • Introduction to Javascript, modern Javascript frameworks
    • Building Responsive Web Interfaces

  4. Web Browser

    • Web browser as an application
    • Document Object Model
    • Browser Internals
    • Rendering Web pages
    • Building Web Interfaces, UX perspective

  5. Spring Core and Spring Web

    • Introduction to Spring Framework.
    • Inversion of Control and Dependency Injection.
    • Aspect-Oriented programming.
    • Spring Model-View-Controller approach.

  6. Building Modern Web Application in Spring Framework

    • Running applications in Spring Boot
    • Accessing data with Spring Data
    • Constructing REST interfaces
    • Building UI with Thymeleaf

  7. Web Application Deployment

    • Introduction to Git, overview of GitHub
    • Clouds and virtualization
    • Deploying web applications

Laboratory classes:
  1. Building Web Interfaces

    Basics of HTML and CSS, using Bootstrap library, building Responsive Web interfaces

  2. Java Servlets

    Building simple Java Servlet-based Web applications, handling POST and GET requests, handling HTML forms.

  3. Spring Core and Spring Web

    Spring basics, creating Spring beans in different scopes, various ways of creating beans, software testing in Spring, Spring MVC architecture, creating a simple web app, integration with various services.

  4. Version Control using Git

    Introduction to Git based on GitHub service, creating repositories and committing changes, command line interface for Git.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Examination or Final test 10 h
Participation in lectures 14 h
Participation in laboratory classes 14 h
Completion of a project 40 h
Realization of independently performed tasks 22 h
Additional information
Method of calculating the final grade:

The final grade will be based on the following schema:
exam – 30%
lab activities – 30%
project – 40%

Prerequisites and additional requirements:

The course has following requirements:
- knowledge of Java programming language
- basic knowledge of operating systems
- basic knowledge of computer networks

Recommended literature and teaching resources:

Various resources available online (will be provided during lectures).

Scientific publications of module course instructors related to the topic of the module:

Load-balancing:

  • Dominique Jullier, Marek Konieczny, Sławomir Zieliński; Applying software-defined networking paradigm to tenant perspective optimization of cloud services utilization, Computer Networks 2015.

Microsevices and Web Applications:

  • Balis, Bartosz and Bartynski, Tomasz and Brzoza-Woch, Robert and Bubak, Marian and Harezlak, Daniel and Kasztelnik, Marek and Konieczny, Marek and Kwolek, Bartosz and Malawski, Maciej and Nawrocki, Piotr et al. Dedicated IT infrastructure for Smart Levee Monitoring and Flood Decision Support. E3S Web of Conferences. Vol. 7. EDP Sciences, 2016.
Additional information:

None