Vai al Contenuto Vai alla navigazione del sito

ELEMENTI DI INFORMATICA (011EC)

A.A. 2018 / 2019

Periodo 
Primo semestre
Crediti 
12
Durata 
90
Tipo attività formativa 
Base
Percorso 
[PDS0-2016 - Ord. 2016] comune
Syllabus 
Lingua insegnamento 

Italiano

Obiettivi formativi 

I parte:
CONOSCENZA E COMPRENSIONE
Conoscere i fondamenti del sistema operativo Windows in ambiente stand alone e in contesti di reti aziendali.
Conoscere i fondamenti delle più comuni applicazioni per la videoscrittura, la gestione del foglio di calcolo, la gestione dei database e l'uso efficiente della posta elettronica.
Comprendere il funzionamento di base di tali applicazioni.

CAPACITA' DI APPLICARE CONOSCENZA E COMPRENSIONE
Essere capaci di impiegare i programmi illustrati per la risoluzione di semplici problemi di calcolo e di gestione di informazioni.

AUTONOMIA DI GIUDIZIO
Giudicare in autonomia quali strumenti e funzionalità di tali programmi risultino più indicati per risolvere un problema.

ABILITA' COMUNICATIVE
Spiegare perché una determinata funzionalità di tali programmi vada scelta e come debba essere impiegata per risolvere un problema.

=======================

II parte:
L'obiettivo formativo del corso è quello di un'introduzione all'architettura dei calcolatori, alle reti di calcolatori ed alla programmazione.
L'obiettivo centrale della parte di corso che riguarda la programmazione è quello di insegnare a risolvere problemi tramite calcolatore. Esso comporta lo studio di tecniche per
* analizzare un problema,
* progettare un algoritmo che risolva il problema,
* implementare l'algoritmo in Java.

CONOSCENZA E CAPACITA' DI COMPRENSIONE:
COMPRENDERE
1) come funzioni un calcolatore
2) come funzioni una rete di calcolatori
3) gli elementi di base della programmazione strutturata e a oggetti.
CONOSCERE
1) gli elementi base che compongono un calcolatore
2) i diversi tipi di rete e strumenti hardware/software di comunicazione tra calcolatori
3) gli elementi essenziali del linguaggio Java.

CONOSCENZA E CAPACITA' DI COMPRENSIONE APPLICATE
1) saper scegliere il calcolatore che più si adatta alle proprie esigenze
2) saper configurare una semplice rete di calcolatori
3) saper operare e programmare in ambiente Java.

AUTONOMIA DI GIUDIZIO:
1) valutare i problemi che possono verificarsi su un calcolatore e possibilmente risolverli
2) valutare i problemi su una rete di comunicazione e come risolverli
3) essere in grado di comprendere le specifiche di un problema assegnato e di realizzare un programma che risolve il problema assegnato.

ABILITA' COMUNICATIVE: saper esporre, sia in forma scritta che orale, il problema assegnato e le possibili soluzioni.

CAPACITA' DI APPRENDERE: saper raccogliere informazioni dai libri di testo e da altro materiale per la soluzione autonoma di problemi relativi alle specifiche di calcolatori e alla programmazione in Java.

Prerequisiti 

Nozioni di matematica acquisite nella scuola media superiore.

Contenuti 

I Parte:
Funzioni principali di Windows in ambiente stand alone e in ambiente di rete.
Utilizzo dei programmi per editing di testo, posta elettronica, navigazione in Internet, presentazioni, excel e Access.

=====================

II Parte:
Architettura calcolatori: rappresentazione di numeri, testo, immagini e altro; principali elementi di un calcolatore; periferiche; sistemi operativi.
Reti di calcolatori: livelli e protocolli; sicurezza.
Programmazione: come nasce un programma; Java (presentazione degli oggetti, ma senza ereditarietà e polimorfismo).

Metodi didattici 

Didattica frontale alla lavagna con video proiettore, con presentazione dei principi teorici ed esercitazioni. Utilizzo di clickers software per la verifica continua ed anonima dell'apprendimento.

Programma esteso 

