Corso di laurea

Informatica

Università degli Studi di Genova · 27 materie · 4 file condivisi

Ecco tutti i dettagli sul corso di laurea selezionato. Sul UniDocs troverai gli appunti condivisi dagli altri studenti del tuo corso di laurea, ordinati per materia. Ricordati che per poter visualizzare il materiale devi essere registrato al sito e possedere un numero di crediti sufficiente.

Al momento abbiamo 4 files caricati sul nostro portale suddivisi nelle 27 materie appartenenti al tuo corso di laurea.

Sfoglia il materiale didattico

Con UniDocs hai l'opportunità di studiare insieme a tutto il tuo corso di laurea. Guadagna subito dei crediti, carica il materiale del tuo ultimo esame!
Più condividi, più tempo avrai per studiare con tutta la community!

Materie del corso

Algebra 1° anno · 6 CFU · MATH-02/A · 1 file

Scopo del moduloo è che i partecipanti acquisiscano conoscenze e comprendano il ragionamento astratto dell’algebra e la capacità di individuare strutture simili in contesti diversi, nonché la capacità di formalizzare…

Scheda dell'insegnamento

Obiettivi formativi

Scopo del moduloo è che i partecipanti acquisiscano conoscenze e comprendano il ragionamento astratto dell’algebra e la capacità di individuare strutture simili in contesti diversi, nonché la capacità di formalizzare in modo matematicamente corretto problemi che prevedono operazioni su insiemi.

Programma

1. Nozioni di base - Insiemi - Funzioni - Numeri naturali e induzione - Numeri complessi - Relazioni d’equivalenza - Relazioni d'ordine - Cardinalità
2. Matematica Discreta - Numeri interi - Algoritmo euclideo - Aritmetica modulare 3. Strutture algebriche - Monoidi - Gruppi

Modalità d'esame

L’esame verterà principalmente sugli argomenti trattati durante le lezioni frontali e avrà lo scopo di valutare non soltanto se lo studente ha raggiunto un livello adeguato di conoscenze, ma se ha acquisito la capacità di analizzare criticamente i problemi che verranno posti nel corso dell'esame.

Testi di riferimento

Materiale fornito dal docente su Aulaweb.

Codice insegnamento 73027

Algebra e Logica per Informatica 1° anno · 12 CFU · 0 file

L’insegnamento si propone di fornire agli studenti le nozioni di base dei concetti e degli strumenti fondamentali della matematica, nonché la capacità di formalizzare in modo matematicamente corretto problemi mediante…

Scheda dell'insegnamento

Obiettivi formativi

L’insegnamento si propone di fornire agli studenti le nozioni di base dei concetti e degli strumenti fondamentali della matematica, nonché la capacità di formalizzare in modo matematicamente corretto problemi mediante i linguaggi dell’algebra e della logica.

Programma

L'insegnamento di Algebra e Logica per informatica presenta gli elementi di base del ragionamento e del linguaggio matematico, e approfondisce in particolare alcuni aspetti fortemente legati alle applicazioni informatiche.

Modalità d'esame

Esame scritto. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11896/studenti-disabilita-dsa

L'esame consiste di una prova di Algebra e una di Logica, in ognuna delle quali è richiesta la risoluzione di alcuni esercizi.

Codice insegnamento 98388

Algoritmi e Strutture Dati 1° anno · 12 CFU · INFO-01/A · 0 file

L’insegnamento si propone di fornire agli studenti una generale comprensione della progettazione di algoritmi corretti ed efficienti e della progettazione di strutture dati che permettano un’organizzazione efficace ed…

Scheda dell'insegnamento

Obiettivi formativi

L’insegnamento si propone di fornire agli studenti una generale comprensione della progettazione di algoritmi corretti ed efficienti e della progettazione di strutture dati che permettano un’organizzazione efficace ed efficiente delle informazioni. L'insegnamento ha inoltre lo scopo di ampliare le conoscenze e le capacità inerenti la programmazione in piccolo mediante linguaggi imperativi.

Programma

L'insegnamento "Algoritmi e Strutture Dati" ha come scopo l'ampliamento delle conoscenze e delle capacità inerenti la programmazione in piccolo mediante linguaggi imperativi; esso fornisce le basi per progettare algoritmi efficienti e per sviluppare strutture dati che permettano un’organizzazione efficace delle informazioni.

Modalità d'esame

Modalità d'esame
L'esame consiste in un quiz (il cui esito è superato/non superato), in una prova scritta e in una prova di laboratorio. Per poter sostenere la prova scritta e la prova di laboratorio è necessario avere superato il quiz. Le prove scritte e di laboratorio sono indipendenti tra loro: è possibile prenotarsi e svolgere solo la prova scritta in un appello e prenotarsi e svolgere la prova di laboratorio in un appello successivo, e viceversa. Non è necessario superare una delle due prove per poter sostenere l'altra. E' necessario però avere superato il quiz.
E' previsto un progetto individuale a fine insegnamento, facoltativo, che se svolto adeguatamente accredita altri punti.
A giudizio dei docenti, qualora non sia evidente che lo studente/la studentessa abbia acquisito tutte le competenze previste (accertate con le modalità illustrate in seguito) sarà possibile sottoporre lo studente/la studentessa a una prova orale aggiuntiva mirata a confermare i voti di scritto e/o laboratorio.
I voti parziali conseguiti durante un anno accademico scadono allo scadere dell'anno.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11896/studenti-disabilita-dsa
Modalità di valutazione
Il voto finale si ottiene come somma del voto dello scritto + voto del laboratorio + voto del progetto individuale (se svolto). Tale somma viene arrotondata all'intero più vicino.

