CORSO DI PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0-INTRO.pdf · Cosimo Laneve/Ivan Lanese/Elena...

Post on 15-Feb-2019

229 views 2 download

Transcript of CORSO DI PROGRAMMAZIONE - cs.unibo.itlaneve/html/lez0-INTRO.pdf · Cosimo Laneve/Ivan Lanese/Elena...

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 delucidazionicosimo.laneve@unibo.it ivan.lanese@unibo.it

• 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