Diploma Proposals 2012

1. Networking Programming – Ixia

101 Portarea lguest pe x86_64
Momentan soluția de virtualizare lguest rulează doar pe x86, în trecut s-a făcut o portare pe x86_64 dar a fost abandonată din cauza lipsei de timp. Proiectul necesită cunoștințe foarte bune de assembly operating system internals. More details..

102 Linux kernel memory analyzer
Deseori în kernel development apar crash-uri de OOM (out of memory) fără a ne da seama exact ce subsisteme sunt lacome. Ar fi util un tool care “taguieşte” memoria și ține într-un fel evidența paginilor alocate. În cazul unui crash poți identifica subsistemul sau modulul care a alocat memorie. More details..

103 Tool that converts C++ code to managed C++/C# code
Preferred language to be C#. Nothing related to IxLoad architecture. May require compiler theory. More details..

104 Finite State Machine model for configuring protocol stacks
Description: Having as input a list of protocol layer stacks according to OSI model, create a C# implementation of a finite state machine that simulates the configuration of the entire scenario. Each layer has its own internal state machine instance. More details..

105 Enhancements in Multiparty Transport Protocol
The Multiparty Transport Protocol (MPTP) is a Transport-layer protocol with the ability to send and receive data to/from multiple peers. It is designed to be used as a Transport-layer “backend” protocol for Peer-to-Peer application protocols. Highly connected to the Swift protocol, developed in conjunction with the P2P-Next project, MPTP is a kernel-level protocol implementation making use of ancillary structure members to communicate to user space. The current MPTP implementation is most of the time slower (onlysometimes marginally faster) than a UDP backend, despite reducing the number of syscalls. Our goal is to identify bottlenecks in the kernel implementation, make required improvements and properly adjust user space implementations (such as Swift) for speedier delivery. More details..

106 Suport universal pentru switching în LiSA
LiSA reprezintă prescurtarea pentru Linux Switch Appliance. Este un proiect care își propune să realizeze un switch multilayer pe baza unui sistem care rulează Linux. Proiectul își propune realizarea unui API generic, independent de particularitățile sau implementarea motorului de comutare a pachetelor, prin care să poată fi modificată configurația motorului de comutare (ex. adăugarea de VLAN-uri, configurarea interfețelor într-un anumit VLAN etc.) și controlat procesul de comutare (ex. inspectarea tabelei de comutare, adăugarea manuală și ștergerea înregistrărilor din tabela de comutare etc.). Pe baza acestui API, se dorește implementarea suportului pentru mai multe tipuri de comutatoare de pachete, inclusiv pentru modulele bridge și 8021q deja existente în Linux kernel. Odată realizată integrarea cu modulele standard bridge și 8021q, se poate face integrarea într-o distribuție de Linux cu răspândire largă. More details..

2. Low Level Programming – Virtual Metrix

201 Automatic Profiling (aka Autprofiling)
Investigate and develop method(s) for automatic creation of performance a profile for a program, its threads, and the services they utilize in order to apply these profiles to the program and to the “system” based on an underlying execution resource allocation model. More details..

202 Linux kernel scheduler, interworking
Investigate the standard Linux schedulers, the PerfMan scheduler (PmSched) and scheduler interworking. This research will entail a deep dive into Linux scheduling classes and Linux scheduler development and analysis. More details..

203 Increasing system capacity through performance management
This research will entail utilizing and enhancing the VMX PerfMan system and algorithms to enable higher application workload on a system. Demonstrate increased capacity of a system through performance management compared to a conventionally managed system. More details..

204 Software Fault Detection of an Operating System through Performance Analysis
Develop a model that can be used to detect faulty operation. More details..

205 Optimizing Memory Usage in the VMXL4 Microkernel
Do an audit of data structures and allocation process throughout the microkernel, detect point of improvement and optimize memory usage. Show numeric improvement in the memory allocation: reduction in worst case allocation/deallocation time, decrease in memory usage, or other aspect of the memory allocation that was found deficient and then optimized. More details..