Le varie parti d'esame sono state accuratamente progettate dei docenti in modo da verificare se gli studenti sono in grado di

  • calcolare la complessità di semplici frammenti di (pseudo-)codice e di algoritmi notevoli in modo da individuare l'algoritmo più efficiente (quiz con domande chiuse e prova scritta con domande aperte)
  • implementare tipi di dato studiati a lezione con strutture dati diverse che comprendono strutture indicizzate e collegate (prova pratica di laboratorio, progetto individuale)
  • apprezzare la differenza nella efficienza delle funzioni previste dal tipo di dato al variare della struttura dati utilizzata (quiz, prova scritta, prova pratica di laboratorio e progetto individuale in cui si chiede di implementare non solo funzioni corrette, ma anche efficienti)
    Nella valutazione della prova scritta si terrà conto della chiarezza e correttezza della esposizione e della dimostrazione di senso critico.
    Nella valutazione della prova di laboratorio e del progetto individuale si terrà conto della capacità di problem solving, della modularità e chiarezza del codice, della adeguatezza e della chiarezza espositiva della documentazione.
    Saranno resi disponibili e discussi esempi di testi d'esame degli anni precedenti per permettere agli studenti di comprendere esattamente come viene accertata l'acquisizione delle competenze previste. Le attività di peer review saranno guidate dai criteri e le modalità di accertamento adottate dai docenti in sede d'esame.
    I docenti possono inoltre accertare le competenze con una prova orale aggiuntiva qualora le prove previste non permettano di valutare in modo completo e definitivo la padronanza della materia da parte degli studenti.

Testi di riferimento

Tutti gli argomenti previsti dal programma vengono trattati approfonditamente a lezione. Per la comprensione degli argomenti e la preparazione dell'esame è quindi indispensabile disporre delle slide preparate dai docenti e rese disponibili con anticipo, e del materiale didattico aggiuntivo che i docenti forniscono tramite AulaWeb (ad esempio, link a materiale online, fotografie delle esercitazioni svolte alla lavagna).
Il codice C++ reso disponibile dai docenti è parte integrante del materiale didattico a disposizione degli studenti.

Codice insegnamento 80298

Architettura dei Calcolatori 1° anno · 12 CFU · INFO-01/A · 1 file

Scopo dell’insegnamento è che i partecipanti acquisiscano conoscenze e comprendano i principi fondamentali sottostanti l’organizzazione e la struttura dei calcolatori, con riferimento ai linguaggi (assembler e macchina),…

Scheda dell'insegnamento

Obiettivi formativi

Scopo dell’insegnamento è che i partecipanti acquisiscano conoscenze e comprendano i principi fondamentali sottostanti l’organizzazione e la struttura dei calcolatori, con riferimento ai linguaggi (assembler e macchina), alla rappresentazione dei numeri e all’aritmetica, ai circuiti combinatori e sequenziali, al processore e alle gerarchie di memoria, nonché i concetti di base necessari per scrivere codice efficiente, quali la vettorizzazione e il multithreading.

Programma

I calcolatori hanno dato vita alla terza rivoluzione della società, dopo quella agricola e quella industriale. Se l'industria dei trasporti avesse tenuto il passo di quella dei calcolatori, oggi si potrebbe andare da Londra a New York in circa un secondo spendendo qualche centesimo di dollaro.I programmatori di maggior successo hanno sempre tenuto in considerazione le prestazioni dei loro programmi, e questo non può prescindere da una comprensione dei concetti principali alla base dello sviluppo dei calcolatori utilizzati per la loro esecuzione. Il presente insegnamento ha l'obiettivo di presentare le idee e le tecnologie alla base dei moderni calcolatori multicore.

Modalità d'esame

L'esame si compone di una prova scritta obbligatoria ed una orale facoltativa.
La prova scritta è basata su domande a risposta aperta ed esercizi. A seconda del numero di iscritti ad un appello la prova scritta potrebbe essere preceduta da un quiz, in modo da ammettere alla prova scritta solo coloro che conseguono un punteggio sufficiente.
Durante la prova scritta non è possibile consultare alcuna documentazione TRANNE uno o più fogli foglio contenenti le istruzioni dell'assembler del RISC-V. La prova è superata con una votazione complessiva di almeno 18 punti. A tale risultato verranno aggiunti i punti conseguiti negli esercizi svolti durante l'anno, descritti nel seguito.
Lo studente può decidere di accettare il voto o accedere alla prova orale.
La prova orale può essere di tipo domanda singola o tradizionale. Con la domanda singola è possibile conseguire un punteggio nell'intervallo [+2, -1], da sommarsi al voto precedente.
Durante l'anno verranno assegnati esercizi di laboratorio a consegna facoltativa che verranno corretti e valutati come punteggio aggiuntivo rispetto a quello conseguito nella prova scritta. Tali esercizi hanno l'obiettivo principale di favorire l'autovalutazione delle conoscenze e competenze degli studenti rispetto alle tematiche più importanti affrontate durante il corso. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11896/studenti-disabilita-dsa

L'esame scritto valuterà la capacità dello studente di
illustrare i principali concetti teorici;
identificare e descrivere sinteticamente le componenti più importanti dell'architettura RISC-V;
tradurre breviprogrammi dal C all'assembler del RISC-V;
descrivere e realizzare circuiti combinatori e sequenziali di base;
risolvere esercizi di calcolo e comprensione di codice multithreading.
L'eventuale esame orale valuterà le conoscenze teoriche dello studente sugli argomenti del corso.

Testi di riferimento

Verranno fornite dal docente mediante Aulaweb dispense, manuali e programmi di simulazione.

Codice insegnamento 67425

Calculus 1 1° anno · 9 CFU · MATH-03/A · 0 file

L’insegnamento si propone di fornire agli/alle studenti le nozioni di base del calcolo differenziale e integrale per funzioni di una variabile. L’insegnamento di Calculus I è la naturale prosecuzione dei contenuti di…

Scheda dell'insegnamento

Obiettivi formativi

L’insegnamento si propone di fornire agli/alle studenti le nozioni di base del calcolo differenziale e integrale per funzioni di una variabile. L’insegnamento di Calculus I è la naturale prosecuzione dei contenuti di matematica visti nella scuola superiore.

Programma

L’insegnamento di Calculus I presenta gli elementi fondamentali del calcolo differenziale ed integrale per le funzioni di una variabile.

