CODE 65704 ACADEMIC YEAR 2023/2024 CREDITS 6 cfu anno 3 INFORMATICA 8759 (L-31) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE Italian TEACHING LOCATION GENOVA SEMESTER 1° Semester TEACHING MATERIALS AULAWEB OVERVIEW This course 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 course 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 course, students 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 The course includes lectures, practical exercises, and self-study at home. 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 (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 16/01/2024 09:00 GENOVA Scritto 06/02/2024 14:00 GENOVA Scritto 04/06/2024 09:00 GENOVA Scritto 09/07/2024 09:00 GENOVA Scritto 06/09/2024 09:00 GENOVA Scritto