Componenti hardware e architettura del calcolatore.
Algoritmi: proprietà ed esempi.
Elementi base della programmazione strutturata.
Algoritmi di ricerca sequenziale e binaria.
Alcuni algoritmi di ordinamento.
Cenni alla complessità degli algoritmi.
Elementi di logica proposizionale.
Elementi di calcolo binario.
Cenni ai circuiti logici.
Strutture dati astratte e interne (pila, coda, alberi binari, vettore, lista concatenata).
E' intenzione fornire agli studenti le conoscenze di base della disciplina informatica. I concetti di struttura dati e algoritmo sono presentati come elementi fondamentali dell'Informatica. Il corso inoltre fornisce agli studenti gli strumenti principali per poter applicare correttamente il metodo informatico per la soluzione di qualche problema.
Prerequisiti
Corsi vincolanti: nessuno
Metodi Didattici
Lezioni frontali: esposizione critica della teoria in programma, con interazione diretta docente-studente per facilitare e assicurare la piena comprensione della materia. Sono previste anche alcune esercitazioni al calcolatore per la risoluzione di qualche semplice problema.
Modalità di verifica apprendimento
Prova finale scritta e orale. Vengono proposti alcuni esercizi e domande a risposta aperta. La prova è strutturata per valutare la capacità degli studenti di applicare le conoscenze teoriche e tecniche da loro acquisite. Viene valutata anche la capacità di presentare un certo argomento in modo chiaro e sintetico, con la dovuta correttezza.
Programma del corso
Introduzione storica all'Informatica. Cenni alla struttura fisica dell'elaboratore e alla sua architettura. Memorie centrali e di massa. Spazio di indirizzamento. Cenni alle periferiche. Il concetto di algoritmo. Proprietà ed esempi di algoritmi. Programmazione strutturata: dichiarazione e inizializzazione di variabili, costrutti iterativi e di selezione. Algoritmo di ricerca sequenziale e di ricerca binaria. Alcuni algoritmi di ordinamento: Bubble Sort, Insertion Sort, Selection Sort. Cenni alla complessità degli algoritmi. Elementi di calcolo binario: conversione dei numeri da una base all'altra. Operazione con numeri binari. Complemento a due a otto bit per la rappresentazione dei numeri negativi in memoria. Elementi di logica proposizionale: connettivi booleani (AND, OR, NOT) e connettivi logici tramite connettivi booleani. Tautologie e contraddizioni. Strutture dati interne. Vettore e lista concatenata: operazioni di inserimento, cancellazione e ricerca e relativa complessità. Strutture dati astratte: pila, coda, alberi binari. Visite anticipate, posticipate e simmetriche di alberi binari. Alberi binari di ricerca.