Introduzione al corso di Programmazione e Laboratorio A.A. 2008/09 Gianluigi Cibinetto
Io Pagina web http://df.unife.it/u/cibinett http://www.fe.infn.it/~cibinett Ufficio Blocco C - stanza 228 al secondo piano E-mail cibinett@fe.infn.it Orario di ricevimento In genere sono abbastanza di fretta quindi tendo a non soffermarmi troppo a fine lezione In piu la mia agenda varia molto di settimana in settimana Il miglior modo e prendere un appuntamento via e-mail 2
Voi?
Il corso i corsi Programmazione (56 ore) Laboratorio di programmazione (56 ore) Orario sbilanciato: alcune parti di teoria verranno fatte in laboratorio. Quindi in realta sono due corsi, con un impegno di circa 10-12 ore alla settimana + studio + eccetera. 4
Orario Mattina Lunedi' Martedi' Mercoledi' Giovedi' Venerdi' x prog(10:30-12:30) aula F6 x Pomeriggio progr (14-17) info1 x progr (14-17) info1 progr (14-17) info1 progr (14-17) info1 Riunioni x x x In realta lunedi 14-16 Giovedi 14-16 Possibili cambiamenti in base ai miei impegni e alla vostra necessita (speriamo di no) di dover recuperare. 5
Di cosa si parlera` Un po di algoritmi e macchine per la loro realizzazione Un po di sistemi operativi Molto di come si scrivono i programmi Programmazione in linguaggio C Programmazione in shell di unix/linux 6
Di cosa non si parlera` 7
Che cosa si fara` in laboratorio Tanto esercizio Tanti programmi apparentemente stupidi Progettazione di semplici algoritmi Pensare Imparate a programmare 8
Come sara` gestito il laboratorio Inizialmente singolarmente, perche ciascuno sia in grado almeno di accendere un PC e di completare le istruzioni di base. La maggior parte del corso a coppie: si lavorera a coppie, gli esercizi a casa verranno dati a coppie, studierete a coppie. E importante imparare l uno dall altro Non vuol dire fare meta del lavoro Non copiate da altri gruppi Parte finale in gruppi piu ampi (da decidere) 9
Prerequisiti Un po di terminologia Un minimo di matematica Capacita di ragionare Ricominciare a fare come da piccoli: usare la testa 10
Fare domande domande Fare domande e importante, non solo per voi ma per l intera classe Non siate timidi 11
Piu in dettaglio il programma Prima settimana 1 Th Lab Th Th Lab 1 intro corso intro algoritmi macchine per risolvere algorarchitettura calcolatori sistemi operativi 2 intro algoritmi algebra di boole macchine per risolvere algorarchitettura calcolatori sistemi operativi 3 algebra di boole linux/unix Seconda settimana 2 Th Lab Th Th Lab 1 introduzione alla programmalinguaggi di programmazion linguaggi di programmazion basi del C linux 2 introduzione alla programmalogin introduzione al C cicli hello! 3 linux primi programmi 12
Programma del corso Terza settimana 3 Th Lab Th Th Lab 1 cicli / if cicli e if input/output stdio.h - math.h cicli e if 2 if switch cicli e if input/output stdio.h - math.h stdio 3 cicli e if stdio Quarta settimana 4 Th Lab Th Th Lab 1 funzioni funzioni funzioni e librerie - header f funzioni funzioni 2 funzioni funzioni funzioni e librerie - header f funzioni funzioni 3 funzioni funzioni 13
Programma del corso Quinta settimana 5 Th Lab Th Th Lab 1 array e puntatori array e puntatori array e puntatori array e puntatori array e puntatori 2 array e puntatori array e puntatori array e puntatori array e puntatori array e puntatori 3 array e puntatori array e puntatori Sesta settimana 6 Th Lab Th Th Lab 1 strutture strutture strutture e grafica strutture strutture e grafica 2 strutture strutture strutture e grafica strutture strutture e grafica 3 strutture strutture e grafica 14
Programma del corso Settima settimana 7 Th Lab Th Th Lab 1 algoritmi di ricerca algoritmi di ricerca crittografia e numeri casuali algoritmi algoritmi e programmi 2 algoritmi di ricerca algoritmi di ricerca crittografia e numeri casuali algoritmi algoritmi e programmi 3 algoritmi di ricerca algoritmi e programmi Ottava settimana 8 Th Lab Th Th Lab 1 scripting e altri linguaggi script scripting script script 2 scripting e altri linguaggi script organizzazione progetto script script 3 script script 15
Programma del corso Nona settimana 9 Th Lab Th Th Lab 1 approfondimenti progetto approfondimenti progetto progetto 2 approfondimenti progetto approfondimenti progetto progetto 3 progetto progetto Decima settimana 10 Th Lab Th Th Lab 1 progetto progetto 2 progetto progetto 3 progetto 16
Il laboratorio Principali difficolta del laboratorio Tecniche Sociali (I) Sociali (II) Laptop 17
I compiti a casa 18
Dove studiare (I) Ciascuno ha i suoi metodi per studiare e preparare gli esami. Gli appunti che prendete a lezione sono un buon punto di partenza se ordinati Le mie trasparenze sono un altrettanto valido punto di partenza. Finora ho detto solo punto di partenza. Non vi daro dispense sulle quali studiare. 19
Dove studiare (II) Il miglior strumento per studiare e approfondire sono i libri: The C programming language (second edition) Kernighan, Ritchie (Prentice Hall) Informatica arte e mestiere Ceri, Mandrioli, Sbattella (McGraw-Hill) Qualsiasi altro testo/manuale che vi piaccia e con cui vi troviate bene. Altri supporti 20
Studiare prima Avere un idea di quello che si fara a lezione e importante: Capite meglio Fate domande piu intelligenti e utili Impiegate meno tempo per studiare dopo Alla fine di ogni lezione diro quale sara l argomento successivo e dove potere studiarlo. 21
Il progetto finale e relazione Strutturato a gruppi Durata variabile (indicativamente 12-15 ore di programmazione) Relazione finale (non facoltativa), da consegnare entro la fine del corso. 22
L esame Scritto Su tutto il programma Orale Su tutto il programma 23
Suggerimenti per l esame 24
Prima di proseguire 25
Torniamo a voi 26
Lettera di un amico Caro G. ( ) Secondo te pretendo troppo da una persona laureata in informatica con 110 (forse e lode) se quando le dico al telefono che la password di un sito e' "cheguevara tutto attaccato" e lei mi dice "non va!" e io: "...come l'hai scritto?!?", lei: "come si dice... [ceghevara]"...le ho fatto lo spelling e poi "ah adesso va! ( ) Poi le ho detto che per vedere i plugin di firefox deve scrivere about:plugins nella barra dell'indirizzo e lei mi dice "non va!" e le chiedo come ha scritto plugins...beh immagina com e andata... ( ) Per non parlare poi di due cicli annidati ( ) A presto, C. 27
Che Guevara plugin di Firefox while (i<10) { while (j<10) { a=i+j; } } Cicli annidati 28
29