Modalità d'esame

Solo gli/le studenti prenotati/e (sui servizi online di ateneo) potranno partecipare all’esame. L'esame è composto da due parti:
test costituito da domande a scelta multipla di carattere teorico o con semplici esercizi;
compito scritto con esercizi più elaborati.
È necessario superare il test per poter partecipare al compito scritto. È possibile sostenere il compito scritto nello stesso appello del test, oppure in uno degli appelli successivi, ma solo per una volta (poi va ripetuto il test). Il voto finale è dato da
(voto test)*1/3 + (voto compito)*2/3
In caso di non superamento dell'esame, entrambe le parti andranno sostenute nuovamente, a prescindere dall'esito del test.

La prima parte dell'esame è finalizzata alla verifica delle conoscenze dello/a studente sugli argomenti dell'insegnamento e della capacità dello/a studente di gestire la notazione matematica e di svolgere semplici ragionamenti deduttivi.
La seconda parte è finalizzata alla verifica della capacità di svolgere esercizi e della conoscenza dei principali strumenti del calcolo differenziale ed integrale.

Testi di riferimento

Sono disponibili su aulaweb note ed esercizi a cura dei/delle docenti che hanno svolto l'insegnamento negli ultimi anni.​
Libri suggeriti
C. Canuto, A. Tabacco, Analisi matematica 1, Pearson, ISBN: 9788891905468
M. Baronti, M., F. De Mari, R. van der Putten, I. Venturi, Calculus Problems, Springer-Verlag, ISBN: 978-3-319-15427-5
G. Crasta- A. Malusa, Elementi di Analisi Matematica e Geometria con prerequisiti ed esercizi svolti, Edizione La Dotta, ISBN: 978-88-986482-5-2

Codice insegnamento 57069

Fondamenti di Architetture degli Elaboratori 1° anno · 6 CFU · INFO-01/A · 0 file

Il modulo si propone di fornire agli studenti una generale comprensione dei principi fondamentali sottostanti l’organizzazione e la struttura dei calcolatori, con riferimento ai linguaggi (assembler e macchina), alla…

Scheda dell'insegnamento

Obiettivi formativi

Il modulo si propone di fornire agli studenti una generale comprensione dei principi fondamentali sottostanti l’organizzazione e la struttura dei calcolatori, con riferimento ai linguaggi (assembler e macchina), alla rappresentazione dei numeri e all’aritmetica, nonché ai circuiti combinatori e sequenziali.

Programma

Introduzione: dal linguaggio ad alto livello all'hardware
Le componenti di un calcolatore: l'architettura di von Neumann
Bit, byte, parola singola e doppia
Rappresentazione in basi diverse da quella decimale dei numeri interi con e senza segno
La rappresentazione dell'informazione non numerica (e.g. caratteri ed immagini)
L'aritmetica binaria dei calcolatori e i numeri in virgola mobile secondo lo standard IEEE 754
Le principali istruzioni
Operandi ed indirizzi
Traduzione e avvio di un programma (assembler, linker, loader)
Porte logiche, tabella di verità e espressioni Booleane
Unità aritmetico-logica
Clock

Modalità d'esame

Esame scritto con possibilità di fare compiti parziali sui due moduli a fine semestre, possibilità di sostenere un esame orale, punti bonus per consegne di esercitazioni durante l'anno.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11964/studenti-disabilita-dsa

Testi di riferimento

David A Patterson John L Hennessy Struttura e progetto dei calcolatori Progettare con RISC-V Seconda edizione italiana ISBN: 9788808199669
Verrà fornito dai docenti mediante Aulaweb ulteriore materiale quali dispense, manuali e programmi di simulazione.

Codice insegnamento 111453

Il Processore e le Gerarchie di Memoria 1° anno · 6 CFU · INFO-01/A · 0 file

Scopo del modulo è quello di introdurre l’analisi delle prestazioni dei programmi sequenziali alla luce delle nozioni relative al funzionamento delle attuali architetture, con riferimento al processore, alle gerarchie di…

Scheda dell'insegnamento

Obiettivi formativi

Scopo del modulo è quello di introdurre l’analisi delle prestazioni dei programmi sequenziali alla luce delle nozioni relative al funzionamento delle attuali architetture, con riferimento al processore, alle gerarchie di memoria e alla cooperazione tra hardware e software, nonché l’architettura delle GPU, con attenzione agli ambiti applicativi e alle prestazioni.

Programma

Circuiti sequenziali
Flip-Flops, Latches, e registri
Architettura di riferimento di Moore per la sintesi di circuiti sequenziali
Gerarchia delle memorie
Organizzazione delle memorie, località temporale e spaziale
Memorie SRAM e DRAM
Principi base e prestazioni delle memorie cache
Processori moderni
Pipelining ed hazards nell'architettura Risc-V
Parallelismo a livello di parola
Parallelismo a livello di istruzioni
Processori vettoriali
Multithreading hardware
Introduzione alle GPU

Modalità d'esame

Esame scritto con possibilità di fare compiti parziali sui due moduli a fine semestre, possibilità di sostenere un esame orale, punti bonus per consegne di esercitazioni durante l'anno.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11964/studenti-disabilita-dsa

Testi di riferimento

David A Patterson John L Hennessy Struttura e progetto dei calcolatori Progettare con RISC-V Seconda edizione italiana ISBN: 9788808199669
Verrà fornito dai docenti mediante Aulaweb ulteriore materiale quali dispense, manuali e programmi di simulazione.

Codice insegnamento 111454

Introduzione alla Programmazione 1° anno · 12 CFU · INFO-01/A · 1 file

Scopo dell’insegnamento è che i partecipanti acquisiscano familiarità con lo sviluppo di algoritmi nonché le modalità di progettazione, realizzazione e validazione di codice di piccole dimensioni e facilmente…

Scheda dell'insegnamento

Obiettivi formativi

