Tags:
tag this topic
create new tag
view all tags
---++ <font color=#006400 size="+3">Modalita' di Esame A.A. 2019/2020 e 2020/21</font> L'esame consiste in un colloquio orale su C++, Haskell ed eventuali confronti fra linguaggi di programmazione.<br> Lo studente inoltre è invitato a risolvere alcuni homework scelti tra i seguenti, da discutere in sede d'esame.<br> *Programmi in C++* <blockquote> <b>1.</b> (*side effects*) Scrivere l'algoritmo di ordinamento _select Sort_ in modo che dia risultati corretti con una corretta funzione ==scambia==,<br> ma azzeri tutto il vettore usando la funzione ==scambia3== nella dispensa *D2*, Fig. *8* di Informatica Generale. <b>2.</b> Partendo dai razionali visti a lezione, programmare i razionali immutabili.<br> <b>3.</b> Nell'esempio di punti e punti colorati, verificare cosa accade eliminando il ==virtual== dalla definizione del metodo move.<br> <b>3.</b> Scrivere l'iteratore costante sugli Stack.<br> <b>4.</b> Reimplementare gli Stack usando un Vector come struttura dati.<br> <b>5.</b> Scrivere una classe per definire il template degli alberi binari: chi sono i possibili iteratori? Implementarne uno.<br> <b>6.</b> (potenzialmente *laborioso*) Provare ad aggiungere un pezzo eterodosso all'applicazione degli Scacchi: <br> ad esempio l'_arcivescovo_ (che ha il movimento combinato di alfiere e cavallo) <br> o il _cancelliere_ (che ha il movimento combinato di cavallo e torre).<br> </blockquote> *Programmi in Haskell* <blockquote> <b>1.</b> Lambda calcolo: se N, M sono numerali di Church, che funzioni sono N (+1) 0 e N succ M, dove succ è il termine che fa il successore.<br> <b>2.</b> Scrivere mergesort in Haskell.<br> <b>3.</b> Scrivere una funzione Haskell che presa una lista, genera la lista delle sottoliste di cardinalità _k_.<br> <b>4.</b> Scrivere una funzione Haskell che data una lista L calcola la lista di liste che contiene i prefissi di L.<br> <b>5.</b> Scrivere il funzionale map senza decomporre liste, ma usando il funzionale foldr. <br> Argomentare sul perché il contrario non si può fare.<br> <b>6.</b> Scrivere una funzione Haskell che genera lo stream delle righe del triangolo di tartaglia.<br> <b>7.</b> Il programma nella slide *10* lezione *8* calcola i primi come sfondo degli Hammings, partendo dal programma nella slide *9* .<br> Provare a fare lo stesso con il programma nella slide *5*. In questo caso si otterrebbe un crivello di Eratostene. Perché?<br> <b>8.</b> Scrivere una funzione Haskell che genera tutte le sottoliste finite di uno stream in modo che ogni sotto-lista finita appaia dopo un numero finito di passi.<br> </blockquote> Programmi in Haskell ---++ <font color=#006400 size="+3">Modalita' di Esame A.A. 2016/2017 e 2017/18</font> L'esame consiste nella discussione orale di 1 progettino riguardante il gioco degli Scacchi.<br> Quest'anno sarà sufficiente apportare modifiche al codice fornito dal docente, nella pagina dei Materiali Didattici.<br> Ogni studente, o gruppo, può scegliere 1 o più delle seguenti opzioni: * implementare le *mosse speciali* (arrocco, en-passant e promozione). Queste mosse non rispettano le usuali regole degli scacchi: nell' *arrocco* si muovono due pezzi ed è possibile solo a condizione che re e torre non si siano mai stati mossi prima. L'arrocco può essere denotato come tutte le altre mosse con lo spostamento del Re (=e1g1=, =e1c1= per il bianco). Nella presa *en-passant* il pezzo preso non si trova nella casella d'arrivo del pezzo mosso. Nella *promozione* scompare un pedone e appare un nuovo pezzo. Questa può essere denotata dalla mossa di pedone seguita dalla lettera che identifica il nuovo pezzo (ad esempio: c7c8D, indica la promozione a donna di un pedone bianco che raggiunge l'ottava traversa). Queste mosse comportano due problemi: la classe =Scacchiera= non è sufficiente informazione per stabilirne la correttezza, ma è necessaria la <i>storia</i> della partita. Inoltre, ritirare le mosse necessita di ulteriore informazione. Quindi metodi come =puoiMuovere= o =allMoves= dovrebbero ricevere in input ad esempio un oggetto =Posizione= che estende =Scacchiera= con l'informazione necessaria (al momento memorizzata nella classe =Partita=). La classe =Move= va estesa. * implementare pezzi eterodossi, come il [[https://it.wikipedia.org/wiki/Nottambulo_(scacchi)][Nottambulo]], il [[https://it.wikipedia.org/wiki/Grillo_(scacchi)][Grillo]] o i più prosaici Araldo (che combina il movimento di alfiere e cavallo), Cancelliere (che combina il movimento di Torre e Cavallo). * scrivere una funzione che risolve [[https://it.wikipedia.org/wiki/Problema_di_scacchi][Matti in due o tre mosse]]. Ricordo che ciò significa che *esiste* una mossa del bianco per cui, *per ogni* mossa del nero, il bianco può dare matto alla seconda mossa (analogamente si definiscono i problemi di 3 o più mosse). Potete considerare problemi senza mosse speciali, se non le avete implementate. Trovate un buon numero di esempi su cui sperimentare nei seguenti documenti: [[%ATTACHURL%/mate2moves.pdf][matti in due mosse]] e [[%ATTACHURL%/mate2moves-2.pdf][altri matti in due mosse]]. Potete leggere la posizione iniziale con una [[https://it.wikipedia.org/wiki/Notazione_Forsyth-Edwards][FEN]] (nel progetto c'è un costruttore di =Partita= che inizializza la partita usando una stringa FEN). * implementare il gioco della [[https://it.wikipedia.org/wiki/Quadriglia_(scacchi)][Quadriglia]]. Qui occorre far partire due partite, sincronizzate dai pezzi presi da ciascun giocatore e che possono essere usati dal suo compagno. ---++ <font color=#006400 size="+3">Modalita' di Esame A.A. 2015/2016</font> L'esame consiste nella discussione orale di 1 progettino riguardante il gioco degli Scacchi.<br> Il testo del progetto, ampiamente discusso a lezione, e' pubblicato qui sotto.<br> * Progetto 2015-2016: [[%ATTACHURL%/progetto.pdf][Scacchi in C++]] ---++ <font color=#006400 size="+3">Modalita' di Esame A.A. 2014/2015</font> L'esame consiste nella discussione orale di 3 homework dati durante il corso.<br> I testi degli homework verranno pubblicati in questa pagina.<br> * Homework 1: [[%ATTACHURL%/hw1.polinomi.pdf][Polinomi in C++]] * Homework 2: [[%ATTACHURL%/hw2.macchinaDistributrice.pdf][Macchina Distributrice]] * Homework 3: [[%ATTACHURL%/hw2.templateSet.pdf][Insiemi Generici]] -- Users.IvanoSalvo - 30 Sep 2014
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r11
<
r10
<
r9
<
r8
<
r7
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r11 - 2020-12-01
-
IvanoSalvo
Log In
or
Register
LDPMat Web
Create New Topic
Index
Search
Changes
Notifications
Statistics
Preferences
Prenotazioni esami
Laurea Triennale ...
Laurea Triennale
Algebra
Algoritmi
Introduzione agli algoritmi
Algoritmi 1
Algoritmi 2
Algoritmi per la
visualizzazione
Architetture
Prog. sist. digitali
Architetture 2
Basi di Dati
Basi di Dati 1 Inf.
Basi di Dati 1 T.I.
Basi di Dati (I modulo, A-L)
Basi di Dati (I modulo, M-Z)
Basi di Dati 2
Calcolo
Calcolo differenziale
Calcolo integrale
Calcolo delle Probabilitą
Metodi mat. per l'inf. (ex. Logica)
canale AD
canale PZ
Programmazione
Fond. di Programmazione
Metodologie di Programmazione
Prog. di sistemi multicore
Programmazione 2
AD
EO
PZ
Esercitazioni Prog. 2
Lab. Prog. AD
Lab. Prog. EO
Lab. Prog. 2
Prog. a Oggetti
Reti
Arch. di internet
Lab. di prog. di rete
Programmazione Web
Reti di elaboratori
Sistemi operativi
Sistemi Operativi (12 CFU)
Anni precedenti
Sistemi operativi 1
Sistemi operativi 2
Lab. SO 1
Lab. SO 2
Altri corsi
Automi, Calcolabilitą
e Complessitą
Apprendimento Automatico
Economia Aziendale
Elaborazione Immagini
Fisica 2
Grafica 3D
Informatica Giuridica
Laboratorio di Sistemi Interattivi
Linguaggi di Programmazione 3° anno Matematica
Linguaggi e Compilatori
Sistemi Informativi
Tecniche di Sicurezza dei Sistemi
ACSAI ...
ACSAI
Computer Architectures 1
Programming
Laurea Magistrale ...
Laurea Magistrale
Percorsi di studio
Corsi
Algoritmi Avanzati
Algoritmica
Algoritmi e Strutture Dati
Algoritmi per le reti
Architetture degli elaboratori 3
Architetture avanzate e parallele
Autonomous Networking
Big Data Computing
Business Intelligence
Calcolo Intensivo
Complessitą
Computer Systems and Programming
Concurrent Systems
Crittografia
Elaborazione del Linguaggio Naturale
Estrazione inf. dal web
Fisica 3
Gamification Lab
Information Systems
Ingegneria degli Algoritmi
Interazione Multi Modale
Metodi Formali per il Software
Methods in Computer Science Education: Analysis
Methods in Computer Science Education: Design
Prestazioni dei Sistemi di Rete
Prog. avanzata
Internet of Things
Sistemi Centrali
Reti Wireless
Sistemi Biometrici
Sistemi Distribuiti
Sistemi Informativi Geografici
Sistemi operativi 3
Tecniche di Sicurezza basate sui Linguaggi
Teoria della
Dimostrazione
Verifica del software
Visione artificiale
Attivitą complementari
Biologia Computazionale
Design and development of embedded systems for the Internet of Things
Lego Lab
Logic Programming
Pietre miliari della scienza
Prog. di processori multicore
Sistemi per l'interazione locale e remota
Laboratorio di Cyber-Security
Verifica e Validazione di Software Embedded
Altri Webs ...
Altri Webs
Dottorandi
Commissioni
Comm. Didattica
Comm. Didattica_r
Comm. Dottorato
Comm. Erasmus
Comm. Finanziamenti
Comm. Scientifica
Comm Scientifica_r
Corsi esterni
Sistemi Operativi (Matematica)
Perl e Bioperl
ECDL
Fondamenti 1
(NETTUNO)
Tecniche della Programmazione 1° modulo
(NETTUNO)
Seminars in Artificial Intelligence and Robotics: Natural Language Processing
Informatica generale
Primo canale
Secondo canale
II canale A.A. 10-11
Informatica
Informatica per Statistica
Laboratorio di Strumentazione Elettronica e Informatica
Progetti
Nemo
Quis
Remus
TWiki ...
TWiki
Tutto su TWiki
Users
Main
Sandbox
Home
Site map
AA web
AAP web
ACSAI web
AA2021 web
Programming web
AA2021 web
AN web
ASD web
Algebra web
AL web
AA1112 web
AA1213 web
AA1920 web
AA2021 web
MZ web
AA1112 web
AA1213 web
AA1112 web
AA1314 web
AA1415 web
AA1516 web
AA1617 web
AA1819 web
Old web
Algo_par_dis web
Algoreti web
More...
LDPMat Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Questo sito usa cookies, usandolo ne accettate la presenza. (
CookiePolicy
)
Torna al
Dipartimento di Informatica
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback