Martin Tůma

“Yet another personal homepage...”

Novinky
14.12.2010

Hypercube 0.3. Statusbar a drobné opravy GUI.

21.9.2008

QSS portováno na QT4 + drobné opravy/vylepšení solveru a io.

21.6.2008

Poslední resty z FELu - semestrálka na PARy a diplomová práce v sekci FEL.

Více novinek >>

ODKAZY

Spolužáci z oboru:

Může se hodit:

36DP - Diplomová práce

VoIP na FPGA

Návrh a realizace VoIP zařízení na FPGA formou SoC s využitím CPU Microblaze.

VoIP na FPGA Obsah CD

Poznámka: "Obsah CD" není přesnou kopií obsahu CD přiloženého k DP. Verze na CD obsahuje kompletní EDK projekty (včetně syntetizovaného HW, přeložených programů, ...) tak jak vypadaly v době odevzdání DP. Verze zde na webu je "ořezaná" o všechny "binárky" a jiné "nepotřebné" soubory. Je však dost dobře možné, že byly odstraněny i některé důležité konfigurační soubory a projekty nepůjdou importovat do EDK/ISE - nebylo testováno!

36PAR - Paralelní systémy a algoritm

Minimálně barevná kostra grafu

Sekvenční a paralelní (MPI) verze programu řešícího problém minimálně barevné kostry grafu metodou větví a hranic (branch&bound).

Generátor grafů Sekvenční řešení Paralelní řešení
Zadání

36MPS - Moderní technologie poč. sítí

SNMP

"Laboratorní" úloha na SNMP. Sběr/vyhodnocení dat ze síťového zařízení.

Referát

36SEM - Semestrální projekt

PS/2 keyboard driver EDK IP core

Ovladač PS/2 klávesnice pro Xilinx EDK. Komplexní HW(VHDL)/SW(C) řešení připojení PS/2 klávesnice k libovolné vývojové desce podporované EDK.

Projekt [en]

LCD driver EDK IP core

Ovladač LCD pro Xilinx EDK. Komplexní HW(VHDL)/SW(C) řešení ovládání LCD na libovolné vývojové desce podporované EDK.

Projekt [en]

Poznámka: Ovladače jsou průběžně aktualizovány (u PS2 přibyla podpora pro interrupt mode, SW drivery byly upraveny tak aby podporovaly více instancí zařízení v systému aj.)

36AMI - Aplikace mikropočítačů

BlueNET

Bluetooth <=> Ethernet most na přípravku s AVR Atmega 128. Systém je postaven na OS NutOS doplněném o Bluetooth stack z projektu BlueMP3.

Projekt

Poznámka: Kód BT stacku není GPL! (ve skutečnosti jeho licence ani bez souhlasu autora neumožňuje zveřejnění modifikací... Nicméně autor souhlas dát nemůže, neb ke kódu již nevlastní práva a firma co je vlastní zase už víceméně neexistuje...)

36SPA - Speciální architektury

libICA

Knihovna implementující fastICA algoritmus pro analýzu nezávislých komponent (ICA). Plartformně nezávislá implementace v jazyce C ze které vychází optimalizovaná varianta pro procesor Cell.

Dokumentace [en] libICA.tar.bz2

36LOS - Lokální sítě

TCP analyzér

Program analyzující dump síťového provozu ve formátu tcpdump. Na standartní výstup vypisuje informace o jednotlivých paketech a do CSV souboru (pro "zformátování" POP3 relace je možné využít následující PHP skript) zapisuje data sledované TCP relace. Kompletní zadání.

Vyžaduje pcap knihovnu a systémové hlavičkové soubory linuxu (netinet/ip.h, netinet/tcp.h).

36LOS_TCP.tar.bz2

Poznámka: Program umí skládat TCP stream, ale už ne fragmentované IP pakety, ty jenom detekuje. Skládání TCP streamu je kvůli co nejjednodušší implementaci řešeno pomocí front paketů, takže sledovaná relace nesmí být větší než 4GB. Průběh TCP relace nekontroluje konečný automat ale jen pár podmínek, které nekontrolují ztracené pakety při handshakeu a ukončení atd. Zkrátka školní úloha jak má být ;-).