Scopo dell’insegnamento è che i partecipanti acquisiscano familiarità con lo sviluppo di algoritmi nonché le modalità di progettazione, realizzazione e validazione di codice di piccole dimensioni e facilmente comprensibile a partire da specifiche informali fornite dall’utente. Si seguirà l'approccio della programmazione imperativa utilizzando il linguaggio C++, limitatamente alla parte non object-oriented.

Programma

L'insegnamento di Introduzione alla Programmazione ha l'obiettivo di fornire le prime basi di algoritmi e programmazione, dando una particolare enfasi agli aspetti di ragionamento scientifico e pensiero computazionale. L'insegnamento prevede attività di didattica frontale affiancate a laboratori guidati che servono per approfondire e consolidare gli argomenti visti in classe.
L'insegnamento ha un forte connotato applicativo, lo studente è incoraggiato ad affrontare problemi di complessità crescente in autonomia.

Modalità d'esame

L'esame si compone di due parti
prova scritta (con quiz di ammissione online)
prova di laboratorio, alla quale si può accedere dopo aver superato lo scritto
Dettagli sulle tipologie di prova e sul meccanismo di valutazione verranno forniti sul modulo aulaweb dell'insegnamento. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/11896/studenti-disabilita-dsa

La prova di teoria permette di verificare l'avvenuta acquisizione di:
principi del pensiero computazionale e concetti fondamentali degli algoritmi e della programmazione imperativa
basi di programmazione imperativa e di utilizzo di ambiente testuale di sviluppo di programmi (realizzati in linguaggio C++ limitato alla parte non object-oriented), con un editor di testi, compilazione ed esecuzione da linea di comando.
La prova di laboratorio permetterà di verificare:
Acquisizione dei principi di progettazione, realizzazione e validazione di un programma sequenziale di piccole dimensioni partendo dalle specifiche informali fornite dall'utente.
Capacità di produrre codice corretto e comprensibile; capacità di comprendere, utilizzare, modificare codice prodotto da altri

Testi di riferimento

Le lezioni saranno in gran parte svolte con l'ausilio di slide. Le slide possono essere utilizzate come traccia ma *non* sono sufficienti per la preparazione dell'esame.
Durante le lezioni si farà in gran parte riferimento al libro: D.S. Malik Programmazione in C++ Apogeo, 2011, ISBN 978-88-503-2967-0
Va benissimo anche (ed è consigliato come testo di riferimento): B. Stroustrup, Programming: Principles and Practice Using C++, Addison-Westley, 2009, ISBN 978-0321543721. 1272 pagine (disponibile solo in inglese - ce ne sono alcune copie in biblioteca) Quest'ultimo libro tratta però un programma molto più ampio di quello coperto dall'insegnamento.

Codice insegnamento 80299

Lingua Inglese 1 1° anno · ANGL-01/C · 0 file

Consolidate the English B1 competence as described in the CEFR of the European Council and in particular in the following skills: Reading, Use of English, and Listening.

Scheda dell'insegnamento

Obiettivi formativi

Consolidate the English B1 competence as described in the CEFR of the European Council and in particular in the following skills: Reading, Use of English, and Listening.

Programma

All students enrolling for the first time in undergraduate degree courses are required to sit a level B1 English Assessment Test (EN B1 AT). Learn more about the English B1 level on CEFR*.
If students hold an English language certificate, they have to check that this is among those accepted by Unige. If their certificate is in the Unige list, they must upload it at the following link - Aulaweb page. If their certificate is validated, students WILL NOT have to sit the EN B1 AT and they will received an email.
Passing the level B1 English Assessment Test or presenting a valid certificate allow students who have "Lingua inglese 102406" in their study plan to have it recorded with credits (check the exam code in your career).
*The CEFR describes what a learner is supposed to be able to do in a foreign European language from absolute beginner A1 to elementary A2; from pre-intermediate B1 to intermediate B2; from advanced C1 to full proficiency C2.

Modalità d'esame

The exam consists of a computer-based test on a dedicated platform at https://cla.aulaweb.unige.it/.
Exam sessions are scheduled during the official summer, autumn, and winter examination periods. Dates are published in the online exam calendar on servizionline.unige.it, and bookings can be made through the same Unige platform.
The test assesses English language proficiency at the B1 level.
The English B1 test includes the following tasks:
Reading Comprehension (text with gaps): 1 text with 10 blanks to fill, multiple-choice with 4 options per blank – 10 points
Short Texts: 5 signs, short messages, or road signs, etc. to read (1 question each, multiple-choice with 3 options per question) – 5 points
Sentence Transformations: 5 sentences to rephrase and complete using a maximum of 3 words – 5 points
Sentence Completion: 5 sentences to complete by choosing one option out of four provided – 5 points
Reading Comprehension (multiple-choice): 1 text with 5 multiple-choice questions, each with 4 options – 5 points
Listening Comprehension: 2 audio tracks with 3 questions each, multiple-choice with 3 options – 2 points

The English B1 computer-based test is on a dedicated platform at https://cla.aulaweb.unige.it/.
The test assesses language proficiency at the B1 level through a series of exercises similar in type to those offered in module four of the online self-paced course.
The tested skills are Reading comprehension, Use of English, and Listening.
See Exam Methods.

Testi di riferimento

The online English B1 course is a self-paced learning course and will be available to those students who do NOT pass the Assessment Test EN B1. These students receive an email with the link and information.
Please find below, some further suggestions and useful free online resources.
It is strongly recommended that students work on expanding their vocabulary and grammar in context, that is, they learn words and grammar structures inside a text. Here is a piece of advice: read as much as you can, for example paper and/or online newspapers, magazines, books. Also, listen to what you read as you read it (enable English subtitles whenever available), this will also offer you practice with the listening skills. Be consistent and devote some time to any activity in English on an daily basis.
As grammar reference, use 'English Grammar in Use' by Raymond Murphy (get the intermediate version).
English B1 vocabulary and grammar can also be practised on Learning English choose the "Intermediate English" level.
English B1 vocabulary and grammar can also be practised on BBC - Learning English choose the "Intermediate English" level
English B1 vocabulary and grammar can also be practised on the Cambridge Learning English series of activities and grammar focuses
When looking for a dictionary try and use an English to English one. There is a very good online resource called OneLook that offers many different types of dictionaries. The one I suggest you use is the Cambridge Advanced Learner's Dictionary, which always comes with phonemic script and audio.

