Subversion will be used for file storage and version control for project
documents and code. The Subversion (often referred to as SVN) server is
available at:
svn://sandilands.info/svn/
A nicely formatted web site that gives read access to files is at:
https://sandilands.info/viewvc/
For users, you need an SVN client. On Windows, TortoiseSVN is the defacto standard. It integrates into your Windows explorer shell. On Unix-based systems, the SVN command line tool is most commonly used. Ubuntu has for example an svn package.
A short introduction to using TortoiseSVN for Senior Projects is available.
We have a server with two Nvidia GeForce GTX 460 graphics cards. These are CUDA-enabled Graphics Processing Units, meaning you can write applications that utilise the massively parallel processing abilities of the graphics cards. For problems that can be solved with parallel algorithms, using the GPU can be much faster than using a general-purpose CPU. Examples of applications well-suited to GPU computing include: cracking passwords and breaking ciphers; solving selected scientific problems; weather forecasting and physics calculations; image and video processing. In this project you may choose a suitable application and implement it using CUDA or OpenGL on the graphics cards. You need to be a good programmer for this project, although you don't need experience in CUDA or OpenGL - you will learn it along the way.
Wireless sensor networks allow monitoring and control of an environment using small low power sensors with built in wireless capabilities (e.g. IEEE 802.15.4, ZigBee). The sensors, e.g. light, motion, temparature, moisture, form a multi-hop wireless network and sending information to one or more servers. A key charactersitic of a wireless sensor network is lightweight: the sensors themselves are very low power (e.g. battery last weeks or months) and capability devices (e.g. KB of RAM, MHZ CPU), and hence the wireless network must be very efficient at low data rates (kb/s).
To make application development easier, some sensors are running lightweight version of IPv6, referred to as 6LowPAN. To run applications on the sensors and servers to collect information and control the sensors, rather than using HTTP for web applications, CoAP has been developed.
Your task will be to develop a web application that can control and collect information from sensors using CoAP. The popular sensor network operating system, Contiki, can be used.
Moodle is a learning management system. One feature it offers is online quizzes. A teacher creates quiz questions in Moodle, sets a quiz, and students complete the quiz on their computer. In some cases its desirable to have a hardcopy of the quiz (e.g. to give to students in class without computers, for a special makeup quiz, for teachers and students to print). This project requires you to develop software that takes a Moodle quiz and produces a printable PDF of that quiz. To generate the PDF, LaTeX will be used. That is, your software needs to convert the Moodle quiz questions (in HTML/XML) into LaTeX. A second task is to then be able to make the completed hardcopy quizzes available to students through Moodle. For example, if the quiz is scanned to a PDF, then that PDF can be downloaded by the student within Moodle. Similar applies to hardcopy exams and assignments.
Some features to consider for inclusion:
You will need to learn the format that Moodle stores questions and files in: although they are in a MySQL database, its easy to export the questions to XML or GIFT format. You will then need to learn basic LaTeX and design a style and macros to support the Moodle question types. You need to implement the converter, either as a standalone program or as a Moodle plugin. Similar, for the importer you may have a standalone program or Moodle plugin.
Make use of an Ettus USRP210, a programmable wireless access point, and optionally multiple Linksys WRT54GL wireless access points to develop a novel wireless application/network. For example, a network that automagically selects the best frequency channel to use to avoid interference. Or provides extra coverage for a mobile network. Or provides very high speed wireless links for multiple HD video streams. You can select the application with consultation with the adviser. You may need to learn about and use one of the following GNUradio, OpenBTS, OpenWRT, and may involve programming DSPs and other hardware components, i.e. software defined radio.
Steganography is a security mechanism that hides secret messages inside public messages. This project implemented software that allowed a user to hide a text message inside a voice call. While making a voice over IP call, the software took the message from a file and hid it inside the voice data sent across the Internet. The receiving application then decoded the message.
Demonstrations and examples are important for effective teaching of computer and network security. This project will develop a web-based application that allows students to perform security operations (encryption, authentication, key generation) in a controlled environment. Students login to the application and can then apply common encryption algorithms, as well as send encrypted/authenticated messages to other students.
The project involves implementing web applications using technologies such as: HTML, PHP, CSS, MySQL, SVG, JavaScript, CMS. This project is NOT about implementing encryption algorithms; existing software such as OpenSSL and GPG can be used for them. Instead the focus will be on developing an easy-to-use graphical web application that aids the student in learning the steps taken in different security algorithms.
The desired web application should allow some or all of the following features:
For students that took CSS322 last year, one goal of this project is to implement the assignment via a web application. That is, rather than using the command-line of OpenSSL, each student logs in to the SecurEd web application and performs the operations via a GUI. This will simplify the process for students, as well as the monitoring for the instructor.
At least 1 student in the group must have taken and passed CSS322.
Some museums have electronic guides for visitors providing information about nearby exhibits. This project will create a similar style guide for SIIT (with possibly extension to Thammasat Uni). As a student walks around campus, their mobile device provides relevant location-based information. Some examples:
There are three parts to make such a system work: application on mobile device, backend servers providing the information, and location/tracking infrastructure. The mobile application will push messages to the user, as well as allow the user to interact with different services. The backend servers store information to be sent to students, as well as having databases about students. The location/tracking can be performed via different mechanisms: QR-Codes, Bluetooth, GPS, Wi-Fi, motion sensors, video cameras.
Deploy a test network that allows students to defeat the security mechanisms of a wireless LAN (IEEE 802.11 WiFi). Implement software that visualises the security mechanisms and attacks so that students can learn how they work in real-time.
The test network should allow attacks against different levels of security:
Software exists that performs the above attacks, for example: Aircrack-ng for WEP/WPA attacks, Wireshark viewing captured packets, pyrit for brute force attack. For the brute force attack you can make use of our server with two Nvidia GeForce GTX 460 graphics cards and utilise CUDA. It is your task to get all this software working together in the test network.
A key aim of the project is making it easier for students to perform an attack and at the same time understand how it works. Therefore, rather than just use the existing software, you should provide some visualisation of the steps being taken. For example, visualise the packets being sent during an attack and the processing being performed at each node, combined with explanations of the steps. Where possible, this should be in real-time and interactive.
SIIT students study several courses on data communications and networking, including ITS323, ITS327, ITS332 and ITS413. This project requires the development of software to demonstrate the concepts, algorithms and protocols learnt during these courses. For example, the software may include:
The intended users are students of data communications and networking courses. The software will be for educational purposes: it aims to make it easier for students to understand the concepts in networking. Hence the main focus will be using appropriate user interface techniques to explain concepts (e.g. animations, video, calculators). Where possible, the software should be interactive. The software may be standalone (eg. written in Java or other language) or web-based (e.g. AJAX plus Google APIs). The exact set of features is open for discussion and will be finalised in the design.
Many educational institutions encourage students to use computers (e.g. laptops, mobile devices) during class to support their learning. One common use is for the students to view the lecture slides/notes on their own computer, instead of having a print out of slides. However, without good software, it is difficult to annotate the slides during the lecture. This project requires you to develop a system that allows annotation of slides during a lecture, as well as sharing of those annotations within the class.
Assume slides for a lecture are made available on a website so that during the actual lecture, students can view the slides via their laptop or mobile device. For example, they may be viewed as an interactive slide show. You must develop this website so that students can easily add annotations during the lecture. There are various factors you need to consider such as:
The website will maintain annotations from all students, and therefore can allow students (and lecturer) to see/edit annotations of other students. Hence you will need to consider:
Finally, you may add extra features to the website that support in-class learning and feedback. Some ideas include:
Coloured Petri Nets are a formal language for modelling distributed systems. Although they have a formal mathematical basis, in practice the graphical form is commonly used. That is, people create a graphical model of a system (similar to UML, state transition diagrams) and then analyse the behaviour and performance of that system. They have been widely used in analysis of Internet protocols, distributed algorithms and software, business processing modelling, transportation systems (such as trains), manufacturing and embedded systems, as well as biological systems.
A project group last year developed a CPN of a protocol for in-vehicle communications, publishing a paper at an international conference. There are some common ways for modelling different protocols in CPNs. In this project you will develop tools to support the modelling of protocols in CPNs, with the goal of automating the modelling process. After learning about Coloured Petri Nets and related tools (CPNTools and ASAP) you will have several tasks:
This project is suited to 2 or 3 students who are interested in learning something new. The new knowledge is excellent for students interested in studying a Masters (e.g. in Embedded Systems at SIIT/TAIST or in theoretical computer science in one of many European universities in this field).
Last year a group developed an application for monitoring vehicle data (such as location via GPS, speed via OBD and surrounds via webcam) and in the case of an accident, sending selected data to an emergency services dispatch centre (for delivery to police, ambulance, fire, insurance). This project will continue in the same application. You have the option of improving the existing application (e.g. adding the ability to do intelligent processing of the video so that it can be transferred via GPRS/3G, collecting real vehicle speed data via a OBD-II device) and/or porting the application to a mobile platform (e.g. implementing the features on a mobile phone, so it no longer requires an in-vehicle laptop).
A wireless mesh network (WMN) comprises wireless routers that together form a network to provide Internet connectivity to mobile/fixed hosts. The wireless routers are normally fixed in position, but some may be mobile. This project involves deploying an experimental wireless mesh network and testing applications on the network.
Wireless mesh networks are used in scenarios when a wired backbone is unavailable or prohibitively expensive. Compared to wireless LAN hotspots and cellular networks, the access points/routers in a WMN do not require wired network connectivity - they forward traffic wirelessly towards a special gateway with (normally wired) connectivity to the Internet. An example application scenario is a community/village network where high speed Internet access is unavailable to all users. With 10's of wireless routers deployed within selected homes/businesses, 1 or 2 of which also have wired connections, all users within range of the wireless routers can access the shared wired Internet connections.
SIIT has about 40 Linksys WRT54GL wireless routers. The initial task of this project is to configure these routers using OpenWRT (or similar) so that WMN routing protocols such as OLSR can be used. The routers must then be deployed across SIIT Bangkadi campus to establish an experimental WMN testbed. Once deployed and tested, the next task is to experiment with different applications and configurations of the test-bed, analysing the performance limits of the network. An interesting application is the delivery of video over the WMN to multiple users (e.g. multicasting a DVD, streaming Youtube videos).
Two applications of interest for the WMN are:
Each group will be responsible for one of the applications.
There are various other tasks that could be completed using the testbed WMN. In addition, simulation analysis of the network (using OPNET Modeler) could be performed to consider scenarios with more than 40 nodes. The exact set of tasks will be agreed upon at the start of the project. Depending on the tasks chosen, there is a good chance to produce results that can be published in an international conference paper.
Coloured Petri Nets are a formal language for modelling distributed systems. Although they have a formal mathematical basis, in practice the graphical form is commonly used. That is, people create a graphical model of a system (similar to UML, state transition diagrams) and then analyse the behaviour and performance of that system. They have been widely used in analysis of Internet protocols, distributed algorithms and software, business processing modelling, transportation systems (such as trains), manufacturing and embedded systems, as well as biological systems.
In this project you will:
This project is suited to 1 or 2 students who are interested in learning something new. The new knowledge is excellent for students interested in studying a Masters (e.g. in Embedded Systems at SIIT/TAIST or in theoretical computer science in one of many European universities in this field).
Develop a web-based interface for car management and entertainment applications. The applications will be controlled by a wireless router inside the car. You will use a Linksys WRT54GL wireless router, running OpenWRT and with additional storage attached (e.g. for movies, music, maps). The wireless router runs a web server. You will develop the web interface (and backend applications) to allow users to access a variety of applications within the car, e.g.: play music and videos; access maps; view information about the car (fuel usage, distance). The wireless router can make use of an external EDGE/3G wireless card for Internet access, or use concepts of Delay Tolerant Networks (see Cabernet from MIT as an example of WiFi in the car).
Return to: Course List | Steven Gordon's Home | SIIT