Esempi in Scheme - a.a. 2002-03

 

I periodo didattico

Semplici procedure in Scheme per valutare espressioni
Semplici procedure ricorsive in Scheme
Semplici procedure ricorsive in Scheme: seguito
Ricorsione di coda
Ricorsioni più complesse
Ricorsioni più complesse: seguito
Parametri e valori procedurali

II periodo didattico

Astrazione sui dati
Dati di dimensione variabile: liste
Altri esempi di utilizzo di liste
Altri esempi di utilizzo di liste: seguito
Alberi binari e alberi di valutazione di espressioni
Strutture dati più articolate: problema delle n regine

III periodo didattico

Concetto di stato e paradigma imperativo: stack
Concetto di stato e paradigma imperativo: problema delle n regine
Concetto di stato e paradigma imperativo: tecnica di memoization e matrici

Esempi proposti nei precedenti anni accademici

Modello funzionale di un programma imperativo
Diversa versione imperativa relativa al problema delle n regine (bad_queens.scm):
programma da correggere per esercizio
Concetto di stato e paradigma imperativo: code (queues.scm)
Concetto di stato e paradigma imperativo:
memoization e programmazione dinamica (manhattan.scm)

Esempi in Java - a.a. 2002-03 (III periodo didattico)

Traduzione in Java dei programmi in Scheme per il calcolo dei numeri di Fibonacci e dei percorsi di Manhattan, anche applicando la tecnica di memoization (Memoization)
Esempi introduttivi: percorsi di Manhattan attraverso la programmazione dinamica, coefficienti binomiali e crivello di Eratostene (Miscellaneous)
Sottosequenza comune più lunga e applicazione della tecnica di memoization: oggetti di tipo String, passaggio dei parametri via linea di comando (LongestCommonSubseq)
Sottosequenza comune più: rappresentazione più efficiente ed astratta delle strutture dati (LCS)
Esempi di oggetti e metodi non statici in Java:
"parola binaria" (BinWord)
Esempi di oggetti e metodi non statici in Java:
diversa realizzazione di "BinWord"
Esempi di oggetti e metodi non statici in Java:
programma principale (Main)
Esempi di oggetti - Rompicapo del quindici e generalizzazione:
modello Logico del gioco (Board)
Esempi di oggetti - Rompicapo del quindici e generalizzazione:
programma per l'interazione con l'utente (Puzzle)

per questo esempio serve il package console.jar
Esempi di oggetti - Problema di Giuseppe Flavio:
"tavola rotonda" (RoundTable)
Esempi di oggetti - Problema di Giuseppe Flavio:
diversa realizzazione di "RoundTable"
Esempi di oggetti - Problema di Giuseppe Flavio:
programma principale (Main)
Esempi di oggetti - Alberi binari:
realizzazione (BinTree)
Esempi di oggetti - Alberi binari:
esempio di applicazione (Main)
Gioco del "giro del cavallo" (esercizio):
rappresentazione della scacchiera (Board)
Gioco del "giro del cavallo" (esercizio):
programma principale (KnightTour)

Esempi presentati nei precedenti anni accademici

Problema delle N regine: scacchiera (board)
Problema delle N regine: ricerca delle soluzioni (queens)
Ricerca Binaria (Binary_Search)
Schema di ordinamento per selezione (Selection_Sort)
Valutazione di un polinomio (Horner_Ruffini)
Crivello di Eratostene (Eratostene2)
Code (IntQueue)
Code: realizzazione alternativa (IntQueue1)
Tavola rotonda: base del gioco di Giuseppe Flavio (RoundTable)
Gioco di Giuseppe Flavio (GiuseppeFlavio)
Base del gioco del Nim (Pile)
Codice relativo al gioco del "Mancala" (MancalaGame)