Paolo Boldi

Indice

  1. Avvisi
  2. Correzioni e risultati dei compitini
  3. Date appelli
  4. Iscrizioni agli appelli
  5. Programma del corso
  6. Libri di testo consigliati
  7. Modalità d'esame
  8. Ricevimento studenti

Avvisi

Iscritti all'appello di gennaio 2005. Gli studenti dello scorso A/A che si sono iscritti all'appello di gennaio sosterranno lo scritto il 19/01/2005 (aula Alfa, ore 14.00). Dopo l'esame scritto, dovranno necessariamente presentare il progetto di febbraio e la verbalizzazione del loro voto sarà possibile solo se il loro scritto e il loro progetto risulteranno sufficienti; la verbalizzazione e l'orale avverranno contestualmente all'appello di febbraio, il 18/2 come indicato nella pagina dell'A/A 2004/05.

Soluzione progetto MP3. È disponibile un esempio di soluzione del progetto MP3.

Appello di settembre. A quanto risulta, tutti gli studenti che hanno consegnato il progetto a giugno e hanno ricevuto per esso una valutazione sufficiente hanno verbalizzato negli appelli di giugno e luglio. Quindi, sic stantibus rebus, l'appello di settembre è sospeso.

Compitini

I compitino (22/10/2003) Esercizi di preparazione Testo e soluzioni Esiti
II compitino (26/11/2003) Esercizi di preparazione Testo e soluzioni Esiti
III compitino (27/1/2004) Esercizi di preparazione Testo e soluzioni Esiti
Tabella riassuntiva
Tabella dei bonus

Date appelli

La seguente tabella riassume le date presunte degli appelli. Tali date sono soggette a possibili variazioni, e verranno confermate con le modalità usuali.

AppelloPubblicazione testo progettoConsegna progettiScrittoOrali
Febbraio 2004 14/1 (testo) 6/2 (chiuse) 11/2 (testo: PostScript, PDF) 18/2
Aprile 2004 21/4 (testo: PostScript, PDF) 28/4
Giugno 2004 24/5 (testo, soluzione) 14/6 23/6 (testo: PostScript, PDF) 30/6
Luglio 2004 5/7 (testo non disponibile) 7/7
Settembre 2004 15/9 22/9
Gennaio 2005 Vedi appello febbraio 2005 19/1 26/1

Iscrizioni agli appelli

AppelloDati iscritti
Febbraio 2004Dati
Aprile 2004Dati
Giugno 2004Dati
Luglio 2004Dati

Programma di massima del corso di Informatica generale (A.A. 2003/2004)

Nel seguente programma i numeri indicati fra parentesi quadre si riferiscono ai corrispondenti capitoli nel libro adottato per il corso (Dai fondamenti agli oggetti).

I PARTE: Architettura degli elaboratori

  1. Cos'è l'informatica [1.1]
  2. Dagli algoritmi ai programmi [1.2]
  3. Linguaggi di programmazione (macchina, assembly, alto livello)
  4. Informazione (bit, byte, ...) [1.3]
  5. Il calcolatore come macchina programmabile [1.4]
  6. Architettura del calcolatore: la macchina di von Neumann [1.5]
  7. Funzionamento della macchina di von Neumann
  8. Architettura della CPU: ALU e CU
  9. Un esempio di CPU con relativo linguaggio assembly
  10. Elementi di algebra booleana
  11. Rappresentazione dell'informazione
    1. Gli interi
      1. Notazione posizionale
      2. Decimale, ottale, esadecimale, binaria
      3. Algoritmi di traduzione da/verso decimale
      4. Scorciatoie: da ottale ed esadecimale a binaria e viceversa
      5. Rappresentazione degli interi negativi: modulo e segno e complemento a due
      6. Range di rappresentazione, overflow
      7. esempi di somme e sottrazione tra interi
      8. Richiamo ai circuiti: circuito per la somma di interi
      9. Cenni alla rappresentazione dei reali: virgola fissa e mobile (standard IEEE 754)
    2. I caratteri
      1. ASCII e UNICODE

