Fornire gli elementi di base della “cultura informatica” attraverso strumenti, metodologici e concettuali, efficaci e duraturi per affrontare in modo flessibile l’evoluzione tecnologica e il vasto mondo delle applicazioni.
Obiettivi particolari sono:
- introdurre l'Informatica come disciplina per la soluzione automatica di problemi;
- esaminare i concetti di base della programmazione degli elaboratori elettronici; gli strumenti linguistici, le metodologie e le tecniche, in parte formali ed in parte pragmatiche, della programmazione e i relativi aspetti qualitativi dell’efficienza e della correttezza;
- presentare le strutture di dati e alcuni algoritmi fondamentali.
Al termine del corso gli studenti saranno in grado di affrontare un problema di programmazione in tutte le sue parti, ovvero:
- comprendere, analizzare e formalizzare il problema;
- progettare un algoritmo risolutivo;
- implementare l'algoritmo nel linguaggio tecnico-scientifico Julia;
- effettuare test di correttezza;
- giudicare criticamente il programma in termini di leggibilità del codice e di efficienza, riusabilità e manutenibilità del programma.
Obiettivi particolari sono:
- introdurre l'Informatica come disciplina per la soluzione automatica di problemi;
- esaminare i concetti di base della programmazione degli elaboratori elettronici; gli strumenti linguistici, le metodologie e le tecniche, in parte formali ed in parte pragmatiche, della programmazione e i relativi aspetti qualitativi dell’efficienza e della correttezza;
- presentare le strutture di dati e alcuni algoritmi fondamentali.
Al termine del corso gli studenti saranno in grado di affrontare un problema di programmazione in tutte le sue parti, ovvero:
- comprendere, analizzare e formalizzare il problema;
- progettare un algoritmo risolutivo;
- implementare l'algoritmo nel linguaggio tecnico-scientifico Julia;
- effettuare test di correttezza;
- giudicare criticamente il programma in termini di leggibilità del codice e di efficienza, riusabilità e manutenibilità del programma.
scheda docente materiale didattico
Problemi, algoritmi e programmi
Architettura dei calcolatori
Linguaggi e Compilazione
Stile e convenzioni
I/O, variabili e costanti
*Operazioni*
Rappresentazione dell’informazione
Aritmetica binaria
Tipi di dato
Espressioni
Algebra booleana
*Strutture di controllo*
Selezione
Iterazione
Funzioni
*Strutture dati*
Array
Stringhe
Matrici
Insiemi
Strutture
*Concetti avanzati*
Ambienti di sviluppo integrati
Ricorsione
Errori
Librerie
File
Programma
*Concetti di base*Problemi, algoritmi e programmi
Architettura dei calcolatori
Linguaggi e Compilazione
Stile e convenzioni
I/O, variabili e costanti
*Operazioni*
Rappresentazione dell’informazione
Aritmetica binaria
Tipi di dato
Espressioni
Algebra booleana
*Strutture di controllo*
Selezione
Iterazione
Funzioni
*Strutture dati*
Array
Stringhe
Matrici
Insiemi
Strutture
*Concetti avanzati*
Ambienti di sviluppo integrati
Ricorsione
Errori
Librerie
File
Prerequisiti
Il corso non richiedere alcun prerequisito.Testi Adottati
A. Bellini, A. Guidi, "Linguaggio C. Una guida alla programmazione con elementi di Python", VI Edizione, McGraw-Hill.Modalità Erogazione
Lezioni ed esercitazioni in aula (salvo in periodi di emergenza sanitaria). La frequenza non è obbligatoria, ma è fortemente consigliata.Modalità Frequenza
La frequenza non è obbligatoria, ma è fortemente consigliata.Modalità Valutazione
Le valutazioni consiste in una prova scritta composta da esercizi di programmazione, esercizi su algebra di Boole, aritmetica binaria e analisi dati, domande a risposta multipla, domande teoriche riguardanti il programma del corso da svolgersi in laboratorio.