Codice insegnamento 102406

Logica 1° anno · 6 CFU · MATH-01/A · 1 file

Il modulo si propone di fornire agli studenti una generale comprensione dei concetti di conseguenza ed equivalenza logiche, della distinzione tra sintassi e semantica nei linguaggi formali, del concetto di…

Scheda dell'insegnamento

Obiettivi formativi

Il modulo si propone di fornire agli studenti una generale comprensione dei concetti di conseguenza ed equivalenza logiche, della distinzione tra sintassi e semantica nei linguaggi formali, del concetto di interpretazione per un linguaggio formale e della capacità di tradurre asserzioni da un linguaggio naturale a un linguaggio formale e viceversa.

Programma

  • Introduzione al ragionamento matematico - Sintassi della logica proposizionale - Semantica della logica proposizionale: le tavole di verità - Sintassi della logica del prim'ordine - Semantica della logica del prim'ordine: la teoria dei modelli - Il problema della formalizzazione

Modalità d'esame

Esame scritto.

L'accertamento per il modulo di Logica consiste nella risoluzioni di quattro esercizi o problemi sugli argomenti dell'insegnamento, verificando la capacità dello studente di distinguere tra gli aspetti semantici e sintattici di un linguaggio, di formalizzare correttamente le asserzioni e di riconoscerne la verità in un dato modello..
Sono valutati la correttezza della risoluzione, la chiarezza dell'esposizione, il rigore del ragionamento.

Testi di riferimento

Sono disponibili agli studenti le note dettagliate del corso, presentate dai docenti durante le lezioni. Ogni testo standard di Logica matematica contiene gli argomenti del corso. Come eventuale ulteriore testo di riferimento si segnala: A. Frigeri, S. Adami, A. Cherubini, C. Nuccio, L. Mauri, E. Rodaro: «Logica e algebra», 2018.

Codice insegnamento 73029

Algebra Lineare e Analisi Numerica 2° anno · 9 CFU · MAT/08 · 0 file

Acquisire le nozioni di base dell'algebra lineare (vettori, matrici, trasformazioni lineari e autovalori) e del calcolo numerico (complessità ed errore). Assimilare i principali metodi computazionali per la risoluzione…

Scheda dell'insegnamento

Obiettivi formativi

Acquisire le nozioni di base dell'algebra lineare (vettori, matrici, trasformazioni lineari e autovalori) e del calcolo numerico (complessità ed errore). Assimilare i principali metodi computazionali per la risoluzione di problemi dell'algebra lineare numerica e di alcuni problemi di approssimazione.

Programma

L'insegnamento introduce ai concetti di base sull'uso del calcolatore per risolvere problemi di matematica applicata (in particolare, soluzione di sistemi lineari e approssimazione di dati) e fornisce nozioni basilari di algebra lineare con particolare riguardo al calcolo matriciale, agli spazi vettoriali, alla risoluzione di sistemi lineari e alla forma canonica di matrici..

Modalità d'esame

