Graduate Computer Architecture - Carnegie Mellon Fall 2010
This was an advanced research based Computer Architecture course taken by Prof. Onur Mutlu. It involved exposure to a a lot of cutting edge research in the field of Computer Architecture through recent papers and also had a final project which encouraged research in the state of the art.
My final project was based on Asymmetric Multi Core Processors. We developed a mechanism for job transfer from weaker cores to stronger cores in the presence of serial critical sections when there are multiple large cores present.
I personally enjoyed the course a lot and the teaching in class was exceptional.
Machine Learning for Signal Processing - Carnegie Mellon Fall 2010
This was a wide ranging Machine Learning course that delved into many practical aspects. The course was taken by Prof Bhiksha Raj and involved exposure to everything from the very basic aspects of Machine Learning to the more advanced ones. One great thing about the course was that many topics were taught by guest lecturers who were experts in that specific field. The course had a final project, and the one my team worked on was "Song Identification Using Hiddem Markov Models". It basically involved developing an application similar to Shazam©, however in a more efficient way.
Design of Integrated Embedded Systems - Carnegie Mellon Fall 2010
This course was taken by Prof. Radu Marculescu. It consisted of key insights into the methodology of design. It described how mapping of functions onto a topology is key and drove home the point by discussions on Networks on Chip and various aspects related to it. The course included a final project which was the design of a 15 core network on chip. The processing element itself was very basic, performing parallel merge sort operations. The main design entity was the router, which worked on a routing table based wormhole routing scheme. The design was developed using MATLAB Stateflow and was succesfully tested on ModelSIM
Parallel Computer Architecture - Carnegie Mellon Spring 2011
This was a research oriented course taken by Prof Onur Mutlu that delved deeply into issues with parallel architectures. A wide variety of current research literature was part of the course, and the course had a final project related to parallel architectures. My project was on utilization of warp slack to improve memory management in a CPU-GPU heterogenous processor. You can find more about this on the projects page.
Wireless Sensor Networks - Carnegie Mellon Spring 2011
This course, taken by Prof Raj Rajkumar, was essentially a project based course. It combined class lectures that taught practical aspects of wireless networks with true hands on experience in the form of challenging labs and the final project. The final project for my team was the identification and tracking of a bag across a known topology using sensor nodes equipped with cameras for vision. This was a first step in the identification of carriers of Improvised Explosive Devices, with backpacks and such being a very common method of concealing these devices.
Wild And Crazy Ideas in ECE - Carnegie Mellon Spring 2011
This was a course taken by Prof Radu Marculescu. This course touched upon a wide array of fields in science, including graph theory, fractals, swarm and group behavior, higher order statistics and several other upcoming ideas and methodologies in ECE and allied fields. The core component of the course was a project based on something wild and crazy. My project was on Human Mobility Prediction. Using machine learning on some popular datasets, I was able to predict the location and tone messages sent by users in the future with a high accuracy.
Real Time Embedded Systems - Carnegie Mellon Fall 2011
This was a course taught by Prof Raj Rajkumar. This introduced many aspects of Real Time systems and reinforced the same using extremely well directed lab work where many of the real time concepts were implemented to modify the kernel in android smartphones into real time kernels. We learnt and implemented various concepts related to power management, resource management, real time syncronization and many other concepts
Fundamentals of Embedded Systems - Carnegie Mellon Fall 2011
This was a course taught by Prof Rajeev Gandhi. This was a very effective course which relied heavily on very relevant lab work where we developed our own real time operating system kernel. We implemented context switching, mutexes and the non pre-emptive priority inheritance protocol besides writing our own system call interface and interrupt handlers.