II PARTE: Programmazione in Java

  1. Ciclo di vita del software
  2. Linguaggi ad alto livello [1.6]
  3. Strumenti per la programmazione [1.7]
  4. Traduttori, editor [1.7]
  5. La JVM [1.8]
  6. Perché Java
  7. Programmazione strutturata [1.9]
  8. Concetti di variabile, tipo, assegnamento [1.10]
  9. Selezione e iterazione [1.11]
  10. Introduzione alla programmazione a oggetti [1.12]
  11. Aspetti sintattici [1.13] BNF e carte sintattiche [1.13] Cenni della grammatica di Java [1.14] Primi esempi di programmi in Java [1.15]
  12. Invocazioni di metodi [2.1.1]
  13. Invocazione di costruttori [2.1.1]
  14. Classi per I/O [2.1.1, 2.1.2]
  15. Esempi [2.1.2]
  16. Prototipi, segnature, overloading [2.2]
  17. Classe String: costruttori e oggetti [2.3]
  18. Tipi di variabili: primitivi, riferimenti [2.4]
  19. Esempi (la classe Frazione) [3.1]
  20. Uso della classe Frazione [3.1]
  21. Principi di buona programmazione: commenti, indentazione, cenno a javadoc ([6.8])
  22. if [3.2]
  23. Il tipo boolean e operatori logici [3.3, 3.4]
  24. Cicli: while, do, for [3.5, 3.6]
  25. Esempi (fra cui: palindrome) [3.5, 3.6]
  26. Istruzioni break e continue [3.7]
  27. Cicli infiniti
  28. Espressioni: tipo, valore [4.1]
  29. Effetti collaterali [4.1]
  30. Lazy evaluation [4.1]
  31. Tipi numerici interi e operatori [4.3, 4.2]
  32. Tipi numerici floating point e operatori [4.4, 4.2]
  33. Conversioni di tipo e cast [4.5]
  34. Operatore +; il metodo toString [4.5]
  35. Tipo char; relazione con i tipi interi [4.6]
  36. Regole di precedenza
  37. Costanti
  38. Istruzione switch [4.7]
  39. Metodi statici [4.8]
  40. Classi involucro [4.9]
  41. Array con esempi [4.10, 4.12]
  42. Cenni ad array a più dimensioni
  43. Parametri del main [4.11]
  44. Esempi
  45. Classe Rettangolo [5.1]
  46. Classe Quadrato [5.3]
  47. Relazioni fra Quadrato e Rettangolo [5.4]
    1. Ereditarietà
    2. Rappresentazione UML
    3. Overriding
    4. Uso dei riferimenti
    5. Polimorfismo
    6. instanceof
  48. Esempio FigureAreaMax [5.4]
  49. Classe Cerchio [5.5]
  50. Introduzione alle classi astratte [5.5]
  51. Riepilogo: gerarchia delle classi, gerarchia dei tipi [5.6]
  52. Classe Object [5.6]
  53. Uso dei tipi riferimento (promozioni, cast) [5.7]
  54. Dynamic binding [5.8]
  55. Un esempio [5.9]
  56. Cenni ai package
  57. Gestione di file [5.10]
  58. Esempi [5.11]
  59. Interfacce [5.12]
  60. Interfacce e tipi [5.12]
  61. Implementazione di classi: la classe Frazione [6.1, 6.2]
  62. La classe Orario [6.4]
  63. Metodi e campi statici [6.5]
  64. Modificatore final (per gli attributi)
  65. Riepilogo sui membri delle classi [6.6]
  66. Garbage collection [6.6]
  67. Implementazione di un'interfaccia [6.7]
  68. Ereditarietà (la classe Quadrato) [7.1]
  69. Costruttori e ereditarietà [7.2]
  70. Estensioni di classi astratte
  71. Adombramento di variabili: uso di this
  72. Uso di super [7.3]
  73. Overloading di metodi e costruttori [7.4, 7.5]
  74. Modificatori di accesso [6.10, 7.12]
  75. Modificatore final per i metodi e le classi
  76. Il metodo equals [7.6]
  77. Esempi di classi e ereditarietà [7.9, 7.10, 7.11]
  78. Invocazione di costruttori e metodi [9.1]
  79. Passaggio di parametri [9.1]
  80. Organizzazione della memoria [9.2]
  81. Stack e record di attivazione [9.2]
  82. Metodi ricorsivi [9.3]
  83. Notazione postfissa [10.1]
  84. Introduzione alle eccezioni [10.2]
  85. Eccezioni [10.2]
  86. Notazione postfissa con eccezioni [10.3]
  87. Sollevare eccezioni [10.5]
  88. Eccezioni controllate e non controllate [10.7]

