36DP - Diplomová práce
VoIP na FPGA
Návrh a realizace VoIP zařízení na FPGA formou SoC s využitím CPU Microblaze.
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í.
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.
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.
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.
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
).
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.
Komponenten digitaler Systeme
Die (fast) vollständige "Sammlung" der VHDL Aufgaben aus den Übungen. Es fehlen nur die Aufgaben 5 und 12.
Deutsch als Fremdsprache
Textlabor - Schreiben in den Ingenieurwissenschaften.
Hausaufgaben aus dem Semestr und der Fachartikel und die Textkritik für die
Prüfung.
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).
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.
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í.
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ší.
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
).
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
)
VHDL - Sériová 8-bit násobička
Implementace 8-bit x 8-bit -> 16-bit seriové násobičky na úrovni RTL.
36POB - Programovatelné obvody
Úloha 1 - PLD
Realizace ovládání krokového motoru pomocí obvodu GAL.
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
.
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.
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.
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í.
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ů.
Ú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.
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.
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.
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
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.
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.
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.
36TI - Teoretická informatika
Úloha č.112 z ACM
Řešení úlohy 112 - Tree Summing z ACM Collegiate Programming Contest.
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.
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.
01TEX - Publikační systém TEX
XML versus TEX
Srovnání možností a použitelnosti XML a TEXu (LaTEXu)