206 High Performance MMC Driver on Top of the VMXL4 Microkernel
Develop a real driver, speedy and efficient. More details..

207 SMP Support in the VMXL4-Linux Shim
Implement efficient SMP support in the VMXL4-Linux shim. More details..

208 VMXL4 Interrupt Abstraction
Analyze VMXL4’s Interrupt abstraction and InterruptControl syscall, and use cases. More details..

209 VMXL4 Baremetal Containers
Create a Baremetal container prototype where a native VMXL4 application can utilize 100% of the CPU and memory resources allocated to it while also obtaining services from a virtualized Linux kernel running on the same machine. These services can be obtained via a server running on the Linux system. More details..

210 User recognition based on recognizing patterns in system usage with performance monitoring
Perform an initial training phase by gathering metrics and performing statistical analysis to detect patterns that can be unique to a single user. Create a type of heuristic algorithm capable of issuing security warnings once a deviation from these patterns is observed. More details..

211 Detection of atypical Android application behavior
Select a few classes of apps, well performing apps and bad performing apps (preferably known bad versions of a given app…known to have a bug that leads to fast battery drain). More details..

212 Fallback from GPU hardware acceleration to a soft implementation
Android framework, the layer underneath OpenGL, libEGL, libAGL. Eclipse, creating applications on Android. Creating wrappers over functions at C level. Investigate switching OpenGL calls in these wrappers: upon powerup, dynamically in the same power cycle. More details..

213 Adaptive codec streaming in an android environment
Look into open-source patent-free audio compression format that allows to change the encoding rate on fly, like speex. Look into reaching video scalability. More details..

214 Investigate ways to manage the GPU in an Android environment
Investigation should focus on the ARM Mali and/or NVidia Tegra3 GeforeULP// GPU implementations found in modern systems. More  details..

215 Investigate Android’s Battery Manager Service
Investigate how this Battery Manager models the battery state of charge and battery use. Check if the battery model is the same from older to newer versions of Android for a given platform. Check if the battery model is the same from one platform to the other, focusing on publicly available systems or if there are parameters that individualize Android systems. More details..

3. SO Programming – Intel

301 Android Mesh Networking
This project aims at providing Android support for mesh networking communication at user-experience level and enhancing the existing B.A.T.M.A.N protocol or incorporating other new open source mesh networking protocols in the Linux kernel. More details…

