CODE 65704 ACADEMIC YEAR 2024/2025 CREDITS 6 cfu anno 2 DIGITAL HUMANITIES - INTERACTIVE SYSTEMS AND DIGITAL MEDIA 11661 (LM-92) - SAVONA 6 cfu anno 3 INFORMATICA 8759 (L-31) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE Italian TEACHING LOCATION SAVONA GENOVA SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW This teaching introduces the knowledge and skills necessary to create web applications. It covers the introduction of markup, style, and front-end languages, as well as back-end technologies for building data-driven dynamic websites. The teaching is heavily project-oriented, with a final project involving designing and developing a website from scratch. It establishes the foundation to understand, appreciate, and later utilize the most modern web development frameworks. AIMS AND CONTENT LEARNING OUTCOMES Acquiring techniques and methods for building dynamic web applications using scripting languages, including interaction with remote databases, creating rich interfaces, and integrating data exposed through public APIs, while developing a basic understanding of usability, accessibility, and security concepts. AIMS AND LEARNING OUTCOMES With this teaching, the student will be able to: UNDERSTAND how the web works, such as its client/server architecture and the statelessness of the HTTPS protocol. INSTALL a web server and a relational database management system (DBMS). UTILIZE the various languages taught in class for designing an accessible and responsive web application. UNDERSTAND the vulnerabilities of web applications and APPLY appropriate countermeasures. PRESENT their project in a few minutes (elevator pitch). PREREQUISITES To successfully follow this course, the following knowledge is required: Programming Database fundamentals Communication protocols TEACHING METHODS Theoretical and practical frontal lessons for coding scripts to create client-side and server-side web pages. SYLLABUS/CONTENT Static web pages creation with HTML5 and CSS. Server side programming: dynamic web pages creation using PHP, sintax, data and control structures, objects. Cookies management, access control, session control. Interacting with database via PHP scripts. Accessing databases with PDO. Introduction to JSON. Client side programming: Javascript and the Document Object Model specification. Introduction to JavaScript libraries and API Fetch. The REST (REpresentational State Transfer) architectural paradigm. Security, usability and accessibility in web applications. Pratical exercises and final project covering all the subjects seen during the semester. RECOMMENDED READING/BIBLIOGRAPHY Learning PHP, MySQL, JavaScript, and CSS, A Step-by-Step Guide to Creating Dynamic Websites. O'Reilly, 2012. Any other book si fine, and most of the topics of this course can be find directly online. TEACHERS AND EXAM BOARD MARINA RIBAUDO Ricevimento: By appointment (in person or online), taken via email. Exam Board MARINA RIBAUDO (President) MAURIZIO LEOTTA MATTEO DELL'AMICO (President Substitute) LESSONS LESSONS START In accordance with the academic calendar of the study program, the schedule for all the courses can be found on EasyAcademy. Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam consists of the following parts: (i) a written test for admission to the oral examination and (ii) an oral examination during which the project is discussed and some parts of the submitted code will be modified/corrected. ASSESSMENT METHODS The written test, which serves as the admission to the project discussion, consists of a few open-ended questions related to the topics covered in class. These topics provide the foundations for the project implementation. The test allows the evaluation of the student's theoretical knowledge acquired during the course. Once the written test is completed, the schedule for the oral examinations is agreed upon. The written test and the project discussion take place in the same session. The oral examination aims to assess whether the student has achieved an adequate level of practical skills and is capable of modifying the produced code. It includes: (i) project presentation; (ii) execution of the automated tests provided during the course; (iii) detailed discussion of the produced code; (iv) modification of one or more files and submission on AulaWeb. The project can be done in pairs, but the evaluation is individual. Exam schedule Data appello Orario Luogo Degree type Note 14/01/2025 14:00 GENOVA Scritto 04/02/2025 10:00 GENOVA Scritto 03/06/2025 10:00 GENOVA Scritto 08/07/2025 10:00 GENOVA Scritto 05/09/2025 10:00 GENOVA Scritto