Upload
hoangcong
View
231
Download
2
Embed Size (px)
Citation preview
1
CORSO DI PROGRAMMAZIONE
Cosimo Laneve/Ivan Lanese/Elena Giachino
1. obiettivi del corso e sommario
2. syllabus del corso
3. modalità dell’esame
4. questionari degli studenti
2
argomenti
3
obiettivi
apprendere i concetti fondamentali della programmazione
3
obiettivi
apprendere i concetti fondamentali della programmazione– le principali tecniche
3
obiettivi
apprendere i concetti fondamentali della programmazione– le principali tecniche – gli strumenti più importanti di C++
3
obiettivi
apprendere i concetti fondamentali della programmazione– le principali tecniche – gli strumenti più importanti di C++
dopo il corso
3
obiettivi
apprendere i concetti fondamentali della programmazione– le principali tecniche – gli strumenti più importanti di C++
dopo il corso - sarete in grado di comprendere corsi avanzati come
Sistemi Operativi o Linguaggi di Programmazione o Ingegneria del SW
3
obiettivi
apprendere i concetti fondamentali della programmazione– le principali tecniche – gli strumenti più importanti di C++
dopo il corso - sarete in grado di comprendere corsi avanzati come
Sistemi Operativi o Linguaggi di Programmazione o Ingegneria del SW
- NON sarete (ancora) utilizzatori esperti di librerie avanzate (grafica)
3
obiettivi
4
obiettivi/commenti
• apprendere gli strumenti più importanti di C++
4
obiettivi/commenti
• apprendere gli strumenti più importanti di C++– C++ è un linguaggio molto verboso :
x = x+1 si può anche scrivere x += 1 oppure x = x = x+1 oppure x++
4
obiettivi/commenti
• apprendere gli strumenti più importanti di C++– C++ è un linguaggio molto verboso :
x = x+1 si può anche scrivere x += 1 oppure x = x = x+1 oppure x++
– gli altri linguaggi non concedono così tante alternative
4
obiettivi/commenti
• apprendere gli strumenti più importanti di C++– C++ è un linguaggio molto verboso :
x = x+1 si può anche scrivere x += 1 oppure x = x = x+1 oppure x++
– gli altri linguaggi non concedono così tante alternative
• noi (docenti) scriveremo programmi utilizzando un sottoinsieme di costrutti (C+o-)– chi conosce altri linguaggi (e non C++) è in grado di comprenderli– i programmi sono più facile da leggere– i programmi sono più facili da verificare (vedi discussioni nel corso)
4
obiettivi/commenti
• apprendere gli strumenti più importanti di C++– C++ è un linguaggio molto verboso :
x = x+1 si può anche scrivere x += 1 oppure x = x = x+1 oppure x++
– gli altri linguaggi non concedono così tante alternative
• noi (docenti) scriveremo programmi utilizzando un sottoinsieme di costrutti (C+o-)– chi conosce altri linguaggi (e non C++) è in grado di comprenderli– i programmi sono più facile da leggere– i programmi sono più facili da verificare (vedi discussioni nel corso)
• voi (studenti)– potete scrivere programmi utilizzando qualunque costrutto di C++
4
obiettivi/commenti
5
prerequisiti
nel corso non si assumono prerequisiti
5
prerequisiti
nel corso non si assumono prerequisiti
chi sa programmare troverà meno difficoltà a comprendere alcuni argomenti (tipicamente sulla parte imperativa)
5
prerequisiti
nel corso non si assumono prerequisiti
chi sa programmare troverà meno difficoltà a comprendere alcuni argomenti (tipicamente sulla parte imperativa)chi sa programmare dovrebbe trovare interessante le spiegazioni
5
prerequisiti
6
syllabus dell’insegnamento
PARTE I. programmazione imperativa in C++
6
syllabus dell’insegnamento
PARTE I. programmazione imperativa in C++– sistemi di calcolo, algoritmi e programmi – sintassi– identificatori e dichiarazioni, tipi di dato– assegnamento, condizionali, iterazione– funzioni– tipi di dato strutturati: vettori, record, allocazione della memoria– strutture dati dinamiche (liste, code, alberi)– ricorsione e funzioni ricorsive
6
syllabus dell’insegnamento
PARTE I. programmazione imperativa in C++– sistemi di calcolo, algoritmi e programmi – sintassi– identificatori e dichiarazioni, tipi di dato– assegnamento, condizionali, iterazione– funzioni– tipi di dato strutturati: vettori, record, allocazione della memoria– strutture dati dinamiche (liste, code, alberi)– ricorsione e funzioni ricorsivePARTE II. programmazione object-oriented in C++
6
syllabus dell’insegnamento
PARTE I. programmazione imperativa in C++– sistemi di calcolo, algoritmi e programmi – sintassi– identificatori e dichiarazioni, tipi di dato– assegnamento, condizionali, iterazione– funzioni– tipi di dato strutturati: vettori, record, allocazione della memoria– strutture dati dinamiche (liste, code, alberi)– ricorsione e funzioni ricorsivePARTE II. programmazione object-oriented in C++– classi– metodi– ereditarietà
6
syllabus dell’insegnamento
lezioni (due docenti: CL e Ivan Lanese)
sito web del corso: www.cs.unibo.it/~laneve/programming.html
dove trovate – i lucidi delle lezioni– ogni riferimento (newsgroup del corso,
tipologia dell’esame, bibliografia)– la dispensa di C+o-
7
lezioni e sito
1 più 5, oppure 2 o 3 o 4 al posto di 11. Savitch: “Problem Solving with C++”, Addison-Wesley 2004 // ottimo testo di introduzione alla programmazione e che usa C++ 2. Stroustrup: "Programming: Principles and Practice using C++" Addison-
Wesley 2009 // questo corso copre la prima parte di questo testo 3. Stroustrup: “The C++ Programming Language”, Addison-Wesley 2004// è la bibbia sul C++ da parte di chi l’ha inventato, per coloro che
intendono approfondire il ling.4. Rob Miller : “An introduction to the imperative part of C++“
http://www.doc.ic.ac.uk/~wjk/C++Intro/CourseStructure.html // ottimo per la parte imperativa di C++ (GRATUITO)5. Lanese, Laneve: la dispensa di C+o- (GRATUITA)
8
testi di riferimento
9
modalità d’esame
1. esame scritto (dura al massimo 2h — 2h.30m) e max 24 punti
9
modalità d’esame
1. esame scritto (dura al massimo 2h — 2h.30m) e max 24 punti• ci sono 6 appelli per anno
9
modalità d’esame
1. esame scritto (dura al massimo 2h — 2h.30m) e max 24 punti• ci sono 6 appelli per anno
– 2 a gennaio/febbraio; 3 a maggio/giugno/luglio;1 a settembre
9
modalità d’esame
1. esame scritto (dura al massimo 2h — 2h.30m) e max 24 punti• ci sono 6 appelli per anno
– 2 a gennaio/febbraio; 3 a maggio/giugno/luglio;1 a settembre
• il compito di solito consta di 3 esercizi (più facili del passato)
9
modalità d’esame
1. esame scritto (dura al massimo 2h — 2h.30m) e max 24 punti• ci sono 6 appelli per anno
– 2 a gennaio/febbraio; 3 a maggio/giugno/luglio;1 a settembre
• il compito di solito consta di 3 esercizi (più facili del passato)– iterazione/array; strutture dati dinamiche quali liste e alberi;
classi
9
modalità d’esame
1. esame scritto (dura al massimo 2h — 2h.30m) e max 24 punti• ci sono 6 appelli per anno
– 2 a gennaio/febbraio; 3 a maggio/giugno/luglio;1 a settembre
• il compito di solito consta di 3 esercizi (più facili del passato)– iterazione/array; strutture dati dinamiche quali liste e alberi;
classi– i compiti vecchi sono disponibili nello studio di Ivan Lanese
(gratis!)
9
modalità d’esame
1. esame scritto (dura al massimo 2h — 2h.30m) e max 24 punti• ci sono 6 appelli per anno
– 2 a gennaio/febbraio; 3 a maggio/giugno/luglio;1 a settembre
• il compito di solito consta di 3 esercizi (più facili del passato)– iterazione/array; strutture dati dinamiche quali liste e alberi;
classi– i compiti vecchi sono disponibili nello studio di Ivan Lanese
(gratis!)2. progetto obbligatorio (gruppi di 3-4 studenti)
max 8 punti9
modalità d’esame
10
. . . come studiare all’università
venire a lezione preparati– ad esempio, prima della lezione leggere i lucidi, guardare il capitolo
10
. . . come studiare all’università
venire a lezione preparati– ad esempio, prima della lezione leggere i lucidi, guardare il capitolo
è MOLTO IMPORTANTE fare domande quando qualcosa non si capisce o si vorrebbe capire meglio– è utile a noi docenti per capire le criticità e soffermarci su di esse– “fare domande” è anonimo
10
. . . come studiare all’università
venire a lezione preparati– ad esempio, prima della lezione leggere i lucidi, guardare il capitolo
è MOLTO IMPORTANTE fare domande quando qualcosa non si capisce o si vorrebbe capire meglio– è utile a noi docenti per capire le criticità e soffermarci su di esse– “fare domande” è anonimo
i lucidi che trovate sul sito NON contengono quello che viene detto a lezione– dovete prendere appunti (SUGGERIMENTO: stampate i lucidi e
scrivete accanto) – scegliete un libro tra quelli consigliati e STUDIATE le parti relative.
Nel libro ci sono altri esempi e altre spiegazioni: tanto meglio, aiuteranno la comprensione!
10
. . . come studiare all’università
• dopo la lezione: ristudiate i lucidi e gli appunti, studiate le parti del libro relative alla lezione
• scrivere email ai docenti per chiedere [email protected] [email protected]
• andare a ricevimento per avere spiegazioni aggiuntive– cercate la pagina web del docente e guardate gli orari e le
modalità www.cs.unibo.it/~laneve www.cs.unibo.it/~lanese ,
11
. . . come studiare all’università/cont.
• a fine corso vi verrà dato un questionario in cui dare un voto e in cui poter scrivere commenti
• il questionario è MOLTO IMPORTANTE
• una parte delle vostre tasse va al corso di studio per migliorare le infrastrutture/pagare i tutor per il supporto alla didattica/etc.– questa parte è proporzionale ai risultati dei questionari– siate onesti nella valutazione: quanto la colpa della mancata
comprensione è da attribuire al docente? Quanto è da attribuire allo studente che non ha fatto domande, non è andato al ricevimento, non ha studiato?
12
commenti degli studenti: questionari
13
commenti degli studenti: questionari
14
commenti degli studenti: questionari
15
commenti degli studenti: questionari
le slide sono manchevoli di elementi importanti per la comprensione– vedi lucidi precedenti
ECLIPSE è un supporto runtime scomodo da utilizzare– ECLIPSE è software libero e funziona su diversi sistemi
operativi – voi potete usare il supporto run-time che preferite
non ho capito le strutture dati dinamiche (liste, alberi): bisognerebbe dare più spazio a queste– avrete lezioni ed esercitazioni su liste e alberi da parte di
tutti i docenti, faremo più esercizi16
questionari: alcuni commenti degli anni scorsi