Programmazione Procedurale Presentazione del Corso Anno Accademico 2004-2005 http://www.db.unibas.it/users/mecca/corsi/progprocedurale G. Mecca Università della Basilicata mecca@unibas.it Sommario Sommario Aspetti Organizzativi Riferimenti Modalità Didattiche e Crediti Programma del Corso Materiale Didattico Casi Particolari Aspetti Sostanziali Obiettivi Formativi Problemi Metodologia Didattica Risultati 2
Parte I Aspetti Organizzativi 3 Presentazione >> Riferimenti Riferimenti Sito del Corso http://www.db.unibas.it/users/mecca/corsi/progprocedurale Giansalvatore Mecca mecca@unibas.it - http://www.db.unibas.it/users/mecca Dipartimento di Matematica - II Piano tel. 0971 205855 - fax. 0971 205896 Ricevimento studenti lunedì 17:30-18:30, mercoledì 12:00-13:00 Carmelina Frammartino frammartino@pzmath.unibas.it Ricevimento studenti mercoledì 11:30-13:00 4
Presentazione >> Modalità Didattiche Modalità Didattiche Corso di 9 crediti 9 CFU = approx. 225 ore di lavoro lezioni frontali: 7,5 crediti: approssimativamente 70 ore laboratorio: 1,5 crediti: approssimativamente 18-20 ore Totale: circa 80 ore di didattica assistita il resto è studio (>>) 5 Presentazione >> Modalità Didattiche Modalità Didattiche Impostazione della didattica assistita in aula vengono impartiti i concetti e vengono mostrati molti esempi di codice a casa lo studente studia il materiale delle lezioni in laboratorio vengono proposti esercizi da risolvere con l assistenza del docente, ma non vengono proposti ulteriori concetti ulteriori esercizi da risolvere a casa 6
Presentazione >> Modalità Didattiche Modalità Didattiche Esercitazioni di laboratorio mercoledì ore 13:30-17:30 a cominciare dal 3 novembre Due turni da 2 ore 13:30 15:30 e 15:30 17:30 Iscrizione al corso gli studenti del I anno sono considerati iscritti gli studenti degli anni successivi devono inviarmi un messaggio di posta elettronica 7 Presentazione >> Modalità Didattiche Modalità Didattiche La frequenza non è obbligatoria, nè per le lezioni, nè per il laboratorio ma è caldamente raccomandata (>>) Le regole per la partecipazione al lab. ogni due esercitazioni c è un giro di espulsioni vengono espulsi gli studenti che hanno riportato assenze viene prodotto un nuovo elenco con nuovi turni chi vuole essere reintrodotto deve contattare il docente 8
Presentazione >> Modalità Didattiche Modalità Didattiche Calendario della didattica 1 ottobre 15 dicembre: lezioni 16 dicembre 9 gennaio: prove intermedie 10 gennaio 4 febbraio: lezioni 5 febbraio 4 marzo: prove finali 9 Presentazione >> Modalità Didattiche Modalità Didattiche Modalità di svolgimento delle prove prova pratica di programmazione al calcolatore prova scritta (questionari con domande a risposta multipla) eventuale prova orale Obiettivo valutare la capacità pratica di programmare e la conoscenza teorica degli argomenti 10
Presentazione >> Modalità Didattiche Modalità Didattiche Date delle prove d esame prova intermedia: 15 dicembre (??) I prova finale: 16 febbraio II prova finale: 2 marzo III prova finale: maggio IV prova finale: luglio V prova finale: settembre 11 Presentazione >> Programma del Corso Programma del Corso Introduzione Architettura di Von Neumann Introduzione ai Linguaggi di Prog. elementi di base (dichiarazioni, assegnazioni, lettura e stampa) strutture di controllo (if, cicli) sottoprogrammi tipi strutturati (array, record) 12
Presentazione >> Programma del Corso Programma del Corso Fondamenti di Programmazione Programmazione modulare Introduzione alle strutture di dati Tecniche algoritmiche di base Qualità del codice Sintassi e semantica del C++ e del FORTRAN 13 Presentazione >> Materiale Didattico Materiale Didattico Composizione del materiale materiale delle lezioni (in linea sul sito) strumenti software per le esercitazioni varie dispense due libri consigliati (ATTENZIONE) Libri consigliati John R. Hubbard Programmare in C++ (II Edizione, 2001) McGraw Hill Libri Italia - Milano - 25 Euro circa 14
Presentazione >> Casi Particolari Casi Particolari Studenti del corso di laurea in Matematica Fondamenti di Informatica I e II + Ab. Informatiche I totale 9 crediti Differenze obiettivi formativi: meno enfasi sugli aspetti metodologici e sui fondamenti di programm. 15 Parte II Aspetti Sostanziali 16
Presentazione >> Obiettivi Formativi Obiettivi Formativi Corso del nucleo fortemente sincronizzato con gli altri Obiettivi formativi (dal Syllabus) Mettere gli studenti in grado di scrivere programmi strutturati in linguaggio C/C++ su strutture di dati statiche. Conoscere le tecniche e le metodologie fondamentali della programmazione procedurale 17 Presentazione >> Obiettivi Formativi Obiettivi Formativi Attenzione gli obiettivi del corso vanno collocati in quelli più ampi del corso di laurea l obiettivo NON è quello di formare programmatori C/C++/FORTRAN l obiettivo è formare programmatori a oggetti il corso è asservito a questo obiettivo 18
Presentazione >> Obiettivi Formativi Obiettivi Formativi Premessa insegnare a programmare bene è difficile insegnare a programmare bene a oggetti è difficilissimo Problema insegnare contemporaneamente le tecniche di programmazione (condizioni, cicli, parametri, strutture di dati) e l utilizzo delle classi e degli oggetti 19 Presentazione >> Obiettivi Formativi Obiettivi Formativi Le varie strategie didattiche strategia tradizionale (molto C e poi oggetti) strategia subito oggetti (Java) La nostra strategia introduzione alle tecniche della programmazione procedurale (questo corso) affrontando lo studio dei linguaggi in modo speculativo molta enfasi da subito sulla POO 20
Presentazione >> Problemi Problemi I problemi di questo corso Problema n. 1 imparare a programmare è difficile Problema n. 2 l atteggiamento degli studenti Problema n. 3 semplificazione eccessiva Problema n. 4 fraintendimento degli obiettivi didattici 21 Presentazione >> Problemi Problemi Problema n. 1 imparare a programmare è difficile Programmare richiede capacità di astrazione capacità di analizzare e risolvere problemi Programmare bene è ancora più difficile, perché la qualità del software è una disciplina complessa 22
Presentazione >> Problemi Problemi Problema n. 2 l atteggiamento degli studenti Chi non ha esperienza di programm. all inizio tende a scoraggiarsi Chi ha esperienza di programmazione è convinto di sapere già tutto Entrambi gli atteggiamenti sono sbagliati 23 Presentazione >> Problemi Problemi Problema n. 3 semplificazione eccessiva Per rendere più accessibile lo studio in alcuni casi si tende a semplificare eccessivamente la presentazione del processo di sviluppo esempi giocattolo Invece... l obiettivo deve essere quello di addestrare a risolvere problemi completi e realistici 24
Presentazione >> Problemi Problemi Problema n. 4 fraintendimento degli obiettivi didattici L obiettivo reale fornire una buona conoscenza della tecnologia ma soprattutto una corretta impostazione metodologica 25 Presentazione >> Problemi Problemi Problema n. 4 (cont.) Conoscenza della Tecnologia cosa è possibile fare (es: con un certo linguaggio) Conoscenza delle Metodologie linee guida per risolvere bene i problemi (di programmazione) come usare opportunamente la tecnologia Differenze la conoscenza tecnologica diventa presto obsoleta quella metodologica tende a durare e a valere di più 26
Presentazione >> Metodologia Didattica Metodologia Didattica Tecniche didattiche innovative sperimentate negli anni precedenti per risolvere i problemi precedenti Didattica a strati (non lineare) Prove a strati Lezioni centrate su progetti reali Doppia tecnologia 27 Presentazione >> Metodologia Didattica Metodologia Didattica Impostazione del materiale struttura non lineare; didattica a strati Impostazione tradizionale impostazione lineare concetto importante dettaglio tecnologico concetto importante dettaglio tecnologico corso 28
Presentazione >> Metodologia Didattica Metodologia Didattica Impostazione a strati concetti fondamentali (entro Natale) dettagli e approfondimenti concetti avanzati concetti fondamentali (fino a Natale) dettagli e approfondimenti concetti avanzati 29 Presentazione >> Metodologia Didattica Metodologia Didattica Vantaggi della didattica a strati semplifica il processo di apprendimento semplifica il processo di studio consente opportunità di recupero Una soluzione pensata per Problema n. 1: programmare è difficile 30
Presentazione >> Metodologia Didattica Metodologia Didattica Prove d esame a strati Prova di base accerta la conoscenza dei concetti fondamentali (>> standard minimo) Prova intermedia Prova avanzata accerta la conoscenza di tutti i concetti (>> standard formativo completo) 31 Presentazione >> Metodologia Didattica Metodologia Didattica I voti prova di base: 18-20 (prova si/no ) >> obbl. prova intermedia: 21-25 prova avanzata: 26-30 Lo studente può scegliere il livello Una soluzione pensata per Problema n. 2: l atteggiamento degli studenti 32
Presentazione >> Metodologia Didattica Metodologia Didattica Presentazione degli argomenti centrate su progetti Struttura tipica di un argomento I: introduzione e presentazione dei progetti II: illustrazione dei concetti fondamentali III: conclusioni con i particolari sui progetti IV: dettagli e approfondimenti successivi V: eventuali concetti avanzati 33 Presentazione >> Metodologia Didattica Metodologia Didattica In altri termini fin dall inizio si comincia a ragionare su esempi completi discutendone in dettaglio tutti gli aspetti Un soluzione pensata per Problema n. 3: semplificazione eccessiva 34
Presentazione >> Metodologia Didattica Metodologia Didattica Doppia tecnologia filo conduttore del corso di laurea Obiettivo delineare i confini tra le tecnologie specifiche apprese e le tecniche generali che ci sono dietro In questo corso C++ e FORTRAN 35 Presentazione >> Metodologia Didattica Metodologia Didattica La struttura completa di un modulo introduzione e presentazione dei progetti illustrazione dei concetti fondamentali conclusioni con i particolari sui progetti seconda tecnologia dettagli e approfondimenti successivi eventuali concetti avanzati Una soluzione per Problema n. 4: fraintendimento degli obiettivi 36
Presentazione >> Risultati Risultati Popolazione iniziale al I anno: 129 Di cui completamente assenti 22, il 17% Hanno sostenuto Prog. Procedurale 75, 58% del totale, 70% degli studenti attivi (voto medio: 21,18) Hanno sostenuto Prog. Oggetti 29, 22% del totale, 27% degli studenti attivi (voto medio: 22,86) 37 Presentazione >> Risultati Risultati Le cause principali Errori nell impostazione didattica corretti nei corsi di quest anno Errori degli studenti scarsa capacità di studio scarsa capacità di organizzare lo studio scarsa frequenza in aula eccessiva fiducia nelle proprie conoscenze 38
Sommario Sommario Aspetti Organizzativi Riferimenti Modalità Didattiche e Crediti Programma del Corso Materiale Didattico Casi Particolari Aspetti Sostanziali Obiettivi Formativi Problemi Metodologia Didattica Risultati 39