36PAA - Problémy a algoritmy

úloha 1 Problém batohu 1 (bruteforce, greedy heuristika)
úloha 2 Problém kýblů
úloha 3 Problém batohu 2 (Branch&Bound, dynamické programování, kombinovaná heuristika)
úloha 4 Experimentální hodnocení algoritmů pro řešení problému batohu
úloha 5 Řešení problému batohu pokročilou iterativní heuristikou (simulované ochlazování)
úloha 6 Problém vážené splnitelnosti booleovské formule

TUB - TU Berlin (ERASMUS)

Software Engineering eingebetteter Systeme

Die beiden Übungsblätter, die im Semestr abgegeben werden müssen. Die Daten enthalten auch die Esterel und Ada Programme für das Steuerungssystem.

SEES.tar.bz2

Komponenten digitaler Systeme

Die (fast) vollständige "Sammlung" der VHDL Aufgaben aus den Übungen. Es fehlen nur die Aufgaben 5 und 12.

KDS.zip

Deutsch als Fremdsprache

Textlabor - Schreiben in den Ingenieurwissenschaften.
Hausaufgaben aus dem Semestr und der Fachartikel und die Textkritik für die Prüfung.

DAF.tar.bz2

34PRS - Programovatelné součástky

Stopky

S využitím desky CoolRunner navrhněte stopky měřící s přesností na setinu vteřiny. Stopky jsou ovládány jediným tlačítkem START/STOP/NULOVÁNÍ. Druhé tlačítko slouží k přepínání módu zobrazení (sekundy/setiny).

34PRS.zip

36CPP - Programovací jazyk C++

Pathfinder

Program pro hledání nejkratších cest v grafech. Implementuje BFS pro neohodnocené grafy a modifikovaný Dijkstrův algoritmus pro ohodnocené. Použití:

pathfinder soubor A B

Kde soubor je soubor s grafem (formát viz ukázky v adresáři data), A je počáteční uzel a B je koncový uzel.

36CPP.tar.bz2

01M6F - Matematika 6F

Statistika

Semestrální práce testující, zda má rozložení udělených žlutých karet v jednotlivých kolech fotbalové Gambrinus ligy 2005/2006 rovnoměrné rozdělení.

Referát 01M6F.tar.bz2

36PZ - Periferní zařízení

Universal Serial Bus

"Měření" na USB sběrnici. Úkolem lab. úlohy je za pomoci knihovny libusb přečíst údaje o jednotlivých zařízeních na sběrnici a zprovoznit komunikaci s USB myší.

Referát 36PZ_USB.zip

36SIM - Simulace

SHO2 - Switch

Simulace 4-portového switche. K sestavení a spuštění programu je potřeba simulační systém níže (SHO.tar.bz2).

switch.cpp

Poznámka: Nové požadavky(framy) se generujou tak jak je to řešeno u příkladů ve skriptech. Což má ale za následek "malý" problém - použitou paměť, zdá se, nelze uvolňovat, takže pozor na dlouhé simulační časy a málo paměti...

SHO1 - Hospoda

Simulace hospody jako SHO. V archivu SHO.tar.bz2 je i LINUXová verze simulačního systému. (Soubor pro vlastní simulaci je sho.cc)

hospoda.cpp SHO.tar.bz2

VHDL - Sériová 8-bit násobička

Implementace 8-bit x 8-bit -> 16-bit seriové násobičky na úrovni RTL.

36SIM_VHDL.zip

36POB - Programovatelné obvody

Úloha 1 - PLD

Realizace ovládání krokového motoru pomocí obvodu GAL.

Referát 36POB_1.zip

36UNX - Operační systém UNIX

xgrep

