Programmazione

Programma del corso, testi consigliati e altro materiale


Programma del corso
Testi consigliati e altro materiale

Programma dei corsi e testi consigliati per i "vecchi" corsi di FAP e Informatica generale

Programma del corso

Nel seguente programma, i numeri indicati fra parentesi quadre si riferiscono ai corrispondenti [capitoli.paragrafi] del libro di riferimento Dai fondamenti agli oggetti (III edizione).

  1. Cos'è l'informatica
  2. Algoritmi, esempi. Dagli algoritmi ai programmi [1.2]
  3. Linguaggi di programmazione (macchina, assembly, alto livello) [1.6]
  4. Il calcolatore come macchina programmabile [1.4]
  5. Architettura del calcolatore: la macchina di von Neumann [1.5]
  6. Cenni alla rappresentazione digitale dell'informazione
  7. Funzionamento della macchina di von Neumann [1.5]
  8. Architettura della CPU: ALU, CU, registri [1.5]
  9. Cenni ad un linguaggio assembly [1.5]
  10. Ciclo di vita del software
  11. Linguaggi ad alto livello [1.6]
  12. Strumenti per la programmazione [1.7]
  13. Traduttori, editor [1.7]
  14. La JVM [1.8]
  15. Perché Java
  16. Programmazione strutturata [1.9]
  17. Concetti di variabile, tipo, assegnamento [1.10]
  18. Selezione e iterazione, esempi di programmi [1.11]
  19. Introduzione alla programmazione a oggetti [1.12]
  20. Aspetti sintattici [1.13]
  21. BNF e carte sintattiche [1.13]
  22. Cenni alla grammatica di Java [1.14]
  23. Primi esempi di programmi in Java [1.15]
  24. Invocazioni di metodi
  25. Invocazione di costruttori
  26. Classi per I/O [2.1]
  27. Esempi
  28. Prototipi, segnature, overloading [2.2]
  29. Classe String: costruttori e oggetti [2.3]
  30. Tipi di variabili: primitivi, riferimenti [2.4]
  31. Esempi (la classe Frazione) [3.1]
  32. Uso della classe Frazione [3.1]
  33. Selezione: if, switch [3.2, 4.8]
  34. Il tipo boolean e operatori logici [3.3, 3.4]
  35. Cicli: while, do, for [3.5, 3.6]
  36. Esempi (fra cui: palindrome) [3.5, 3.6]
  37. Istruzioni break e continue [3.7]
  38. Cicli infiniti
  39. Espressioni: tipo, valore [4.1]
  40. Effetti collaterali [4.1]
  41. Lazy evaluation [4.1]
  42. Tipi numerici interi e operatori [4.3, 4.2]
  43. Tipi numerici floating point e operatori [4.4, 4.2]
  44. Conversioni di tipo e cast [4.5]
  45. Operatore +; il metodo toString [4.5]
  46. Tipo char; relazione con i tipi interi [4.6]
  47. Regole di precedenza
  48. Costanti
  49. Metodi statici [4.9]
  50. Classi involucro [4.10]
  51. Boxing e unboxing [4.10]
  52. Tipi enumerativi (cenni) e loro uso negli switch [4.7]
  53. Array con esempi [5.1]
  54. Ciclo foreach per array [5.2]
  55. Parametri del main [5.3]
  56. Cenni ad array a più dimensioni [5.6]
  57. Esempi
  58. Sequenze e uso delle classi generiche [5.7]
  59. Classe Rettangolo [6.1]
  60. Classe Quadrato [6.3]
  61. Relazioni fra Quadrato e Rettangolo [6.4]
    1. Ereditarietà
    2. Rappresentazione UML
    3. Overriding
    4. Uso dei riferimenti
    5. Polimorfismo
    6. instanceof
  62. Esempio FigureAreaMax [6.5]
  63. Classe Cerchio [6.5]
  64. Introduzione alle classi astratte [6.5]
  65. Riepilogo: gerarchia delle classi, gerarchia dei tipi [6.6]
  66. Classe Object [6.6]
  67. Uso dei tipi riferimento (promozioni, cast) [6.7]
  68. Dynamic binding [6.8]
  69. Interfacce [6.12]
  70. Interfacce e tipi [6.12]
  71. Implementazione di classi: la classe Frazione [7.1, 7.2]
  72. Metodi e campi statici [7.5]
  73. Modificatore final (per gli attributi)
  74. Riepilogo sui membri delle classi [7.6]
  75. Garbage collection [7.6]
  76. Implementazione di un'interfaccia [7.7]
  77. Ereditarietà (la classe Quadrato) [8.1]
  78. Costruttori e ereditarietà [8.2]
  79. Estensioni di classi astratte
  80. Adombramento di variabili: uso di this
  81. Uso di super [8.3]
  82. Overloading di metodi e costruttori [8.4, 8.5]
  83. Modificatori di accesso [7.10, 8.13]
  84. Modificatore final per i metodi e le classi
  85. Il metodo equals [8.7]
  86. Esempi di classi e ereditarietà [8.9, 8.10, 8.11]
  87. Invocazione di costruttori e metodi [8.2]
  88. Passaggio di parametri, per valore, per riferimento [10.1]
  89. Varargs [10.4]
  90. Organizzazione della memoria [10.2]
  91. Stack e record di attivazione [10.2]
  92. Metodi ricorsivi [10.3]

Testi consigliati e altro materiale


Torna alla pagina del corso

Carlo Mereghetti
Dipartimento di Informatica
Università degli Studi di Milano
via Comelico 39, 20135 Milano, Italy
phone(fax) +39 02 503 16261(16276)
mail: mereghetti@di.unimi.it