Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2018/2019
Scuola Scuola di Ingegneria Civile, Ambientale e Territoriale
Docente Di Nitto Elisabetta
Cfu 5.00 Tipo insegnamento Monodisciplinare

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento

Obiettivi dell'insegnamento

The goal of the course is to enable students to learn how to conceive, design and develop software applications for the geographical domain. Python will be used as programming language because of its flexibility and its integration with relevant software libraries.

Risultati di apprendimento attesi

Dublin Descriptors

Expected learning outcomes

Knowledge and understanding

Students will learn how to:

·      Identify the phases of software development and the specific activities associated to each phase

·      Analyze software code written by others

·      Identify architectural styles and patterns

·      Understand the main elements of a programming language

Applying knowledge and understanding

Given specific project cases, students will be able to:

·      Detail the corresponding requirements

·      Define the architecture of the system

·      Develop and test code fulfilling the design specification document.

Making judgements

Given a relatively complex problem, students will be able to:

·      Analyze and understand the goals, assumptions and requirements associated with that problem and model them

·      Define the architecture of the corresponding software system using proper styles and patterns

·      Identify and define the needed verification and validation activities


Students will learn to:

·      Write a requirement specification document

·      Write a design specification document

·      Present their work in front of their colleagues during project labs

Lifelong learning skills

·      Students will learn how to develop a realistic project in the geoinformatics domain.

Argomenti trattati


Introduction to programming

Python as a general purpose language

  • Overview
  • Variables and constants
  • Instructions
  • Types and objects
  • Collections
  • Files
  • Functions
  • Classes and objects
  • Exception handling

Introduction to the development of web apps in Python

Introduction to geographical packages in Python


Software development process

Software lifecycle

Problem definition: requirements engineering

  • Importance of requirements
  • How to define a requirement specification document

Software design

  • Design patterns and architectural styles

Verification and validation

  • The verification process
  • Unit testing in Python
  • System testing of functional and non-functional properties

Process support tools

  • Software configuration management
  • Issue tracking tools
  • Integrated Development Environments

Exercise sessions and a project laboratory are integral part of the course. They will focus on the usage of geographical packages in Python to build a simple application and will help students in applying the approaches and principles we teach in class.

A project will be assigned at the beginning of the semester and will be developed through the course. Project artifacts (requirement analysis, design document, test report, code) are expected to be released at fixed deadlines that will be defined by the time the project will be assigned. The evaluation of projects will be based on the produced artifacts and on a presentation.


Knowledge of the basic principles of programming and operating systems is very useful even if not strictly required.

Modalità di valutazione

The assessment will be based on a written exam at the end of the course and on the projects developed in the laboratory part of the course. These projects will be presented to the instructor at the end of the course. The scores of the written exam and of the project part will be summed to compute the total score. The written exam will assign up to 16 points and will be considered sufficient when the score will be equal of higher than 10. The project part will assign up to 16 points and will be considered sufficient when the score is at least equal to 7. Students can take the written part at any exam session during the year. 30 cum laude will be assigned when the total score is equal or higher than 31.



Type of assessment


Dublin descriptor

Written test

Solution of numerical problems

·      Software testing exercises concerning the identification of test cases

Exercises focusing on design aspects

·      Formulation of requirements

·      Definition of code fragments in Python to fulfill specific requirements

·      Definition of the high level architecture for a software system




1, 2, 3, 4, 5

Assessment of laboratorial artefacts

·      Assessment of the design and experimental work developed by students, either individually or in groups, as part of the project

2, 3, 4, 5

Oral presentation

·      Assessment of the project presentation

2, 3, 4, 5


Risorsa bibliografica obbligatoriaStudy material will be made available on the course website https://beep.metid.polimi.it

Note: If for any reason you are not included in the official list of course students, you may not been able to access the course material. In this case, the course instructor can grant you access if you request it through the site.

Forme didattiche
Tipo Forma Didattica Ore di attività svolte in aula
Ore di studio autonome
Laboratorio Informatico
Laboratorio Sperimentale
Laboratorio Di Progetto
Totale 50:00 75:00

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Inglese
Disponibilità di materiale didattico/slides in lingua inglese
Disponibilità di libri di testo/bibliografia in lingua inglese

Note Docente
schedaincarico v. 1.6.5 / 1.6.5
Area Servizi ICT