Wireless Environmental Sensor Network (WESN)
As a GA in graduate school my project has been to assist Dr. Brian Davis with the maintenance of the Michigan Tech. ski trails Wireless Environmental Sensor Network. As a part of this project I have been involved in the update of the database used to store the historical weather data as well as performing a major overhaul of the website. I have also been responsible for performing maintenance and repairs to the single board computer modules that are installed on the ski trails. The website for this project can be found here.
CS 2141 - Software Development Using C/C++
This is the Michigan Tech. introductory course to C/C++ and UML. most of the programs are relatively simple, with the exception of program 4, which was the final project. This final project consisted of developing the AI behind a checkers game.
CS 3911 - Intro. to Numerical Methods With FORTRAN
This class deals with an introduction to FORTRAN 90. The programs that were written all demonstrated the number crunching abilities of FORTRAN.
CS 4411 - Intro. to Operating Systems
The main focus of this class was to introduce students to some of the fundamentals of computer operating systems. This class dealt mainly with handling threads, including thread synchronization, shared memory, semaphores, mutex locks, and other thread related items. As can be seen in the Mini-Project, this class required a deep understanding not only of how thread synchronizations are used, but also how they can be implemented. This class also covered other OS concerns such as file systems.
EE 3173 - Hardware/Software Systems Integration
This class was my first introduction to using FPGAs. The lab section of this course dealt with programming an FPGA with a "soft" processor that could be customized to include special instructions. This course included programming in several languages, including assembly, and C. The boards that were used were from Altera and ran the Nios II processor. An example lab report from this class can be found here.
EE 3175 - Modelling and Simulation of Computer Systems
This course was an introduction to fault tolerance (FTA, RBD, etc.) and super-scalar processors. The simulation tools that were used include Dinero, SPNP, Item-FTA, and SimpleScalar.
EE 3970 - Computer Engineering Professional Development
This course dealt with engineering ethics and team work. As a part of the team work experience I completed a large project that can be found here.
EE 4272 - Computer Networks
The focus of this class was understanding how computer networks operate on the lower 4 levels of the OSI model. This included everything from the structure of an IP packet, through how packets are framed, encoded, and decoded at the hardware level. This class had two projects. One project consisted of designing a program that could model the behaviour of a theoretical network to show bus utilization. The other program was a practical implementation of Djikstra's algorithm.
EE 5510 - Information and Coding Theory
This class was mostly theory based. The only coding that was done were implementations of and modifications to a huffman encoder. The code that accomplished this can be found here.
EE 5751 - Verilog Based Advanced Hardware Design
This class dealt with designing hardware systems in Verilog with an emphasis on synthesis. All designs had to not only be correct in terms of the language, but also had to be done is such a way that actual hardware could be built to implement the design. The main project that I completed for this class was an implementation of the Rijndael encryption system (AES). The verilog source code for this project can be found here. Also, the final report for this project can be found here.
EE 5900 - Programming Embedded Systems
This class used Wireless Sensor Nodes (WSN) to build networks and perform various tasks. The purpose of the class was to give an introduction to topics such as ad-hoc networking, data aggregation, embedded systems, and real-time programming. The programming was done using tmote nodes, and the language used was nesC. The project that I chose was to implement a simplified mini-SQL on the nodes that performed the aggregate queries in a distributed fashion. The workload was thus split by as many nodes as possible and the data packet transmission size was reduced as much as possible. The source code for this project can be found here. Also, a PC application written in Visual Basic .NET was needed to communicate with the sensor network via a TCP socket. The source code for this application is here.
MA 4211 - Information Theory
This math class was mostly theory based. The program that was written was actually only done to simplify the process of verifying encodings that had already been done by hand. The program uses an adaptive huffman algorithm to compress data in one pass. The source code can be found here.