LAB OF SOFTWARE PROJECT DEVELOPMENT

Anno accademico
2019/2020 Programmi anni precedenti
Titolo corso in inglese
LAB OF SOFTWARE PROJECT DEVELOPMENT
Codice insegnamento
ET7018 (AF:320327 AR:148278)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
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: Django.
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.

Prima settimana: introduzione ai progetti software:
- Gestione e sviluppo del progetto: waterfall, agile, open source Vs closed source.
- Strumenti per il controllo delle versioni del software: git e github.

Seconda settimana: progetti Python
- Struttura del progetto
- Documentazione del progetto
- Convenzioni
- Pubblicare il tuo progetto

Terza settimana, sviluppo guidato dai test:
- Cosa significa fare test
- Test con Python
- Integrazione con github

Quarta settimana, schemi e introduzione alla programmazione web:
- L'architettura di un'applicazione web: LAMP, MEAN, JAMStack
- Modelli di progettazione in Python: MVC
- Introduzione a Django

Settimana 5: sviluppo e distribuzione di un'applicazione Web:
- Allestimento di un progetto Django
- Deployment con Docker
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 (eventualmente utilizzando la piattaforma Moodle fornita da Ca 'Foscari) più un progetto di gruppo con una breve discussione.
Il test sarà composto da domande a scelta multipla più eventualmente risposte aperte relative ai problemi (e alla loro soluzione) analizzati durante le lezioni.

Gli studenti riceveranno incarichi durante il corso come parte del loro progetto software.
Ogni settimana sarà composta per il 50% circa da lezioni frontali e per il 50% da sessioni pratiche. Gli studenti installeranno una macchina virtuale su cui sperimentare i comandi e il software necessari per raggiungere gli obiettivi di apprendimento.
Inglese
scritto e orale
Programma definitivo.
Data ultima modifica programma: 31/07/2019