Coorte 09/10 - Esame 4 cfu integrazione ECDL

L'esame è scritto (NON al computer) e consiste in domande ed esercizi. È necessario portare copia della dichiarazione della Commissione didattica riguardo i titoli da integrare. 

TEORIA

  • idee fondamentali sul conteggio. Numero come operazione di discretizzazione, pertinentizzazione e rappresentazione di aspetti del mondo.
  • principi fondamentali legati al concetto di informazione. Concetto di modello.
  • concetto di base numerica (compresa base 1).
  • passaggi generici di base dei numeri, con partenza o arrivo in base 10.
  • numeri binari e loro significato logico e filosofico.
  • basi numeriche speciali: numeri ottali ed esadecimali e loro collegamento coi numeri binari.
  • impacchettamento di bit per rappresentare informazioni complesse.
  • campionamento. Trasformazioni analogico-digitali di suoni e immagini. Calcoli connessi.
  • concetti fondamentali sugli algoritmi. Algoritmo come discretizzazione e pertinentizzazione di operazioni.
  • memoria e sue caratteristiche teoriche e concettuali. Sua organizzazione in byte (=8 bit).
  • riferimenti nominali alla memoria: variabili e vettori.
  • programmi (implementazioni di algoritmi) in pseudocodice: salti, cicli, operazioni, istruzioni condizionali, blocchi di istruzioni, sottoprocedure e funzioni.
  • algoritmi presentati
    • exchange sort. (Esempio: ordinamento di carte da gioco, scoperte e coperte. Ciclo alfa e beta.)
    • bubble sort (concetto di grado di ordinamento e suo incremento passata dopo passata)
    • quick sort
    • ricerca per scansione lineare
    • ricerca dicotomica
    • compressione di dati testuali (run-length e Lempel-Ziv)
    • compressione di immagini lossless e lossy (GIF e JPG)
  • definizione di computer come manipolatore universale di simboli (o informazioni).
  • complessità computazionale
    • classi di complessità fondamentali: log2 N; N; N*Log2 N; N2 (N3... Nk); 2N (3N... kN); N! (=1*2*3... *N)
    • determinazione della complessità computazionale di semplici programmi
    • complessità computazionale come stima quantitativa del tempo necessario all’esecuzione in base alla dimensione dell’input
    • significato in termini di limitazioni teoriche e operative degli elaboratori
    • problemi “facili” e “difficili” (P e NP)
      • criterio di assegnamento di un problema a P o a NP
      • soddisfacibilità di formula binaria (SAT)
      • cricca (CLIQUE)
      • somma di sottoinsiemi (SUBSET-SUM)
      • ciclo hamiltoniano (HAM-CYCLE)
      • commesso viaggiatore (TRAVELLING SALESMAN PROBLEM, TSP)
  • espressioni regolari
  • crittografia simmetrica
    • codici HASH
    • operatore XOR
    • possibili attacchi alla cifratura
    • esempi di crittazione con chiave
  • crittografia asimmetrica
    • infrastruttura a chiave segreta/pubblica
    • vantaggi e svantaggi
    • possibili attacchi ai messaggi cifrati
    • caratteristiche PAIN: Privatezza, Autenticità, Integrità, Non ripudiazione.
    • firma digitale
    • certification authorities


TECNOLOGIA

  • codifica e memorizzazione dei programmi
  • sistemi operativi come ecosistemi
    • interfaccia (azioni come esecuzioni di sottoprogrammi, selezione di entità come demarcazione dell’input, effetti dell’azione sull’input come output)
    • località della memoria privata dei programmi
    • programmi Driver e componenti con interfaccia predefinita, loro criticità nel sistema operativo
  • codifica delle informazioni con XML
    • coppie di “tag”
    • nidificazione di tag
    • attributi interni ai tag
    • creazione di dati strutturati con XML
  • rappresentazioni di informazioni
    • formati grafici vettoriali (PS e PDF) e raster (GIF, JPG)
    • formati testuali: testo semplice e formati complessi (file di word per esempio) descritti attraverso formalismi tipo XML.
INTERNET (programma di browser utilizzato: Opera)
  • ricerca di informazioni con Google
    • ricerca di informazioni tecniche con l’inserimento di keyword specifiche
    • conversione di temperature, valute, misure direttamente dalla casella di ricerca
    • raggruppamento di keyword con le virgolette
    • operatori logici nella ricerca
    • esclusione di keyword dai risultati
    • Google images

(*) Il programma riassume tematicamente gli argomenti trattati e non segue strettamente l’ordine delle lezioni. Alcuni argomenti sono stati oggetto di più lezioni, affrontati dove era più opportuno anche se appartenenti tematicamente ad altre lezioni, o usati come esempio in luoghi diversi. I collegamenti incrociati tra tutti gli argomenti sono il contenuto fondamentale su cui concentrarsi. Molti argomenti del programma si trovano nel libro trattati approfonditamente, ma altri argomenti sono trattati perfino più approfonditamente di quanto non sia stato fatto a lezione: è opportuno comunque leggere e cercare di capire gli aspetti sostanziali della trattazione del libro senza soffermarsi sui dettagli (la capacità fondamentale è saper comprendere quali sono i dettagli e quali non lo sono). Questi argomenti maggiormente approfonditi nel libro sono fondamentalmente due: le basi di dati (da studiare da un punto di vista concettuale per quanto riguarda la modellizzazione, i diagrammi E-R, e i concetti di fondo, tralasciando però i dettagli implementativi e dei linguaggi di interrogazione); e i dettagli di funzionamento della struttura interna del computer (che vanno letti e compresi, ma non studiati approfonditamente) e dell’esecuzione dei programmi (per esempio si può tralasciare il pipelining). Molti argomenti non sono trattati nel libro, ma si possono trovare ampie informazioni in rete (autonomamente o seguendo i link che ho inserito nei riassunti delle lezioni), oltre che naturalmente nel blog del corso che contiene ampi riassunti: http://psinform.blogspot.com . Tutti questi argomenti (tranne gli aspetti più “filosofici”) sono presenti abbondantemente su Internet, in caso di difficoltà con le fonti proposte è perciò sempre possibile rivolgersi ad altri documenti che possano integrare o approfondire certi aspetti.