View Full Version : Consiglio tesina diploma Informatica
Anche se manca parecchio, vorrei cominciare a pensare alla tesina da portare all'esame di stato dell'ITIS spec. Informatica.
Mi piacerebbe fare qualcosa di particolare che non viene spesso trattato, ma non so da dove cominciare. Ovviamente deve essere un mini-progetto, e può comprendere sia un componente elettronico con relativo programma per pc, che semplicemente un programma.
Gli argomenti chiave del 5° anno sono le Reti, i Database (applicazioni client-server in C# e SQL ecc), in Elettronica quadripoli, filtri ecc. Non rifiuto altri linguaggi di programmazione quali C++, C..
Ho bisogno di idee dalle quali poter partire, anche le più strane o complicate.
Grazie mille a tutti
EDIT: aggiungo anche che sono appassionato di hardware, probabilmente sarà inutile ma non si sa mai.
wizard1993
25-12-2011, 21:14
Dalle mie parti è gettonato l'Arduino, da usare come base per robot vari. Non so se da te è diffuso.
Altrimenti non disdegnare la sistemistica, che tante volte nasconde tanti progettini interessanti da realizzare (vedi un pannello di controllo web che interagisca con il database di un sistema di posta basato su postfix+dovecot+mysql)
Non lo conoscevo Arduino, e devo dire che è molto interessante. Ma non l'abbiamo mai usato e non saprei come collegarlo all'argomento Database per esempio..
wizard1993
26-12-2011, 13:06
Non lo conoscevo Arduino, e devo dire che è molto interessante. Ma non l'abbiamo mai usato e non saprei come collegarlo all'argomento Database per esempio..
a mio avviso pretendere di infilarci tutti gli argomenti (pur limitandoci ai maggiori) coperti dal programma è decisamente troppo. Dipende un po' anche cosa ne pensano i tuoi insegnanti
Le possibilità sono infinite, dipende tutto da ciò che hai a disposizione.
Per quanto riguarda DB e web, beh... devi solo inventarti un contesto, ma forse è un po' banale. Quando ho dato la maturità, la seconda prova è stata proprio la progettazione di un database con scrittura di qualche funzione php per controllarlo; fare una tesina su un db rischia di essere troppo banale.
Se non vuoi ricadere in una trattazione teorica (io feci una trattazione sui sistemi di sicurezza informatica nelle reti aziendali) e rimanere nel pratico, penso che l'abbinazione con elettronica e segnali sia buona.
Se avessi a disposizione un DSP o un microcontrollore potresti sbizzarrirti con mille e più menate. Una cosa che però molti al giorno d'oggi usano quotidianamente senza rendersi conto di avere fra le mani praticamente un computer è lo smartphone. Lo smartphone lo puoi usare in moltissimi modi diversi: DSP (Digital Signal Processor), calcolatore, browser... e ci puoi anche programmare con facilità.
Tutto questo discorso per dire che una idea potrebbe essere quella di creare una app per smartphone. Se conosci il java, senza troppa fatica puoi studiarti un pò android trattandolo nella parte teorica della tua tesina e poi buttarci dentro una applicazione più o meno semplice.
Se sei uno sfegatato amante di apple forse hai qualche difficoltà in più perchè devi impararti un linguaggio particolare come l'objective-C e dannarti l'anima per programmarci (devi pagare per farlo se non erro...).
Se non conosci java (alcuni itis fanno rudimenti di C++ anzichè java in 4° superiore), puoi anche considerare C# se hai uno smartphone windows phone.
Un esempio pratico (un po' laborioso ma molto carino) che unisce Matematica (trasformate di Fuorier), Telecomunicazioni (Campionamento, filtri digitali), Informatica (Programmazione) : un accordatore cromatico per smartphone. Se suoni uno strumento musicale non serve che ti spieghi cos'è, in caso contrario, a farla semplice, un accordatore altro non è che uno strumento che riceve in ingresso un suono e rileva la prima armonica che lo compone.
In altre parole, ti indica la frequenza sonora dominante che compone il suono e quindi la nota corrispondente.
Non è un progetto semplice, è laborioso per uno studente di 5° superiore e tutto sommato, la sola trattazione teorica sarebbe sufficiente per una tesina.
A livello pratico si tratta di:
- Leggere dallo stream input audio del dispositivo (non necessariamente uno smartphone!) i campioni audio già quantizzati e campionati alla frequenza e bit-per-sample che decidi.
- Eseguire una FFT (Fast Fuorier Transformation) sui campioni. Altro non è che un algoritmo ottimizzato per la trasformata di fourier discreta (in internet trovi classi e funzioni già pronte in qualsiasi linguaggio).
- Trovi le ampiezze delle varie componenti sinosoidali del segnale e determini la maggiore che sarà la prima armonica.
Una variante più generica (e meno legata alla musica) del progetto è uno spettrogramma: al posto di trovare l'ampiezza maggiore, disegni un grafico che contiene tutte le ampiezze delle componenti sinusoidali del segnale.
Ripeto, è un progetto ambizioso per una tesina delle superiori, puoi comunque valutare l'idea di programmare per smartphone qualsiasi cosa più semplice, potrebbe essere originale.
Le possibilità sono infinite, dipende tutto da ciò che hai a disposizione.
Per quanto riguarda DB e web, beh... devi solo inventarti un contesto, ma forse è un po' banale. Quando ho dato la maturità, la seconda prova è stata proprio la progettazione di un database con scrittura di qualche funzione php per controllarlo; fare una tesina su un db rischia di essere troppo banale.
Se non vuoi ricadere in una trattazione teorica (io feci una trattazione sui sistemi di sicurezza informatica nelle reti aziendali) e rimanere nel pratico, penso che l'abbinazione con elettronica e segnali sia buona.
Se avessi a disposizione un DSP o un microcontrollore potresti sbizzarrirti con mille e più menate. Una cosa che però molti al giorno d'oggi usano quotidianamente senza rendersi conto di avere fra le mani praticamente un computer è lo smartphone. Lo smartphone lo puoi usare in moltissimi modi diversi: DSP (Digital Signal Processor), calcolatore, browser... e ci puoi anche programmare con facilità.
Tutto questo discorso per dire che una idea potrebbe essere quella di creare una app per smartphone. Se conosci il java, senza troppa fatica puoi studiarti un pò android trattandolo nella parte teorica della tua tesina e poi buttarci dentro una applicazione più o meno semplice.
Se sei uno sfegatato amante di apple forse hai qualche difficoltà in più perchè devi impararti un linguaggio particolare come l'objective-C e dannarti l'anima per programmarci (devi pagare per farlo se non erro...).
Se non conosci java (alcuni itis fanno rudimenti di C++ anzichè java in 4° superiore), puoi anche considerare C# se hai uno smartphone windows phone.
Un esempio pratico (un po' laborioso ma molto carino) che unisce Matematica (trasformate di Fuorier), Telecomunicazioni (Campionamento, filtri digitali), Informatica (Programmazione) : un accordatore cromatico per smartphone. Se suoni uno strumento musicale non serve che ti spieghi cos'è, in caso contrario, a farla semplice, un accordatore altro non è che uno strumento che riceve in ingresso un suono e rileva la prima armonica che lo compone.
In altre parole, ti indica la frequenza sonora dominante che compone il suono e quindi la nota corrispondente.
Non è un progetto semplice, è laborioso per uno studente di 5° superiore e tutto sommato, la sola trattazione teorica sarebbe sufficiente per una tesina.
A livello pratico si tratta di:
- Leggere dallo stream input audio del dispositivo (non necessariamente uno smartphone!) i campioni audio già quantizzati e campionati alla frequenza e bit-per-sample che decidi.
- Eseguire una FFT (Fast Fuorier Transformation) sui campioni. Altro non è che un algoritmo ottimizzato per la trasformata di fourier discreta (in internet trovi classi e funzioni già pronte in qualsiasi linguaggio).
- Trovi le ampiezze delle varie componenti sinosoidali del segnale e determini la maggiore che sarà la prima armonica.
Una variante più generica (e meno legata alla musica) del progetto è uno spettrogramma: al posto di trovare l'ampiezza maggiore, disegni un grafico che contiene tutte le ampiezze delle componenti sinusoidali del segnale.
Ripeto, è un progetto ambizioso per una tesina delle superiori, puoi comunque valutare l'idea di programmare per smartphone qualsiasi cosa più semplice, potrebbe essere originale.
Ti ringrazio per la pazienza, sei stato veramente molto gentile. L'idea di creare un app per Android non è male, mi era già venuta in mente, e devo dire che l'accordatore è veramente geniale. Mi permetterebbe di legare molte materie, ma non riuscirei a inserirci i Database, a meno che non faccia il programma per pc, in questo caso potrei in qualche modo "salvare" il risultato del programma in un DB (anche se in realtà il programma non darebbe un vero e proprio risultato ma solo la nota corrispondente)
EDIT: mi è venuta in mente una cosa. Premetto che il Java non lo conosco (anche se mi piacerebbe impararlo) e avrei difficoltà, se l'app la facessi per pc, e in parallelo mi creassi un DB con salvate tutte le note (con le loro relative frequenze, spettri ecc.) in modo che il programma una volta ricevuto in input il suono e rilevata frequenza mi andasse a cercare a quale nota corrisponde nel DB? Potrei anche pensare di farlo più complicato e salvarmi invece delle sole note, dei veri e propri accordi o strofe di canzoni (ma in questo caso dovrei salvare nel DB quantomeno un pò di canzoni con tutti i relativi accordi) e una volta ricevuto il segnale in ingresso mi verifica se il pezzo di una canzone conosciuta. Per evitare delle ricerche inutili nel DB causate da una sola nota in ingresso, potrei mettere un limite minimo di note o accordi in successione (per poter avere almeno un piccolo "motivetto" da ricercare nel DB).
Sto fantasticando, ma cerco di buttare giù quello che mi viene
Ti ringrazio per la pazienza, sei stato veramente molto gentile. L'idea di creare un app per Android non è male, mi era già venuta in mente, e devo dire che l'accordatore è veramente geniale. Mi permetterebbe di legare molte materie, ma non riuscirei a inserirci i Database, a meno che non faccia il programma per pc, in questo caso potrei in qualche modo "salvare" il risultato del programma in un DB (anche se in realtà il programma non darebbe un vero e proprio risultato ma solo la nota corrispondente)
EDIT: mi è venuta in mente una cosa. Premetto che il Java non lo conosco (anche se mi piacerebbe impararlo) e avrei difficoltà, se l'app la facessi per pc, e in parallelo mi creassi un DB con salvate tutte le note (con le loro relative frequenze, spettri ecc.) in modo che il programma una volta ricevuto in input il suono e rilevata frequenza mi andasse a cercare a quale nota corrisponde nel DB? Potrei anche pensare di farlo più complicato e salvarmi invece delle sole note, dei veri e propri accordi o strofe di canzoni (ma in questo caso dovrei salvare nel DB quantomeno un pò di canzoni con tutti i relativi accordi) e una volta ricevuto il segnale in ingresso mi verifica se il pezzo di una canzone conosciuta. Per evitare delle ricerche inutili nel DB causate da una sola nota in ingresso, potrei mettere un limite minimo di note o accordi in successione (per poter avere almeno un piccolo "motivetto" da ricercare nel DB).
Sto fantasticando, ma cerco di buttare giù quello che mi viene
Potresti anche usare un DB per memorizzare le note, ma dal punto di vista teorico sarebbe inutile. Una volta che fissi la frequenza di una nota (tipicamente si fissa il "La centrale" sui 440Hz), le frequenze delle altre note le ricavi matematicamente con la formula 440*2(n/12), dove n è il numero di semitoni di differenza.
Per esempio, Sol# = 440*2^(-1/12); La# = 440*2^(1/12); Si = 440*2^(2/12);
Per quanto riguarda gli accordi, ti conviene lasciar stare. Gli accordi sono più note suonate insieme con un preciso criterio, è difficile riconoscerle su un singolo strumento, in una canzone è moooolto difficile. Alcuni software che (affermano) di farlo, costano diverse decine di euro e poi non lo fanno nemmeno molto bene.
In realtà il progetto che ti ho suggerito è molto orientato alla matematica e allo studio dei segnali, la programmazione ne implementa la teoria. Il database in questo caso non servirebbe a molto. I database sono nati e pensati come magazzini di dati ad alte prestazioni e capacità di condivisione per accessi concorrenti che rispettino determinati vincoli di integrità. L'uso corretto che potresti farne sarebbe proprio l'immagazinamento di dati dinamici. Ma per memorizzare un numero fisso, poco variabile e non troppo grande di valori, tipicamente si usano array o strutture in memoria caricate da file o generate sul momento.
Comunque non penso tu debba usare proprio tutte le conoscenze della 5° superiore, eventualmente parlane con un professore che può consigliarti alternative magari più semplici rimanendo in argomento.
Se programmi su computer, puoi usare la linea in ingresso del mic o leggere file con dati raw (pcm wav), se hai qualche base di C o C++, puoi programmare con quelli.
La cosa che ti consiglio di fare adesso è continuare a raccogliere idee durante queste vacanze, e a gennaio parlane subito con i professori che risultano più interessati perchè saranno loro che ti indirizzeranno verso il progetto definitivo e ti diranno cosa va bene e cosa no. Prenditi per tempo ;)
Potresti anche usare un DB per memorizzare le note, ma dal punto di vista teorico sarebbe inutile. Una volta che fissi la frequenza di una nota (tipicamente si fissa il "La centrale" sui 440Hz), le frequenze delle altre note le ricavi matematicamente con la formula 440*2(n/12), dove n è il numero di semitoni di differenza.
Per esempio, Sol# = 440*2^(-1/12); La# = 440*2^(1/12); Si = 440*2^(2/12);
Per quanto riguarda gli accordi, ti conviene lasciar stare. Gli accordi sono più note suonate insieme con un preciso criterio, è difficile riconoscerle su un singolo strumento, in una canzone è moooolto difficile. Alcuni software che (affermano) di farlo, costano diverse decine di euro e poi non lo fanno nemmeno molto bene.
In realtà il progetto che ti ho suggerito è molto orientato alla matematica e allo studio dei segnali, la programmazione ne implementa la teoria. Il database in questo caso non servirebbe a molto. I database sono nati e pensati come magazzini di dati ad alte prestazioni e capacità di condivisione per accessi concorrenti che rispettino determinati vincoli di integrità. L'uso corretto che potresti farne sarebbe proprio l'immagazinamento di dati dinamici. Ma per memorizzare un numero fisso, poco variabile e non troppo grande di valori, tipicamente si usano array o strutture in memoria caricate da file o generate sul momento.
Comunque non penso tu debba usare proprio tutte le conoscenze della 5° superiore, eventualmente parlane con un professore che può consigliarti alternative magari più semplici rimanendo in argomento.
Se programmi su computer, puoi usare la linea in ingresso del mic o leggere file con dati raw (pcm wav), se hai qualche base di C o C++, puoi programmare con quelli.
La cosa che ti consiglio di fare adesso è continuare a raccogliere idee durante queste vacanze, e a gennaio parlane subito con i professori che risultano più interessati perchè saranno loro che ti indirizzeranno verso il progetto definitivo e ti diranno cosa va bene e cosa no. Prenditi per tempo ;)
Effettivamente non servirebbe a molto un DB in questo caso, io l'ho buttata lì :D ora cercherò di pensare ad altri progetti e valuterò il più fattibile senza tralasciare l'originalità e l'utilità (cosa secondo me molto importante per far colpo sulla commissione). Lascio il topic aperto così se ho qualche idea la scrivo, grazie mille :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.