CODE 108709 ACADEMIC YEAR 2022/2023 CREDITS 6 cfu anno 3 INGEGNERIA GESTIONALE 10716 (L-9) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 TEACHING LOCATION GENOVA SEMESTER 2° Semester TEACHING MATERIALS AULAWEB OVERVIEW The course provides the student with the key concepts related to the design and implementation of web applications, enabling him/her 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 behind the Internet and the World Wide Web. Ability to write simple static HTML web pages. Ability to complement a web page with style sheets applied to its elements (CSS). Ability to provide a web page with dynamics treatment logics (Javascript). Understanding of the basic concepts of the Django framework: MTV paradigm, ORM, URL mapping. Ability to use Django to build a web application, taking advantage of its support tools (for the connection between URL and management logic; for the synthetic or programmatic description of the page logic; for the programmatic description of the visualization logic; for pagination management, for authentication and permissions management, for the management of input forms, for the integration of accesses in SQL and the management of AJAX asynchronous requests; for automated testing). PREREQUISITES Knowledge of the Python programming language. Knowledge of relational databases and SQL language. TEACHING METHODS Lectures and hands-on exercises (possibly also online). SYLLABUS/CONTENT Context: network architectures. Context: client-server paradigm. Context: Internet (TCP / IP protocol stack, IPv4 / v6 addressing, DHCP, DNS). Context: 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 structures and constructs. Server-side technologies: - overview of the most widespread technologies and related support tools. - the Django framework and its main conceptual features. - development of an application in Django through its methodology and support tools: views, templates, models; support classes for data models and their properties; pagination support; support for the personalization of data presentation; support for user management and access restriction; support for the management of user input forms; integration with native SQL searches; integration with asynchronous interactions in Javascript; integration with automated tests. RECOMMENDED READING/BIBLIOGRAPHY Online Resources: W3Schools tutorial on HTML: https://www.w3schools.com/html/default.asp W3Schools tutorial on CSS: https://www.w3schools.com/css/default.asp W3Schools Javascript Tutorial: 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: Web and web-app programming guide (Oscar R. Frost, 2020) Web development with Django (Ben Shaw, Saurabh Badhwar, 2021) TEACHERS AND EXAM BOARD PIERGIORGIO BERTOLI Ricevimento: Upon student's request, by an e-mail to the teacher. Exam Board ALBERTO TACCHELLA (President) FABIO ROLI PIERGIORGIO BERTOLI (President Substitute) LESSONS LESSONS START Please refer to the Easy Academy portal: https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso 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; oral assessment. Exam schedule Data appello Orario Luogo Degree type Note 23/06/2023 10:00 GENOVA Orale 12/07/2023 10:00 GENOVA Orale 28/07/2023 10:00 GENOVA Orale 01/09/2023 10:00 GENOVA Orale