Napište program xgrep, který vypíše soubory obsahující resp. neobsahující zadaný řetěz. Prohledávané soubory se určují stejně jako u programu find, pravidla prohledávání jako u programu grep (-v...). Program musí fungovat pro textové i binární soubory.

Napsáno bez použití findu (rekurzivně prochází adresáře pomocí expanze *). Funkčnost na binární soubory je taková "finta na diváky". Grep samotný nemá s binárními soubory problém - problematický je pouze výpis "řádku" s nalezeným vzorem na terminál, což se ale v úloze neprovádí. Implementuje parametry findu -user, -group, -maxdepth a parametry grepu -f, -i, -v.

xgrep

Poznámka: Jedná se o typickou školní úlohu, která má sloužit k procvičení programování v shellu. Reálně by se použil find s grepem v parametru exec, ale semestrálku na 1 řádek by mi nikdo asi nevzal... ;-)

36PJ - Programovací jazyky

Interpret SQL

Jednoduchý interpret jazyka SQL. Interpretovány jsou operace CREATE, INSERT, SELECT a DROP (se zjednodušenou WHERE podmínkou). U operací UPDATE a DELETE je prováděna pouze syntaktická a sémantická analýza. Podrobnější informace v obsažené (a obsažné ;-) dokumentaci.

Dokumentace 36PJ.tar.bz2

Poznámka: Důrazně upozorňuju, že "interpretující" část není vhodná k jakémukoliv napodobování! Poměrně slušně je zpracovaný lexikální analyzátor, ale syntaktický/sémantický analyzátor (o "databázové" části ani nemluvě) by si zasloužil zcela přepracovat a udělat v tom trochu pořádek (velmi doporučuju, si při psaní Vaší semestrálky strukturu dat 2x rozmyslet, než něco začnete smolit!), ale kdo má na něco takového v zápočtovém týdnu čas, že?!...

36NAN - Neuronové sítě a neuropočítače

Klasifikace znaků dle statistických parametrů jejich obrazů

Ověření možností backpropagation neuronových sítí při rozpoznávání znaků. Experiment nad daty z databáze UCI.

Referát 36NAN.tar.bz2

36DSY - Distribuované systémy

Úloha 3 - RPC printserver

Jednoduchý síťový printserver (a klient) implementovaný pomocí Sun RPC. Spooling je "implementován" přenecháním veškeré práce na skutečném tiskovém démonu ;-). Server (klient) se stará pouze o přenos souboru, zařazení souboru do tiskové fronty (lp -c soubor) a jeho smazání po vytištění.

36DSY_3.tar.bz2

Poznámka: Ve zdrojových kódech je implicitně místo volání lp nastaveno volání cat >> printer.txt. Pokud chcete, aby server skutečně tisknul, je potřeba změnit příkaz ve funkci enque_1() v souboru rpcpd_svc_proc.c

Úloha 2 - Zabezpečený přenos dat přes UDP

Navrhněte protokol pro bezpečný přenos dat. Berte v úvahu možnou ztrátu a duplikaci paketů i možné prohození paketů. Protokol použijte k přenosu souboru mezi počítači. Protokol implementujte v jazyce C nad rozhraním socketů UDP. Délku paketu volte 128 byte. Použijte protokol "klouzavého okénka" (selektivní opakování, délka okénka 4, číslování paketů %256).

Podrobný popis jak na to, i s kódy, ze kterých implementace vychází naleznete na stránkách amerických kolegů.

36DSY_2.tar.bz2

Úloha 1 - Jednoduchý TCP fileserver

Klient a server pro přenos souborů pomocí TCP/IP. Server umožňuje paralelní zpracování požadavků -- pro každý požadavek vytváří vlastní proces.

36DSY_1.tar.bz2

Poznámka: Pro kompilaci všech tří programů na Solarisu je třeba v Makefile odkomentovat proměnou LDFLAGS.

36PJC - Programovací jazyk C

LZW komprimátor

