Fondamenti di Programmazione
Annunci
- Tutte gli annunci dopo questo saranno comunicati solo sul google group.
Sinopsi
Introduzione alla programmazione tramite il linguaggio Python. Tipi di dati, variabili, assegnamenti, strutture di controllo, funzioni, classi, moduli e Input/Output. Strutture dati: vettori, stringhe, liste e dizionari. Progettazione e sviluppo di programmi tramite programmazione procedurale e orientata agli oggetti. Librerie di Python per la grafica, per la gestione dei file, per l'elaborazione di testi/html e per l'accesso ad Internet. Debugging e testing di programmi.
Amministrazione
- Personale
- Docente Canale I: Fabio Pellacini
- Docente Canale II: Angelo Monti
- Esercitatore Canale I: Igor Melatti
- Esercitatore Canale II: Lorenzo Carlucci
- Teledidattica: Angelo Monti
- Contatti
- email: fondamenti-chiocciola-di-punto-uniroma1-punto-it
- web: pellacini.di.uniroma1.it/teaching/fondamenti16
- Aule e Calendario Didattico
- vedere il sito del dipartimento
- Forums e Homeworks
- Google Group del corso
- accesso tramite email instituzionale (email finisce in uniroma1.it)
- il primo accesso sara' moderati dai docenti
Prerequisiti
È richiesta un'adeguata preparazione iniziale relativa alle materie presenti nei programmi della scuola secondaria superiore, con particolare riguardo all’italiano e alla matematica. Una discreta conoscenza dell’inglese è di grande aiuto.
Testi di riferimento
Anche se non necessario, il corso seguirà il materiale nell'ebook seguente, di cui consigliamo l'aquisto.
- F. Pellacini, Fondamenti di Programmazione in Python
- F. Pellacini, Codice di Fondamenti di Programmazione in Python
Altri libri che possono essere utili sono:
- Allen B. Downey et al., Pensare da Informatico
- Guido van Rossum, Il tutorial di Python
- Josh Cogliati, Tutorial per principianti in Python
Modalità d'esame
Per sostenere l'esame è possibile fare 4 homeworks o una prova di laboratorio. È forte consiglio dei docenti usare la modalità con homeworks, ma ogni studente può scegliere come fare.
Modalità Homework
Questa è la modalità consigliata. Durante il corso saranno assegnati 4 homeworks, cioè esercizi da fare a casa, di cui 2 prima della prova intermedia e 2 dopo. La valutazione di ogni homework dà luogo a un punteggio tra 0 e 45. Il voto finale sarà calcolato come la media dei punteggi degli homeworks diviso 5.25. Questa media permette di perdere qualche punto in ogni homework.
Però affinché le soluzioni siano considerate valide devono superare il cheating test per essere convalidate. Le soluzioni consegnate sono sottoposte a dei test per verificare se sono state copiate anche solo parzialmente. I test sono effettuati in due occasioni: per i primi 2 homework e per gli ultimi 2. Se in uno dei test le soluzioni risultano sospette, è a discrezione del docente decidere se convocare gli studenti coinvolti e se permettergli di tentare di validare le soluzioni sostenendo una prova in laboratorio. La procedura di verifica sarà effettuata dopo i primi 2 homeworks e dopo i secondi 2.
Gli homeworks sono validi solo durante il primo appello e andranno convalidati in presenza o per email scritta da parte degli studenti. Maggiori informazioni sulla procedura di convalida seguiranno. Negli appelli successivi gli homework non sono più validi e l'esame è espletato secondo la modalità senza homework descritta di seguito.
Modalità senza Homework
Se non si vuole o si è costretti a sostenere l'esame senza homework, l'esame consiste in una prova in laboratorio con uno o più esercizi di programmazione relativi a tutti gli argomenti svolti a lezione. Superare l'esame tramite questa prova potrebbe risultare più difficile perché gli esercizi sono della stessa difficoltà degli ultimi homework ma devono essere risolti in un tempo più limitato.
Codice di Comportamento
Gli studenti possono discutere con altri le soluzioni degli homework ma poi ognuno deve scrivere la soluzione per proprio conto. La discussione con gli altri non solo è permessa ma è anche incoraggiata perché è molto utile per mettere a confronto le proprie idee, per chiarire dubbi e per rendere più gradevole e stimolante lo studio. Però poi le soluzioni vanno interamente pensate, o ripensate, e scritte per proprio conto senza copiarle in tutto o in parte da altri. Anche passare la soluzione ad altri non è permesso. Infatti, sia chi ha copiato che chi si è fatto copiare incapperà nel cheating test. E allora sarà a discrezione del docente permettergli o meno di continuare a sostenere l'esame con la modalità degli homework.
Calendario
Data | Lezione | Files | Capitoli |
---|---|---|---|
27/09 | Introduzione al corso | 1, 2 | |
30/09 | Espressioni | 3 | |
04/10 | Funzioni | 4 | |
07/10 | Condizionali | 5 | |
11/10 | Sequenze | 6 | |
12/10 | Iterazione | 7 | |
14/10 | Oggetti | 8, 11.1 | |
18/10 | Metodi | 8 | |
21/10 | Dizionari | 9 | |
25/10 | Files e Web, Testo | 10, 11 | |
26/10 | Immagini | 12 | |
28/10 | Immagini | 12 | |
04/11 | Discussione Homeworks | ||
15/11 | Classi | 13 | |
18/11 | Ricorsione | 14 |
I capitoli in questo calendario si riferiscono all'ebook Fondamenti di Programmazione in Python di F. Pellacini.
Homeworks
Istruzioni
-
Scaricare il file .zip che contiene un archivio zippato con i testi degli esercizi dell'homework.
-
Facendo l'unzip dell'archivio si troverà per ogni esercizio
x
(x = 1,2,3,…
) due filesprogram0x.py
egrade0x.py
, e altri file di support. Il fileprogram0x.py
contiene la spiegazione dell'eserciziox
egrade0x.py
serve (vedi dopo) per fare il test della soluzione che sarà stata scritta. Il vostro voto verrá calcolato automaticamente da questo programma. -
La soluzione dell'esercizio
x
va scritta nel fileprogram0x.py
nel punto indicato. -
Per testare la propria soluzione dare il comando
python3 grade0x.py
da terminale (essendo posizionati nella directory che è stata prodotta dall'unzip dell'archivio). Il test controlla l'output della funzione che è stata scritta su un certo numero di input. Per ogni input stampaok
se l'output è corretto, altrimenti stampa un messaggio d'errore. -
Non modificare i nomi dei files, non spostarli in altre directories e non modificare i file
grade0x.py
. -
Fate l'upload dei files
program0x.py
come descritto sotto.
Sottomissione
-
Per sottomettere gli homeworks e vedere i propri risultati, registratevi alla pagina di registrazione, con il vostro nome, cognome, numero di matricola e email istituzionale (cioè quella che termina in
uniroma1.it
). A registrazione avvenuta, riceverete una email con un codice personale, da utilizzare insieme al numero di matricola per sottomettere gli homeworks e vedere i risultati. Per chi non ha l'email istituzionale, potrà chiedere al professore il permesso, che verrà concesso solo in casi debitamente motivati (cioè quando per ragioni burocratiche lo studente non può ricevere l'email istituzionale). -
Gli homeworks vanno sottomessi con numero di matricola e codice alla pagina di sottomissione. Dovrete sottomettere solo i programmi (
program0x.py
) da voi completati. Gli homeworks possono essere sottomessi più volte, ma vale sola l'ultima versione sottomessa. La data di sottomissione è riportata sotto (gli homework saranno accettati fino alle 23:59 della data indicata). -
Per visionare tutto il materiale inviato e i voti finali, si può accedere con matricola e codice alla pagina di visione. I risultati non sono aggiornati istantaneamente.
Homeworks
Le date di consegna sono considerate fino alla mezzanotte.
- Homework n. 1
- pubblicato 14/10/16
- da sottomettere entro il 24/10/16
- soluzione
- Homework n. 2
- pubblicato 25/11/16
- da sottomettere entro il 03/11/16
- soluzione
- Homework n. 3
- pubblicato 14/11/16
- modificato il 15/11/16
- da sottomettere entro il 30/11/16
- soluzione
- Homework n. 4
- pubblicato 4/12/16
- da sottomettere entro il 22/12/16