AY 26/27 - Web Application Programming

This page is about the course named:

  • Web Application Programming (506-MI), for master programs IN23, 6 CFUs

I am the teacher for this course temporarily, just for the academic year 26/27.

Program, goals, requirements #

Detailed program #

  • HTML:
    • doctype, elements, tags and attributes.
    • Syntactic, stylistic and usability rules.
    • Use of a validator.
    • Sections, content management, textual semantics.
    • Hyperlinks and images.
    • Tables, divs and spans.
  • CSS:
    • DOM tree and model box.
    • Box level, style sheet syntax and inheritance.
    • Selectors, presumptions and pseudoclasses.
    • CSS properties and counters.
    • Layout, visibility and dimensions.
    • Design with CSS: positioning of blocks, layout and animations with CSS.
  • JavaScript:
    • Browser-side programming concepts.
    • Inclusion of scripts and their execution.
    • Types and typeof.
    • Literal functions, definition, anonymous and function name.
    • Function invocation: method, function, apply and constructor.
    • Parameters: arguments, default, rest, return.
    • Scope: var, global scope, block scope.
    • Hoisting.
    • Closure, Truthy and Falsy, memoization, Array and operators.
    • Inheritance: property based, dynamic inheritance, augmenting, primitives coercion.
    • Access to DOM elements via JavaScript.
    • Ajax and asynchronous communication with the server.
  • JS framework (angular / vue):
    • Introduction to some JavaScript frameworks such as angularjs and Vue.
    • Concepts of Data Binding, directives, routing and communication with REST API.

Goal of the course #

Knowledge and understanding #

  • Know and understand HTML and CSS syntax, ECMAScript 2020 (JavaScript), AJAX communication model.
  • Know and understand the principles and coarse structure of client-side web frameworks.

Applying knowledge and understanding #

  • Choose an appropriate programming language for each step of Web Application Development.
  • Gather and interpret relevant information to decide the proper architectural choices for developing a Web Application.

Making judgements #

  • Gather and interpret relevant information to decide the proper architectural choices for developing a Web Application.

Communication skills #

  • Describe the motivations behind the project choices for developing a Web Application.
  • Formulate and describe the specifications for a Web Application.

Learning skills. #

  • Consume software documentation and usage examples for any development framework for both server and client side development.

Requirements #

  • Foundations of Computer Science Algorithms and Data Structures
  • Computer Networks Databases
  • Programming (advanced)

Method, language, material #

Language of teaching #

English

Teaching method #

Frontal lectures with slide projection. Practical exercises to be carried out independently by the students, based on guides and indications provided by the lecturer..

Course material #

Teacher’s slides and lab sketches #

The course material (teacher’s slides deck) is available online.

The slides might be updated during the course.

The lectures will not be cast in streaming, but the recordings of the lectures will be available on the MS Teams team of the course (code cgwzz4o).

Lectures timetable and course calendar #

The course will start on September 28. Lectures will be held in:

  • Room A, building C2, Piazzale Europa Campus on Monday, 16.00-18.00 (in practice, 16.00-17.30 without breaks)
  • Room “Sala Atti”, building C1, Piazzale Europa Campus on Tuesday, 11.00-13.00 (in practice, 11.00-12.30 without breaks)
  • Room B, building C7, Piazzale Europa Campus on Thursday, 12.00-14.00 (in practice, 12.00-13.30 without breaks)

The lectures will be given in person and I recommend being in the room. In compliance with the current regulation students might be required to book a place in the room.

The lectures will not be cast in streaming, but the recordings of the lectures will be available on the MS Teams team of the course (code cgwzz4o).

Short announcements about lectures schedule #

  • There will be no lecture on 8/10/26 and 9/10/26 because I will be involved in the meeting of the board of the SPECIES society.

End-of-course test (exam) #

The exam consists of two parts:

  1. a practical project to be submitted three days in advance;
  2. an oral exam starting with the presentation of the project.

Student must register for the exam session of their interest using the online sistem (esse3).

“AI” usage disclaimer #

In any type of content produced by the student for admission to or participation in an exam (projects, reports, exercises, tests), the use of Large Language Model tools (such as ChatGPT and the like) must be explicitly declared. This requirement must be met even in the case of partial use. Regardless of the method of assessment, the teacher reserves the right to further investigate the student’s actual contribution with an oral exam for any type of content produced.