LAB OF SOFTWARE PROJECT DEVELOPMENT

Anno accademico
2023/2024 Programmi anni precedenti
Titolo corso in inglese
LAB OF SOFTWARE PROJECT DEVELOPMENT
Codice insegnamento
ET7018 (AF:358389 AR:191382)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
ING-INF/05
Periodo
2° Periodo
Anno corso
3
Sede
RONCADE
Spazio Moodle
Link allo spazio del corso
Ogni azienda moderna dipende dallo sviluppo di alcuni software specifici che possono essere prodotti internamente o esternalizzati. Il manager digitale deve essere consapevole delle basi delle tecniche e degli strumenti necessari per sviluppare un progetto software.
L'unico modo per raggiungere questa consapevolezza è partecipare a un progetto di sviluppo software in cui lo studente pratica sia gli strumenti organizzativi che il processo di sviluppo.

L'obiettivo di questo corso è fornire agli studenti le basi sugli strumenti e sulle piattaforme di sviluppo software più comuni per creare e gestire il proprio progetto software.
Durante il corso lo studente acquisirà le seguenti conoscenze e abilità.

Conoscenza:
- Le metodologie più comuni per lo sviluppo del software: waterfall, agile, open o closed source.
- Le basi della creazione di un software Python: struttura, documentazione, pubblicazione.
- Sviluppo test-driven.
- Concetti e modelli di programmazione web in Python.

Abilità:
- Familiarità con i sistemi di versioning del software: git.
- Familiarità con piattaforme di hosting / sviluppo software: github, kanban.
- Creazione, sviluppo, documentazione e pubblicazione di un progetto Python.
- Un primer su DevOps: docker.
- Creazione di applicazioni Web con Python: FastAPI, Flask
Familiarità con il linguaggio di programmazione Python, acquisito attraverso il corso "Introduction to coding".
Il corso è strutturato in 5 settimane, ogni settimana affronta un argomento e offre un'esperienza pratica con i relativi strumenti software correlati. Il programma non è inteso per essere immutabile, può cambiare in base all'interesse e alle reazioni degli studenti.

Settimana 1:
- Gestione e sviluppo del progetto: waterfall, agile, open source Vs closed source.
- Strumenti per il controllo delle versioni del software: git e github.

Settimana 2:
- Software Versioning

Settimana 3:
- Python avanzato
- Introduzione al Software Engineering
- Open Source e Free Software

Settimana 4:
- Lavorare con CSV e Pandas in Python
- Docker

Settimana 5:
- Test Driven Development
Il corso si basa su diverse fonti, la maggior parte delle quali sono disponibili on-line e verranno dettagliate con il materiale del corso (slides). Lo studio delle fonti e delle slides è suffiiente per gli stuedenti che seguono il corso. Alcune delle fonti sono:
- Pro Git Book: https://git-scm.com/book/en/v2
- Dive Into Python: https://www.diveinto.org/python3/table-of-contents.html

a queste si aggiunge la documentazione dei progetti open source che saranno oggetto delle esercitazioni.
La valutazione consiste in una prova scritta più un progetto di gruppo accompagnato da una breve discussione e presentazione.
Il test scritto sarà composto da domande a scelta multipla e domande aperte relative a quanto appreso durante le lezioni.
La maggior parte delle lezioni alterneranno lezioni frontali (1/3) e sessioni pratiche (2/3). Durante queste ultime verranno illustrati i tool principali che saranno poi utilizzati per lo svolgimento del progetto.
Gli studenti avranno a disposizione gli strumenti e dovranno praticare direttamente con gli stessi per creare, pianificare e gestire il proprio progetto di lavoro.
Inglese
scritto e orale
Programma definitivo.
Data ultima modifica programma: 12/01/2024