INFORMATICS

Teaching in italian
INFORMATICA
Teaching
INFORMATICS
Subject area
ING-INF/05
Reference degree course
BIOLOGY
Course type
Bachelor's Degree
Credits
6.0
Teaching hours
Frontal Hours: 52.0
Academic year
2023/2024
Year taught
2023/2024
Course year
1
Language
ITALIAN
Curriculum
PERCORSO GENERICO/COMUNE
Reference professor for teaching
PASCALI Stefano
Location
Lecce

Teaching description

Nozioni di matematica acquisite nei corsi di scuola secondaria

Il corso intende fornire i fondamenti dell'informatica e della programmazione strutturata come strumenti di base necessari alla formazione scientifica in ambito biologico.

I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di:

  • conoscere le metodologie di rappresentazione e codifica dell’informazione;
  • conoscere le principali caratteristiche dell’architettura di un calcolatore e del suo sistema operativo;
  • utilizzare gli strumenti della programmazione strutturata per progettare e implementare semplici algoritmi nel linguaggio Python;
  • utilizzare i principali software di supporto alla produttività individuale, gli strumenti informatici di Internet. 

Lezioni in aula.
Esercitazioni pratiche in laboratorio.

Prova scritta teorica sui fondamenti di informatica e programmazione Python
Prova orale successiva ad integrazione della prova scritta.
 

Codifica digitale dei dati.
Sistema di numerazione posizionale, generico, ottale, esadecimale, sistema binario, algoritmi di conversione tra basi differenti. Bit, byte e suoi multipli. Rappresentazione complemento a 2 e in virgola mobile IEEE754. I caratteri ASCII e Unicode. Le immagini in formato digitale, i suoni in formato digitale, cenni sul processo di digitalizzazione dei segnali analogici. Algebra di Boole.
 

Architettura elaboratore.
Il modello di von Neumann, microprocessore, memoria RAM, bus trasferimento dati, memoria di massa e periferiche di input/output. Cenni altre architetture.
 

Sistema Operativo.
Definizione, funzioni e architettura. Kernel, scheduler, processi, gestore della memoria. Gestione dell'I/O, file system, interfaccia utente e spooler di stampa.
 

I computer in rete e Internet. Sicurezza informatica.
Topologie delle reti di calcolatori. Mezzi trasmissivi. Trasmissione dei dati. Reti geografiche, commutazione di circuito e di pacchetto. Reti locali, topologie e metodi di accesso. Definizione di protocollo di comunicazione e cenni su la suite TCP/IP. Applicativi di rete di produttività individuale, web browser e servizio email. Requisiti della sicurezza informatica. Cenni su crittografia simmetrica e asimmetrica, funzioni hash e certificati digitali.
 

Programmazione strutturata.
Problemi e algoritmi, esecutori e linguaggi. Proprietà degli algoritmi e loro formalizzazione: diagrammi di flusso, costrutti fondamentali (sequenza, condizionale, iterativo), teorema di Böhm-Jacopini. Tabella di traccia e pseudo codice. Strutture dati statiche, array, matrici e struct. Strutture dati dinamiche, liste pile, code. Funzioni, parametri attuali e formali, scope e ciclo di vita delle variabili.
 

Linguaggi di programmazione.
Vocabolario, sintassi, semantica. Linguaggi imperativi, programmazione procedurale, programmazione orientata agli oggetti. Linguaggi interpretati e linguaggi compilati. Cenni linguaggi dichiarativi. Linguaggi per la descrizione e la manipolazione dei dati. Modello Entity-Relationship, introduzione al modello relazionale e al linguaggio SQL. Cenni HTLM.
 

Le basi della programmazione in Python.
Gli elementi del linguaggio Python. La scrittura del codice e l'interprete. Struttura di base dei programmi in Python. Introduzione a funzioni e librerie. Tipi primitivi. I/O di base, e formattazione dell'output. Istruzioni condizionali e operatori relazionali. Selezioni annidate e operatori logici. Variabili booleane. Operatori aritmetici, di assegnamento e di incremento. Conversione di tipo. I cicli iterativi, il ciclo for, il ciclo while, cicli di convalida dell’input, cicli nidificati. Funzioni, definizione e chiamata, variabili locali, passaggio di argomenti, variabili globali e costanti globali. Funzioni ricorsive. File ed eccezioni, input e output da file, elaborazione dei file con i cicli, elaborazione dei record, eccezioni. Liste e tuple, sequenze, porzioni, operatore in, metodi delle liste funzioni integrate. Copia, elaborazione e comprensione di liste. Tuple. Plottaggio dei dati delle liste con libreria matplotlib. Elaborazione di stringhe, operazioni di base, porzioni di stringhe, ricerca e manipolazione. Dizionari e set.
 

Complessità computazionale, algoritmi di ricerca e ordinamento

Tempo di esecuzione T(n) e complessità asintotica di un algoritmo. Algoritmi di ricerca lineare, ricerca binaria, selection sort, bubble sort, insertion sort e quick sort; calcolo delle relative complessità computazionali.

- Appunti delle lezioni forniti dal docente

- Introduzione a Python – 5/Edizione. Tony Gaddis. Pearson. ISBN:‎ 978-8891927651

in alternativa

- Introduzione a Python per l’informatica e la data science. Carlo Mereghetti - Paul J. Deitel - Harvey M. Deitel - Pietro Codara. Pearson. ISBN: 9788891915924


 

Semester
Second Semester (dal 04/03/2024 al 07/06/2024)

Exam type
Compulsory

Type of assessment
Joint Written and Oral - Final grade

Course timetable
https://easyroom.unisalento.it/Orario

Download teaching card (Apre una nuova finestra)(Apre una nuova finestra)