Web and mobile programming

A.Y. 2020/2021
Overall hours
Learning objectives
This course is aimed at introducing WWW programming concepts and techniques. In particular: the fundamentals concepts of the WWW; the fundamentals of Web Applications desing; the main technologies available for developing Web Applications; the main design patterns adopted in developing Web Applications.
Expected learning outcomes
The aim of the course is for the student to acquire a series of knowledge, skills, and competences, the main ones of which are:

- Understanding the principles that have driven the evolution of the Web.
- Understanding the basic principles of designing a Web application.
- Knowledge of the main technologies available for the development of Web applications.
- Knowledge of the most common design patterns adopted for solving recurring problems in Web application programming.

- Organize a web application project
- Verify the spread of technology or module
- Test the code of a Web application
- Evaluate the performance results of a Web application
- Document the main design phases of a Web application

- Evaluate the most suitable technological standards for the realization of a project
- Evaluate the consistency of a project with its expected objectives
- Evaluate interventions for the improvement of the performances of an application
- Illustrate the design phases of a Web application
Course syllabus and organization

Single session

Lesson period
Third four month period
Course syllabus
This course is organized into five modules that are described in the followings:

1. History and architecture of the WWW
- From the Internet to the Web
- The Web Standards
- The first years and the competition for Standards
- The fundament of Web Scalability
- Web 2.0, Web mobile and Cloud Architecture

2. Interface
- HTML, syntax and parsing
- AJAX and Javascript
- CSS3
- HTML5, new vocabulary
- HTML5, Canvas and SVG
- HTML5, Communication API
- HTML5, offline applications

3. Data
- HTML for representing documents
- HTML for representing interfaces
- Data management in multichannel context
- The REST protocols
- From database to Cloud architectures

4. Procedures
- CGI and server-side scripting
- JavaScript
- NodeJS, modules
- NodeJS, event management
- NodeJS, creation and manipulation of files
- NodeJS, HTTP communication
- NodeJS, templating and rendering
- NodeJS, middleware functions
- Design patterns for Web Applications

5. Design Web Applications
- The digital economy
- Business Models for the Web
- The network externality
- Usability and Information architecture
- Framework for programming Web and Mobile Applications
Prerequisites for admission
An understanding of the basic programming concepts and the ability to read a text in English is required.
Teaching methods
The topics of the course will be addressed through lectures, with the help of transparencies and teaching materials that the teacher will make available from time to time on the Ariel platform. During the lessons exercises and demonstrations will also be carried out to help the student's learning path.
Attendance, although not mandatory, is strongly recommended.
Teaching Resources
Mandatory materials
· Slides and exercises made available on the Ariel platform

Optional materials
· HTML 5 e CSS 3 - Gabriele Gigliotti, Milano: Apogeo, c2011
· Professional Node.js Building Javascript-Based Scalable Software - Pedro Teixeira: John Wiley & Sons, Inc. 2013
· HTML5, A vocabulary and associated APIs for HTML and XHTML: http://www.w3.org/TR/html5/
· Beginning JavaScript with DOM scripting and Ajax /- Russ Ferguson, Christian Heilmann. 2013
Assessment methods and Criteria
The exam consists of two tests:
Written exam: exercises + open-ended questions;
Oral examination: project (with written report) + oral discussion of the project.
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor: Ceravolo Paolo