Libri consigliati

Il testo consigliato per il corso è:

G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione JAVA, Addison-Wesley, Pearson Education Italia. In libreria da settembre 2003.

Per la prima parte del corso, segnaliamo:

S. Ceri, D. Mandrioli, L.Sbattella: Informatica arte e mestiere, McGraw-Hill, 1999.

Modalità d'esame

Questo documento descrive le modalità d'esame per il corso di Informatica Generale, A.A. 2003/2004, presso il corso di laurea in Comunicazione Digitale.

Compitini

Durante l'anno verranno organizzati tre compitini, costituiti da quiz a risposta chiusa o guidata. I compitini si svolgeranno intorno a fine ottobre, metà novembre, e metà gennaio, rispettivamente, in date che verranno rese pubbliche nelle modalità consuete.

Gli studenti che abbiano sostenuto tutti e tre i compitini e li abbiano superati con voti non inferiori a 12 e con una media finale non inferiore a 18 sono esentati dal sostenere la prova scritta. Tale esenzione è permanente, e vale per tutti gli appelli.

Progetti, prova scritta e calcolo del voto di base

Per ogni studente viene calcolato un voto di base, secondo la seguente formula arrotondata all'intero più vicino:

< voto di base > = 2/3 * < voto scritto (o media compitini) > + 1/3 * < voto progetto > + bonus

Il bonus viene calcolato sulla base della partecipazione alle esercitazioni in laboratorio (Silab). Durante tali esercitazioni, verranno proposti alcuni esercizi di programmazione da svolgersi in una settimana (indicativamente). Il bonus è:

Prova orale

Sono ammessi alla prova orale solo gli studenti che abbiano ottenuto una valutazione maggiore o uguale a 18 per il progetto e per lo scritto (o i compitini). Gli studenti ammessi devono sostenere due prove orali:

Validità degli scritti e discussione dei progetti

Uno studente che abbia già consegnato il progetto con valutazione positiva e abbia sostenuto con valutazione positiva lo scritto in un certo appello può decidere di sostenere la prova orale (o di verbalizzare il voto) in un appello successivo, purché entro i termini di validità del progetto. Ad esempio, se lo studente ha consegnato il progetto a giugno e ha sostenuto con esito positivo lo scritto di giugno, potrà decidere se sostenere l'orale (o verbalizzare il voto) negli orali di giugno, luglio o settembre.

La discussione del progetto avviene di norma contestualmente agli orali (e alle verbalizzazioni). È però data la possibilità, agli studenti che lo desiderino, di discutere il progetto in uno degli appelli precedenti quello in cui lo studente intende sostenere l'esame. Ad esempio, se uno studente intende sostenere l'esame ad aprile, deve necessariamente consegnare il progetto a febbraio, ma può scegliere se discuterlo a febbraio o ad aprile.

Modifica alle modalità d'esame

Queste modalità d'esame possono essere soggette a revisioni nel corso dell'anno. Ogni modifica verrà comunicata per tempo agli studenti, e comunque prima del primo appello disponibile.

Ricevimento studenti

Il docente riceve il giovedì, dalle ore 13.30 alle ore 14.30, nel suo studio di Via Comelico, 39/41 (II piano), su appuntamento. Un appuntamento può essere fissato a lezione, oppure inviando una mail al docente e attendendo una risposta di conferma.