Jednoduchý archivační program používající kompresní algoritmus LZW. Program umožňuje kromě komprese jednotlivých souborů také archivaci a následnou kompresi adresářů při zachování jejich struktury. Předlohou pro program byl známý archivační program tar. Aplikace implementuje obdobu tar -cvvzf pro kompresi a tar -xvvzf pro dekompresi.

Dokumentace 36PJC.tar.bz2

Poznámka: Obsažená knihovna pro LZW kompresi (lzw.c, lzw.h) vychází z kódu © Mark Nelson, který není GPL a nemůže být tedy šířena pod GPL!

36OSY - Operační systémy

Průbězný sort

Simulujte průbězný sort. Jsou dány procesy P, S a C. Proces P zasílá náhodná čísla procesu S max. rychlostí čísel za jednotku času. Proces S třídí tyto čísla. rychlostí u komparací za jednotku času a zasílá nejnižší dostupná čísla procesu C (pokud nejsou k dispozici, je proces C uspán). Odesláná data jsou v procesu S smazána. Na závěr chování pro různě velké hodnoty u a v.

Dokumentace 36OSY.tar.bz2

VMS - wordwrap

Zpracujte vstupní textový soubor a vytvořte výstupní. Ve výstupním souboru jsou vypuštěny nadbytečné mezery. Řádky jsou po jednotlivých slovech přeformátovány tak, aby nebyly delší než zvolený limit, a přitom se mu co nejvíce blížily. DCL pro VMS

wordwrap.sh

36DBS - Databázové systémy

Informační systém pracoviště technické podpory

Návrh databáze informačního systému. Implementace pro ORACLE a ukázka GUI v ORACLE Forms Developer. Podrobné požadavky na stránce předmětu.

Referát 36DBS.zip

36LS - Logické systémy

Realizace konečného automatu

Pomocí synchronního sekvenčního obvodu realizujte konečný automat se dvěma vstupy a, b a jedním výstupem z, zadaný následující tabulkou přechodů a tabulkou výstupů. Použijte vhodnou metodu pro minimalizaci a zakódování vnitřních stavů. Správnost návrhu ověřte pomocí simulace tak, aby se v časovém diagramu prošlo všemi vnitřními stavy minimalizovaného automatu.

Referát 36LS.zip

36SOJ - Strojově orientované jazyky

Serial talker

Program pro dva účastníky, s počítači propojenými seriovým kabelem (nullmodemovým). Měl by být rezidentní, a po výzvě druhé strany upozornit na příchozí hovor. Po odsouhlasení hovoru pak zobrazí konzoli, kde by každý viděl, co píše i co druhá strana napsala (jako unixový talk nebo ipxtalk).

Volná implementace zadání výše se spoustou mušek až much... ;-). NASM pro DOS.

36SOI.zip

36TI - Teoretická informatika

Úloha č.112 z ACM

Řešení úlohy 112 - Tree Summing z ACM Collegiate Programming Contest.

Dokumentace 36TI.zip

36NLP - Návrh logiky počítačů

Instrukce pro DOP

Součet modulo 2 (funkce XOR) dvou stejně dlouhých operandů se uloží na místo prvního z nich. Délka operandů ve slabikách (1 slabika = 1B = 8b) je zapsána v instrukci za operačním znakem jako přímý operand. Počáteční adresa prvního operandu je uložena v registru D, počáteční adresa druhého operandu v registru S. Příznaky CF, OF, SF, ZF a AF musí být nastaveny definovaným způsobem, a to (pokud možno) konzistentně s ostatnímy instrukcemi.

Dokumentace 36NLP.zip

36PT - Programovací techniky

Datový typ prioritní fronta

Implementace pomocí haldy (jako skutečný binární strom!). PASCAL. V semestrálce z 36OSY je tato knihovna přepsaná do Cčka, takže praví programátoři co nepoužívají PASCAL ;-) můžou inspiraci najít tam.

Dokumentace 36PT.zip

01TEX - Publikační systém TEX

XML versus TEX

Srovnání možností a použitelnosti XML a TEXu (LaTEXu)

Referát 01TEX.zip