302 Web UI scanner
Automatically decompose a Web UI (e.g. the one of into elements and actions supported by elements. Build a database containing elements and their supported actions. Simulate user interactions with the Web UI using the information stored in the database and Web automation tools (e.g. Selenium). Ability to catch unexpected behavior of Web UI while performing intended actions. Nice to implement: add fMBT into equation and let the computer generate tests for you.

303 WebIDL 2 unit testing
Transform Tizen/W3C/any WebIDL documents into implementable unit tests. Run the unit tests against Tizen Emulator/device. Build a report tool and present the results (Pass/Fail, testing coverage).

304 Fuzzing for Software Security Testing and Quality Assurance
The purpose of fuzzing relies on the assumption that there are bugs within every program, which are waiting to be discovered. Learn new ways on how to check the quality of your code by doing fuzz testing no matter on what level you are working from drivers up to web applications.

305 Dynamic Rapid Interface Builder
The tool should allow binding functions to events on GUI elements (href) and on hover over HTML elements it should display the bound event handlers. The tool should be able to allow creating a sitemap graph/diagram with transitions between pages (href attributes on anchors, onclick event handlers). The tool allows creating a timeline to help track changes to elements on the page. For example choosing an option on field A changes the options available on input B. The tool should allow the option to capture changes of the elements on the page, generate JavaScript code to make these changes and store this code in a temporary work area. There should be easy to move this code from the temporary area into existing JavaScript functions or to create a new function. The tool should integrate (under a new tab) with Rapid Interface Builder available at

306 Android Tracing
This project aims at providing Dalvik VM support for tracing tools such as SystemTap and perf so that tracing can be used on Android Java applications with full layer visibility, from Java to native and kernel. More details…

307 Yocto Project Web Interface
The project aims to develop a basic web interface for the Yocto Project build system. The Yocto Project™ is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. More details…

4. Compilers – Freescale

5. Network Security

501 Extensia arhitecturii client-server de port knocking folosind sincronizare NTP
Scopul acestui proiect este de a extinde implementarea de port knocking prin secvențe dinamice de knock folosind sincronizarea între client și server prin NTP, prin schimbarea secvenței de knock la un interval de timp specificat. Secvența de knock va fi determinată prin codificarea informației de la NTP folosind funcții one-way. More details…

502 Evaluarea compartativă a atacurilor criptografice
Scopul acestui proiect este de a identi fica, implementa și evalua comparativ un set de atacuri criptogra ce pentru a determina care este cel mai efi cient atac și care este cel mai puternic algoritm de criptare. More details…

503 Analiza aplicațiilor de tip malware
Scopul acestui proiect este de a dezvolta un sistem de analiz a a aplicațiilor de tip malware folosind tehnici de analiz a static a și dinamic a: detectarea packer-ului, analiza string-urilor, dezasamblarea, monitorizarea acceselor de fișiere, analiza pachetelor trimise sau primite etc. Aceste tehnici trebuie implementate pentru a analiza comportamentul aplicației de tip malware în mod automat, fără intervenția unei persoane. Sistemul va trebui sa genereze un raport detaliat cu informații despre aplicația malware și comportamentul acesteia. More details…

6. Mobile Apps

601 Sistem de urmarire a traficului feroviar folosind dispozitivele calatorilor
Un sistem ce permite trimiterea datelor anonime, totusi corecte, despre pozitia geografica a trenurilor folosind dispozitivele mobile ale calatorilor. Problema mai complicata este indemnarea utilizatorilor sa foloseasca sistemul (motivarea utilizatorilor) si filtrarea informatiilor de pozitie false trimise. More details…

602 Sistem pentru integrarea orarului facultatii pe dispozitivele mobile
Integrarea activităților, a orarului, a hărții etc. facultatii cu sistemele mobile existente (Android, iOS, Windows Phone 7, 8 etc). Extragearea informatiilor despre poziția și orarele salilor (eventual folosind coduri QR lipite pe sali, care scante ofera orarul salii). Realizarea sistemului de backend pentru asa ceva.. More details…

603 Realizarea unui widget open source de editare de cod pentru Android (si eventual iOS).
Dispozitivele mobile devin din ce în ce mai performante, astfel încât editarea de cod sursă începe să devină posibilă direct pe acestea. Proiectul isi propune dezvoltarea unui widget open source ce permite editarea de cod având avantaje de syntax highlighting și auto-complete.  More details…

604 Portarea Dalvik pentru sisteme non-Android (stand alone)
Posibitatea folosirii masinii vrituale dalvik pentru sisteme non-Android, realizarea de aplicatii in format dex.

605 Automatic armed robbery detection systems based on body pose estimation from depth video (Windows Kinect) 
This project aims to provide a proof of concept on detecting armed robbery activities in small stores based on body pose estimation from range data. More details…

606 Course lightweight attendance solution using NFC-tags and NFC-enabled mobile devices
This solution should be integrated with Moodle Attendance Module for easy access to students’ database. Use-case details: Every student will receive an identification card (NFC-tag). The teacher will install the developed application on his mobile/tablet (NFC-capable). Each student will swing his tag near the mobile, the mobile reads the tag-id and send a “presence” to the Moodle Attendance Module.

7. Telemedicine

701 OMedHu01 – Hardware Hub
Construirea unui sistem hardware central, de tip HUB, cu următoarele componente: componentă de procesare (uC &), modul wireless (bluetooth), ADC / biosenzori si circuitele de filtrare / pre-procesare semnal.

702 OMedHu02 – Movement surveillance module
Construirea unui modul pentru supravegherea mișcărilor unui pacient bazat pe accelerometre. Se va dezvolta un modul cu accelerometru ce se poate conecta la OMedHu01. Folosind unul sau mai multe astfel de module, se vor analiza mișcările realizate de persoana aflată sub supraveghere medicală. Un astfel de dispozitiv are aplicații în multiple situații de monotorizare: monitorizare boli de inimă a căror analiza necesită o corelare cu poziția / starea de repaus (sau mișcare), monitorizare boli cognitive, etc.

703 OMedHu03 – WSN positioning
Se vor analiza diferite metode de determinare a poziției unui sensor wireless în cadrul unei Rețele de Senzori Wireless și se va realiza o comparație între acestea. Se va propune o soluție hibridă, cu accent pe calibrare inițială. Sistemul final este destinat utilizării în contextul home-care, cu alte cuvinte în medii cu schimbări rare de poziționare de obiecte / structuri de pot influența precizia măsurătorilor. Astfel, un sistem hibrid ce folosește și un sistem de calibrare periodică este de așteptat să ofere rezultate superioare soluților actuale.

704 OMedHu04 – Mobile processing of medical data
Se va realiza un framework software pentru Android / iOS ce va comunica via bluetooth cu OMedHu01. Sistemul va prelua parametrii biologici măsurați de către sistemul harware și va efectua următoarele acțiuni: procesare (folosind module dezvoltate separat), afișare informații, trimitere SMS/ E-mail cu alerte în anumite situații pre-definite, stocare date și emitere de rapoarte la intervale pre-definite. de timp

705 OMedHu05 – EKG signal processing
Se va realiza în matlab un modul software de procesare de semnal EKG. Modul va primi ca input forma de undă achiziționată, în formă discretă (un șir de numere). Modulul va determina parametrii specifici EKG reprezentati aici. Ca ouput, modul va oferii amplitudinile și intervalele de timp extrase în urma analizei formei de undă primite.

706 OMedHu06 – EKG signal interpretation in Jess
Pornind de la datele extrase de modulul OMedHu05, modulul OMedHu06 va analiza și diagnostica eventualele afecțiuni ce pot reieși din forma de undă a EKG-ului înregistrat de sistem. Ca input, modulul va primi o serie de parametrii măsurați – amplitudini și intervale de timp specifice. Pe baza unui set de reguli ce va fi definit pornind de la baze de date medicale cu exemple pentru toate tipurile de afecțiuni definite, modulul va diagnostica afecțiunea ale cărei patologie corespunde cel mai bine formei de undă descrisa de parametrii de input.

8. Robotics

801 Robo01 – Robot on a PCB
Se va realiza un PCB de dimensiuni reduse ce conține toate componetele de control necesare pentru realizarea unui robot de complexitate medie.

802 Robo02 – Framework pentru kit didactic
Se va dezvolta o bibliotecă software și o serie de aplicații pentru platforma didactică prezentată aici. Sistemul este o placa de bază din cadrul unui kit didactic destinat începătorilor, și se dorește a fii o alternativă la soluții de tip Arduino, ce insuflă deprinderi greșite începătorilor în robotică și microcontrolere.

803 Robo03 – Power usage monitoring system
Se va dezvolta un sistem de monitorizare a încărării unei rețele electrice. Un modul va permite trecere prin el a până la 63A la 220V, putând astfel fii inserat în cadrul unei linii de putere. Modulul va monitoriza permanent tensiunea, frecvența și curentul ce trece prin el, și va transmite prin intermediul unei Rețele de Senzori Wireless toți acești parametrii la un calculator, pentru a fi afișați. Deasemenea, modulul va include și un sistem de protecție la supratensiune și supracurent, cât și un afișaj extern ce prezintă permanent cei 3 parametrii monitorizați.