Per dare l'esame occorre sostenere (in qualunque ordine)
la prova scritta (volta anche ad accertare in modo specifico la preparazione dello studente sulle parti teoriche);
(se verrà confermata l'assegnazione di un supporto alla didattica) la prova di laboratorio sulla seconda parte.
Il voto d'esame è rappresentato dalla somma dei punteggi della prova scritta e del laboratorio.

Testi di riferimento

Per le parti del programma relative all'algebra lineare, su Aulaweb sono a disposizione dello studente: 1. Appunti di Geometria e Calcolo numerico (A. Perelli e M.V. Catalisano) 2. Appunti di Algebra Lineare (M.E. Rossi) 3. Slide del corso 2022-23 (M. Varbaro)
Si consiglia come testo di riferimento: Algebra Lineare a Geometria Analitica (F. Odetti, M. Raimondo), ECIG Universitas.
Per le parti del programma a contenuto prevalentemente numerico, i testi reperibili sono generalmente sovradimensionati rispetto al corso e pertanto si consiglia di utilizzare principalmente gli appunti presi a lezione. In particolare, sono disponibili su Aulaweb gli appunti del corso presi dallo studente Stefano Sabatini nell'a.a. 2010-11 e controllati dal docente. A puro titolo di consultazione, si può comunque fare riferimento ai libri G.Monegato, Fondamenti di Calcolo Numerico. CLUT, Torino, 1998. D. Bini, M. Capovani, O. Menchi, Metodi Numerici per l' Algebra Lineare. Zanichelli, 1988 R. Bevilacqua, D. Bini, M. Capovani, O. Menchi, Metodi Numerici. Zanichelli, 1992.

Codice insegnamento 61804

Analisi e Progettazione di Algoritmi 2° anno · 6 CFU · INF/01 · 0 file

Apprendere algoritmi e schemi algoritmici classici imparando ad analizzare correttezza ed efficienza di un algoritmo. Apprezzare le potenzialità della randomizzazione nella progettazione di algoritmi attraverso…

Scheda dell'insegnamento

Obiettivi formativi

Apprendere algoritmi e schemi algoritmici classici imparando ad analizzare correttezza ed efficienza di un algoritmo. Apprezzare le potenzialità della randomizzazione nella progettazione di algoritmi attraverso semplici esempi.

Programma

Nella prima parte si illustra come analizzare gli algoritmi dal punto di vista di correttezza ed efficienza e si presentano alcuni algoritmi classici nella formazione di un informatico, assumendo dal corso di Algoritmi e Strutture Dati le nozioni base relative a complessità e strutture dati elementari.
Nella seconda parte si illustra come applicare nozioni fondamentali della teoria della probabilità nell’analisi di algoritmi randomizzati e come valutare i benefici della randomizzazione nella progettazione di algoritmi.

Modalità d'esame

Test a quiz e prova orale.
Il test ha il solo scopo di ammissione alla prova orale: sono ammessi gli studenti che superano una soglia minima di risposte esatte.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa

La prova orale verifica la comprensione dei concetti, la capacità di illustrarli in modo appropriato e di mettere in pratica le tecniche viste a lezione.

Testi di riferimento

Note a cura dei docenti.
Per approfondimenti:
Cormen, Leiserson, Rivest, Stein, 2005, Introduzione agli algoritmi e strutture dati (Seconda edizione), McGraw Hill. (o meglio Terza edizione, in lingua inglese)

Codice insegnamento 80306

Basi di Dati 2° anno · 6 CFU · INF/01 · 0 file

Apprendere come progettare basi di dati, in particolare relazionali, a supporto di applicazioni o adattare basi dati già esistenti alle esigenze di nuovi applicativi che debbano interagire con esse, come esprimere…

Scheda dell'insegnamento

Obiettivi formativi

Apprendere come progettare basi di dati, in particolare relazionali, a supporto di applicazioni o adattare basi dati già esistenti alle esigenze di nuovi applicativi che debbano interagire con esse, come esprimere interrogazioni e modifiche su basi di dati relazionali e acquisire i principi base relativi all’organizzazione interna e all'amministrazione di sistemi di gestione dati, con specifico riferimento alla progettazione dello schema fisico, al monitoraggio delle prestazioni, al controllo dell’accesso e all’esecuzione di transazioni.

Programma

L'insegnamento fonisce conoscenze e competenze su come progettare e utilizzare un base di dati, in termini di modelli dei dati e linguaggi. Solo per la versione 12 CFU, gli studenti impareranno anche i principali concetti relativi all'amministrazione di un sistema di gestione dati e gli approcci allo sviluppo di applicazioni per basi di dati

Modalità d'esame

L’esame consiste delle seguenti prove: (i) Una prova scritta, contenente esercizi relativi agli argomenti affrontati nel corso. (ii) Un progetto, che richiede la progettazione e la realizzazione di una base di dati relazionale.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa

I dettagli sulle modalità di preparazione per l’esame e sul grado di approfondimento di ogni argomento verranno forniti nel corso delle lezioni.
L’esame scritto consiste in

  • un insieme di domande a risposta chiusa su argomenti di base del corso. L'obiettivo di queste domande è quello di accertare la conoscenza e la comprensione delle problematiche principali affrontate durante le lezioni. * un esercizio di progettazione. L'obiettivo di questo esercizio è verificare che lo studente sappia utilizzare i modelli dei dati e applicare la metodologia di progettazione affrontata durante l'erogazione dell'insegnamento. * esercizi di specifica di interrogazioni. L'obiettivo di questi esercizi è verificare che lo studente sappia formulare interrogazioni nei linguaggi (algebra relazionale e SQL) affrontati durante l'erogazione dell'insegnamento.

Testi di riferimento

Barbara Catania, Giovanna Guerrini, Elena Ferrari. Sistemi di Gestione Dati - Concetti e Architetture. CittaStudi Edizioni, Utet Libreria, De Agostini Scuola, 2006.
Barbara Carminati, Anna Maddalena, Marco Mesiti. Sistemi di Gestione Dati - Esercizi. CittaStudi Edizioni, Utet Libreria, De Agostini Scuola, 2008.

Codice insegnamento 25880

Linguaggi di Programmazione 2° anno · 12 CFU · INF/01 · 0 file

Acquisire le nozioni fondamentali relative ai linguaggi di programmazione ad alto livello e una conoscenza approfondita dei paradigmi di programmazione object-oriented e funzionale. Imparare i principi di progettazione e…

Scheda dell'insegnamento

Obiettivi formativi

Acquisire le nozioni fondamentali relative ai linguaggi di programmazione ad alto livello e una conoscenza approfondita dei paradigmi di programmazione object-oriented e funzionale. Imparare i principi di progettazione e implementazione modulare di programmi di piccola e media dimensione per facilitare il riuso e la manutenibilità del codice.

Programma

I linguaggi di programmazione e la programmazione funzionale e object-oriented sono strumenti e concetti alla base dello sviluppo del software.
L'insegnamento fornisce le principali nozioni necessarie alla progettazione, comprensione, utilizzo, e implementazione di un linguaggio di programmazione: sintassi, sematica statica e dinamica, interpreti.
Vengono inoltre approfondite le tecniche e metodologie di programmazione funzionale e object-oriented mediante l'apprendimento dei linguaggi F# e Java.
L'insegnamento permette di applicare i concetti più teorici acquisiti a lezione attraverso diverse esperienze pratiche di laboratorio e lo sviluppo di un progetto finale di medie dimensioni.

Modalità d'esame

Esame scritto, progetto software finale in Java, colloquio individuale sul progetto. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa

Apprendimento e capacità di applicazione dei concetti base della programmazione object-oriented: sviluppo del progetto software finale e corrispondente colloquio individuale; esercizi di comprensione e programmazione in Java da svolgere durante l'esame scritto.
Comprensione, uso e implementazione dei design pattern iterator, decorator e visitor: sviluppo del progetto software finale e corrispondente colloquio individuale; esercizi di programmazione in Java da svolgere durante l'esame scritto.
Apprendimento e applicazione dei concetti base della programmazione funzionale: esercizi di programmazione in F# da svolgere durante l'esame scritto.
Comprensione della specifica di un linguaggio di programmazione e delle problematiche alla base dell'implementazione di interpreti di liguaggi di programmazione: sviluppo del progetto software finale e corrispondente colloquio finale; esercizi su espressioni regolari e grammatiche context free da svolgere durante l'esame scritto.
Capacità di collaborare all'interno di un team di sviluppo software per implementare un progetto di un migliaio di linee di codice; capacità di interazione con gli altri componenti del team e con i docenti: sviluppo del progetto software finale con l'aiuto dello strumento collaborativo GitHub e corrispondente colloquio finale.

Testi di riferimento

Davide Ancona, Giovanni Lagorio, Elena Zucca. Linguaggi di Programmazione. Città Studi Edizioni
Raymond Gallardo, Scott Hommel, Sowmya Kannan, Joni Gordon, Sharon Biocca Zakhour. The Java Tutorial: A Short Course on the Basics (Sixth Edition), Oracle (limitatamente alla versione 8 di Java)
Documentazione e riferimenti a libri su F# sono disponibili sul sito Web 'Learning F#'
Joshua Bloch. Effective Java (third edition). Addison-Wesley Professional (approfondimento)
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. (approfondimento)

Codice insegnamento 61799

Sistemi di Elaborazione e Trasmissione dell’Informazione 2° anno · 12 CFU · INF/01 · 0 file

Apprendere i principi e le metodologie alla base degli attuali sistemi operativi e reti di calcolatori.

Scheda dell'insegnamento

Obiettivi formativi

Apprendere i principi e le metodologie alla base degli attuali sistemi operativi e reti di calcolatori.

Programma

Lo scopo di questo corso è in primo luogo imparare come funzionano i sistemi operativi e come amministrarli e interagire con essi, e in secondo luogo esaminare i meccanismi utilizzati per creare reti di calcolatori che comunicano tra loro e imparare a sfruttarle tramite la programmazione.
L'insegnamento ha una parte di teoria in classe e una serie di laboratori.

Modalità d'esame

L'esame consiste in un quiz, in una prova scritta e in un progetto di programmazione da presentare durante un orale. Per poter sostenere la prova scritta è necessario avere superato il quiz. Per poter discutere il progetto è necessario aver superato la prova scritta.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa

La prova scritta verifica la conoscenza delle principali nozioni teoriche presentate a lezione e la capacità dello studente di applicarle agli esercizi proposti. Il progetto approfondisce la verifica che lo studente sia in grado di metterli in pratica tramite la programmazione.

Testi di riferimento

Lucidi e note del docente messe a disposizione su Aulaweb
Materiale online
Operating system concepts – Abraham Silberschatz, Peter Baer Galvin, Greg Gagne
Operating Systems: Three Easy Pieces -- Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (https://ostep.org)
Reti di calcolatori - Tanenbaum, Wetherall
https://beej.us/guide/

Codice insegnamento 80300

Teoria dell’Informazione e Inferenza 2° anno · 6 CFU · INF/01 · 0 file

Imparare a estrarre informazione e inferire conoscenza da dati mediante l'applicazione di concetti e tecniche di base della teoria della probabilità e della statistica

Scheda dell'insegnamento

Obiettivi formativi

Imparare a estrarre informazione e inferire conoscenza da dati mediante l'applicazione di concetti e tecniche di base della teoria della probabilità e della statistica

Programma

Il corso introduce i concetti e risultati fondamentali della teoria della probabilità’ per poi applicarli nell’ambito della teoria dell’informazione e in inferenza statistica.

Modalità d'esame

L'esame consiste di una prova scritta e di una prova facoltativa orale nel caso si volesse migliorare il voto dello scritto. Durtante il corso saranno assegnati alcuni esercizi da svolgere a casa sulla falsariga delle prove d'esame.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa

La prova scritta verifica la capacità dello studente di mettere in pratica le nozioni viste a lezione risolvendo esercizi analoghi a quelli affrontati durante il corso.

Testi di riferimento

Note a cura del docente.

Codice insegnamento 80249

Calculus 2 3° anno · 0 file
Computer Security 3° anno · 0 file
Fondamenti di Computazione Quantistica 3° anno · 0 file
Fondamenti di Ingegneria del Software 3° anno · 0 file
Programmazione Concorrete e Algoritmi Distribuiti 3° anno · 0 file
Prova Finale 3° anno · 0 file
Sviluppo di Applicazioni Web 3° anno · 0 file
Teoria Elementare degli Insiemi 3° anno · 0 file
Teoria degli Automi e Calcolabilità 3° anno · 0 file
ELEMENTI DI CULTURA AZIENDALE, PROFESSIONALE, SOCIALE E GIURIDICA 3 CFU · 0 file

Impadronirsi dei rudimenti di cultura aziendale, professionale, sociale e giuridica necessari per inserirsi nel mondo del lavoro in ambito informatico.

Scheda dell'insegnamento

Obiettivi formativi

Impadronirsi dei rudimenti di cultura aziendale, professionale, sociale e giuridica necessari per inserirsi nel mondo del lavoro in ambito informatico.

Programma

L’attività permette agli studenti di acquisire elementi di cultura aziendale, professionale, sociale e giuridica, utili per l’inserimento nel mondo del lavoro, anche tenendo in considerazione gli interessi individuali.

Modalità d'esame

Gli studenti che hanno frequentato almeno 14 ore di lezione, potranno presentare nel mese di maggio 2025 un progetto su uno degli argomenti trattati durante il corso. Il lavoro dovrà essere sviluppato da gruppi di tre/quattro persone.
Prima di ciascun appello e/o delle date concordate per la presentazione dei progetti, gli studenti dovranno fornire la certificazione attestante la loro partecipazione ad un modulo di lezione online, i cui dettagli verranno forniti su Aulaweb..
Gli studenti non frequentanti dovranno superare, nelle date stabilite in concomitanza alle sessioni, un test a risposta multipla di 10 domande. L'esame si intenderà superato rispondendo esattamente a almeno 8 domande su 10.
Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa

Le lezioni del modulo online e lo sviluppo del progetto permetteranno di approfondire le conoscenze in ambito di cultura aziendale, professionale, sociale e giuridica.
Lo sviluppo del progetto permetterà inoltre di migliorare le capacità di comunicazione suun tema specifico relativo a un settore diverso dall’informatica

Testi di riferimento

I materiali saranno messi a disposizione su AulaWeb

Codice insegnamento 98390

LINGUA INGLESE 2 3 CFU · ANGL-01/C · 0 file

Scopo dell'insegnamento è che gli studenti sviluppino abilità di lettura e ascolto a livello B2 del Quadro Comune Europeo di Riferimento per la conoscenza delle Lingue (QCER), con particolare riferimento agli studenti…

Scheda dell'insegnamento

Obiettivi formativi

Scopo dell'insegnamento è che gli studenti sviluppino abilità di lettura e ascolto a livello B2 del Quadro Comune Europeo di Riferimento per la conoscenza delle Lingue (QCER), con particolare riferimento agli studenti del curriculum Propedeutico, al fine di consentire il soddisfacimento del requisito di accesso alla Laurea Magistrale in Computer Science.

Programma

L'insegnamento di inglese B2 è finalizzato all'apprendimento e alla revisione delle strutture grammaticali e lessicali del livello B2 del Quadro Comune Europeo di Riferimento per le Lingue (QCER)*. Il corso di inglese B2 è un corso online e si può accedere al seguente URL https://clim.aulaweb.unige.it/. Studentesse e studenti verranno iscritte/i al corso online all'inizio semestre della didattica del 1° anno (settembre 2026). Sono previste lezioni (36 ore) in presenza con docente che guiderà al completamento del corso online di Lingua Inglese B2 fornendo supporto sulle strutture morfosintattiche previste dal livello e in previsione della prova finale mirate a prendere familiarità con le attività, le tempistiche e il formato dell'esame stesso.
*Il Quadro comune europeo di riferimento per la conoscenza delle lingue (QCER) descrive ciò che un allievo dovrebbe essere in grado di fare in una lingua straniera.

Modalità d'esame

Considerato il percorso educativo descritto in "Prerequisiti" (13 anni di scuola in Italia, significa aver fatto inglese per 13 anni), il corso online "English B2" propone un'attività in autoapprendimento volta a un ripasso di strutture morfo-sintattiche (grammatica e sintassi) e lessicali (vocabolario) di livello inglese B2 già incontrate in precedenza e intese a offrire una preparazione mirata a sostenere il test a computer di lingua inglese B2.
L'esame è strutturato* come segue:
1 Cloze test con 15 buchi a scelta multipla – un unico testo con 15 buchi (per ciascun buco 4 opzioni da cui sceglierne una); punti totali: 10,00;
4 Cloze a scelta multipla di grammatica – 4 frasi diverse (ciascuna con 1 buco e 4 opzioni, 1 sola scelta); punti 1,00 per frase, punti totali: 4,00;
4 Cloze a scelta multipla di vocabolario – 4 frasi diverse (ciascuna con 1 buco e 4 opzioni, 1 sola scelta); punti 1,00 per frase, punti totali: 4,00;
3 Attività di Sentence transformation – 3 frasi diverse da parafrasare (ciascuna con 1 buco e 1 parola data da includere nella nuova frase); punti per frase 2,00, punti totali: 6,00;
3 Attività di Word formation – 3 frasi in cui inserire una parola da formare a partire da una parola data (ciascuna con 1 buco); punti per frase 1,00, punti totali: 3,00
1 Reading a scelta multipla – per ciascun Reading una domanda, 4 opzioni, una sola scelta; punti 1,00 per frase, punti totali: 1,00;
2 Listening a scelta multipla – 2 registrazioni da ascoltare, ciascuna con una domanda a cui rispondere, scegliendo tra tre opzioni (una sola scelta); punti totali: 2,00.
Tempo a disposizione: 25 minuti.
*La prova può subire alcune modifiche alla struttura presentata qui sopra e rispetto al tempo a disposizione.

L'esame di inglese B2 su PC verifica le competenze e le abilità linguistiche al livello B2.
Gli esercizi sono di tipologia simile a quelli proposti per la pratica nell'ultima sezione denominata “Exam practice” del corso online.
Il punteggio minimo è pari al 60% di risposte corrette, ovvero 18 punti su 30.
Se il/la docente lo richiede, dopo l'esame può essere previsto un esame orale. Se necessario, studentesse e studenti saranno informati tempestivamente o via e-mail.

Testi di riferimento

Corso in rete in autoapprendimento all'indirizzo https://clim.aulaweb.unige.it
Altri strumenti utili:
si consiglia di sfruttare le risorse in rete e leggere, ascoltare, guardare contenuti in lingua di proprio interesse (magari attivando i sottotitoli in inglese - NON in italiano). Esporsi alla lingua anche guardando serie TV o Film è un'ottimo modo per sviluppare tutte le competenze non produttive (reading, listening and use of English).
testo sulla grammatica: si consiglia "English Grammar in Use" (Upper-Intermediate) di Raymond Murphy (Cambridge University Press)
attività e approfondimenti utili su lessico e grammatica a libero accesso sul sito del British Council, il livello che interessa è "Upper-Intermediate English" su Learn English
attività e approfondimenti utili su lessico e grammatica a libero accesso sul sito della BBC, la TV del Regno Unito, il livello che interessa è "Intermediate English" su BBC - Learning English
dizionari online. C'è una risorsa molto interessante ovvero un motore di ricerca che raccoglie le voci da tutti i principali dizionari di lingua inglese online. Si chiama OneLook ed è una "dictionary directory", per cui cercando una parola verrà proposto di verificarne il significato consultando uno dei dizionari online, tra cui Oxford, Cambridge, Collins, MacMillan. Consiglio di utilizzare Cambridge Advanced Learner's Dictionary, ma anche di confrontare le definizioni di altri dizionari, a volte infatti una parola può avere più significati a seconda del contesto o della collocazione – ovvero a quali altre parole è affiancata. Tutti questi dizionari sono monolingue (English to English) e offrono anche un audio per la pronuncia.

Codice insegnamento 121663

Recensioni del corso

Studi qui? Accedi per lasciare la tua recensione e aiutare altri studenti a scegliere.

★

Nessuna recensione per ora — e la prima è la più preziosa. Condividi la tua esperienza e orienta le future matricole.