CODE 114597 ACADEMIC YEAR 2024/2025 CREDITS 6 cfu anno 3 INGEGNERIA INFORMATICA 8719 (L-8) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE Italian (English on demand) TEACHING LOCATION GENOVA SEMESTER 2° Semester TEACHING MATERIALS AULAWEB OVERVIEW The course provides the student with the fundamental concepts related to the design and development of web applications, enabling him to create web applications using the Django framework. AIMS AND CONTENT LEARNING OUTCOMES The course aims at providing the student the key concepts concerning the design and implementation of web applications, enabling him/her to create web applications using one of the most popular tools to date, the Django framework. The course will start by providing know-how related to the context of web application programming, and will then proceed to study a key set of enabling technologies in this area: the HTML, CSS and Javascript languages, and the Python-based Django framework. For each of these technologies, the teaching will aim at providing the necessary skills which, when applied in an integrated way, allow students to design a completely functional web application, independently and from scratch. AIMS AND LEARNING OUTCOMES Understanding of network architectures and client-server architecture. Understanding of the concepts underlying the Internet and the World Wide Web. Ability to write simple static web pages in HTML. Ability to equip a web page with style sheets applied to its elements (CSS). Ability to equip a web page with dynamic processing logic (Javascript). Understanding of the basic concepts of the Django framework: MTV paradigm, ORM, URL mapping. Ability to use Django to build a web application, using its support tools (for the connection between URL and the application logic; for programming its logic; for the programmatic description of display criteria; for pagination management, for authentication and permissions management, for input forms management, for SQL access integration and AJAX asynchronous requests management; for automated testing). PREREQUISITES Required: knowledge of the Python programming language. Optional: knowledge of relational databases and SQL language. TEACHING METHODS Lectures and computer-assisted exercises (possibly also online). SYLLABUS/CONTENT Context: - network architectures. - client-server paradigm. - Internet (TCP/IP protocol stack, IPv4/v6 addressing, DHCP, DNS). - The World Wide Web {URL, HTTP protocol, notes on HTML, CSS and Javascript). Client-side technologies: - HTML: structure; main tags and attributes. - CSS: structure; main selectors and properties. - Javascript: structure; main data constructs and structures. Server-side technologies: - overview of the most widespread technologies and their support tools. - the Django framework and its main conceptual features. - development of an application in Django through its methodology and its support tools: views, templates, models; data model support classes and their properties; pagination support; support for data presentation customization; support for user management and access restriction; support for user input forms management; integration with native SQL searches; integration with asynchronous Javascript interactions; integration with automated tests. RECOMMENDED READING/BIBLIOGRAPHY Online resources: W3Schools tutorial on HTML: https:/fwww.w3schools.com/html/default.asp W3Schools tutorial on CSS: https:/fwww.w3schools.com/css/default.asp W3Schools tutorial on Javascript: https:/www.w3schools.com/js/default.asp MDN tutorial on Django: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django Paper resources: HTML & CSS: Complete guide to website development and web design (Oscar R. Frost, 2020) JAVASCRIPT: Guide to web and web-app programming (Oscar R. Frost, 2020) TEACHERS AND EXAM BOARD PIERGIORGIO BERTOLI Ricevimento: Upon student's request, by an e-mail to the teacher. Exam Board PIERGIORGIO BERTOLI (President) MASSIMO NARIZZANO ARMANDO TACCHELLA (President Substitute) LESSONS Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION Oral and practical exam. ASSESSMENT METHODS Design and implementation of a web application project and oral exam. Exam schedule Data appello Orario Luogo Degree type Note 12/06/2025 09:30 GENOVA Orale 30/06/2025 09:30 GENOVA Orale 14/07/2025 09:30 GENOVA Orale 28/07/2025 09:30 GENOVA Orale 01/09/2025 09:30 GENOVA Orale