II Parte:
RAPPRESENTAZIONE DI NUMERI: conversione e basi 2, 10 e 16; minimo e massimo rappresentabile di un numero N; somma e sottrazione binarie; numeri relativi (rappresentazione modulo e segno, complemento ad 1, complemento a 2, minimo e massimo rappresentabili); numeri frazionari; confronto numeri razionali; overflow.
RAPPRESENTAZIONE DI TESTO, IMMAGINI ED ALTRO: testo ASCII, Unicode, font; immagini vettoriali, bitmap (colori e B/N), quantizzazione; schermi LCD, OLED e 3D; stampa RGB e CMYK, risoluzione; compressioni Lossless Run Length, TIFF e con dizionario; compressione Lossy JPEG; campionamento e compressione audio; compressione e contenitori video; interlacciamento.
ARCHITETTURA DEL COMPUTER: leggi di Moore, produzione di chip, architettura Von Neumann; bus di sistema interni ed esterni; memoria centrale: tipologie di RAM, CAS latency;CPU: composizione (clock, registri, alu, fpu e cu); operazioni basilari; RISC vs CISC; cache; processori multicore e superscalariprocessori ARMaltri elementi scheda madre: socket, alimentazione, connettori, chipset.
PERIFERICHE: Human Interface Device (mouse, touch capacitivo e resistivo, ecc)schede video: combinazione di schede, memoria, uscite video, GPUarchiviazione ottica: compact disc, DVD, blu-rayhard disk tradizionali: geometria, controllo errori, dati SMART, buffer, access time.dispositivi SSD: accesso ai dati, SLC vs MLC, wear leveling, over provisioning, TRIM, dischi ibridiorganizzazione dei dischi: master boot record, partizioni, RAIDfile system: albero, gestione spazio, link, frammentazione, cancellazione, formattazione, controllo erroriSISTEMI OPERATIVIinterfaccia utente, APIprocessi e task, kernel (micro e monolitico), drivers, sequenza di accensioneprincipali sistemi operativi (windows, unix, mac OsX, Linux, Android e iOS)gestione delle risorse: memoria virtuale, costruzione file system, buffer, spooler di stampa, servizi e demoni, registro.terminali, emulatori e virtualizzazionesicurezza del sistema operativo
RETI: livelli e protocollilivello fisico: mezzi trasmissivi, fibra ottica, DSL, GSM, ethernet, WiFIlivello instradamento: internetworking, router, IP, subnet mask, intranet, IPV6, tethering, TCP/UDP, Firewall, NATlivello di applicazione: DHCP, DNS, E-Mail, WWW, HTTP, HTML, FTPaltri protocolli: VOIP, Peer-to-Peer, VPNcloud computing
SICUREZZA: crittografia: password sicure, enigmacrittografia simmetricacrittografia assimmetricahashfirma elettronica e certificati, dispositivi di firmacomunicazioni sicure: TLS, HTTPS, PEC, OTP
COME NASCE UN PROGRAMMA: algoritmo, libreria, machine learninglinguaggi di programmazione: linguaggio macchina, basso livello, assembler, alto livello, compilatore, linguaggio strutturato, linguaggio ad oggetti, linguaggio interpretato, macchine virtuali, offuscamentoJava: java standard edition, JDK/JRE, Netbeans Scratch MIT
INTRODUZIONE A JAVA: creare un progetto in Netbeanscompilazione ed esecuzioneelementi principali di una classe Java sintassiindentazionescrittura a schermo e lettura da tastiera
JAVA: errori: sintassi, run-time, logici, debug, breakpointvariabili: definizione, camel case, tipi di variabili, valori di default, castinglogica booleana: uguaglianza, diversità, negazione, confronti tra numeri, and, orcostrutti di selezione (if-then, if-then-else)tipi di cicli (do, while, for); cicli infinitiarray: definizione, accesso, inizializzazione; iterazione di array; array multidimensionalimetodi: creazione di funzioni che elaborino un input e ritorni

Modalità di verifica dell'apprendimento 

I parte (3 crediti): esame scritto
II parte (6 crediti): esame scritto sulla parte di teoria e di programmazione, senza possibilità di utilizzare appunti o PC. Per passare l'esame è necessario raggiungere la sufficienza sia sulla parte teorica che su quella legata alla programmazione.

Per passare l'esame occorre avere la sufficienza su entrambe le parti.

Testi di riferimento 

Dispense e slides dei docenti.

Per chi volesse approfondire:
Il linguaggio Java. Guida alla programmazione di base - Bigatti
Programmazione di base e avanzata con Java - Savitch


Torna all'elenco insegnamenti