Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoRenata Parisi Modificato 9 anni fa
1
Programmazione A-L CdS Informatica I anno, I semestre, 12 cfu Nadia Busi
2
Programmazione “Programming is a good medium for expressing poorly-understood and sloppily formulated ideas.” (M. Minsky)
3
Obiettivo del corso Fornire principi, tecniche, metodologie generali per la progettazione e la realizzazione di programmi Indipendenti dal linguaggio di programmazione
4
Progettazione di programmi Descrizione del problema Programma funzionante e corretto
5
Progettazione di programmi Descrizione del problema (in linguaggio naturale) Estrarre info rilevanti dati risultati Descrivere comportamento del prg da realizzare (esempi) Formulare il prg in un linguaggio di programmazione Test e debug
6
Gli strumenti Metodologia di progettazione “design recipes” (slide precedente) Linguaggio di programmazione Scheme Ambiente di sviluppo user-friendly DrScheme
7
Scheme Lisp Algol Scheme Steele - Sussman, MIT, anni ‘70 didattica
8
Paradigmi Paradigma funzionale Programma = (insieme di) funzioni Funzione: dati risultato Scheme, Lisp, ML … Paradigma imperativo Programma = sequenza di istruzioni Pascal, C, Java …
9
Linguaggi Scheme ML Human-oriented Java Pascal C Assembly Computer-oriented
10
Scheme: vantaggi Sintassi semplice e concisa Semantica facile (regole dell’algebra) Attenzione sulle tecniche di programmazione (non sui costrutti) Ragionamento induttivo Separazione Model/View
11
Scheme: vantaggi Programmi completi dalle prime lezioni Base per OOP Java (secondo semestre) Espressamente progettato per la didattica MIT, Rice, Berkeley, Princeton, Cornell, Johns Hopkins University, Indiana, Yale, UCLA
12
Scheme: svantaggi No sistema di tipi Tipi nei commenti Utilizzati per progettazione e documentazione Scopi ed uso principalmente accademici Motorola, Intel, Tektronix, Silicon Graphics, Microsoft, Disney, Yahoo store… Enfasi sui principi e non sul linguaggio
13
Testo consigliato www.htdp.org M. Felleisen, R.B. Findler, M. Flatt, S. Krishnamurthi “How to Design Programs” MIT Press, 2001
14
DrScheme Ambiente di sviluppo user-friendly Gerarchia di linguaggi Beginner/Intermediate/Advanced Student Full language Multipiattaforma Mac/Linux/Windows www.drscheme.org
15
Orario delle lezioni Ora inizio LunedìMartedìMerc.GiovedìVenerdì 8:30 E1E2 9:30 E1E2 10:30 E1 11:30 12:30 13:30 E1 14:30 E1 15:30 E2E1 16:30 E2E1 17:30 E2
16
Esame Prove in itinere Prova pratica: realizzazione di programmi in laboratorio Esame finale Prova pratica Orale
17
Voto Programmazione I semestre, 12 cfu Principi di progettazione (Scheme) Prova di laboratorio (+ orale) Lab Metodi di Programmazione II semestre, 6 cfu Programmazione OO (Java) Progetto (+ orale)
18
Voto I corsi di Programmazione e LabMetProg sono integrati Voto corso integrato = ((2 * voto Programmazione) + voto LabMetProg) / 3
19
Info utili Email busi@cs.unibo.it Utilizzare possibilmente l’account del dipartimento Pagina web www.cs.unibo.it/~busi Teaching, Programmazione AL Ricevimento Martedì ore ??? Previo appuntamento via email
20
Esempio Funzione che calcola il doppio di un numero Input: un numero Output: un numero Esempi: doppio(2) = 4 doppio(5) = 10 doppio(0) = 0 <= casi particolari f(x) = x + x
21
Doppio di un numero (define (doppio x) (+ x x)) #include int main(void) { int x; int doppio; printf(“Inserisci numero: “); scanf(“%d”, x); doppio = x + x; printf(“Il doppio \’e %d”, doppio); }
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.