Overview

On this page you will find all the courses I have taken as well as any projects that I have done in association with those courses. You may use the documents and code provided freely in your own work (provided it is not against the rules governing your assignment if you are taking a course). I hope they are useful. All code and documentation is subject to the BSD license.

While at Tech, I obtained a Masters in Electrical and Computer Engineering and have now switched to pursuing a PhD in Computer Science. The courses listed here reflect this change of focus, with some courses having a more ECE focus while others are more CS oriented.

Having completed my coursework, I am no longer actively taking courses. I have audited courses in Algebra, Randomized Algorithms and Multi-core systems.

Courses by Area

I list the courses taken by broad area:

Fall 2007 Courses

CS 6290: High Performance Computer Architecture

This course is based on Computer Architecture: A Quantitative Approach. It presents the fundamentals of computer architecture and will expand on the new multi-core architectures. You can find all the lectures and material covered on the course website.

For this course, one long project was required. The project consisted in modifying a simulator called SESC (based on SimpleScalar) to classify each cache miss as a compulsory, coherence, conflict or capacity miss. We then had to count the stalls that could be attributed to cache misses of each category. This project was done in association with Vishakha Gupta. You can download the patch file to apply to the SESC simulator (found here) as well as the report for this project here.

Spring 2007 Courses

CS 6210: Advanced Operating Systems

This is a paper based course. Papers covering different topics are presented and analyzed. The course website presents the papers covered. Please refer to it to see which exact papers are presented.

For this course, two projects were required:

CS 6310: Software Architecture and Design

In this course, the basic principles of software architecture and design were presented. The course was centered around multiple projects that revolved around building a simulator for the Earth's heating. The simulator was built in Java and explored different design paradigms. The goal of the projects was to compare and contrast each design paradigm.

The course website has more detail about the curriculum.

Fall 2006 Courses

CS 6491: Computer Graphics

This course is an introduction to computer graphics. The course covered materials ranging from simple rendering to Cg programming. This course was heavily project oriented.

The course website has more detail about the course.

Five projects were required from this course. The projects are available on demand as they require some non-trivial setup. The course website contains the description of the projects; email me if interested in one or more.

CS 7001: Introduction to Graduate Studies

This course is not a regular course in the sense that it does not teach one particular subject but rather general concepts about being a PhD student. It gives methods on how to do good research, how to get good ideas, how to work in a team, etc.

The course website gives a good idea of the themes covered.

Spring 2006 Courses

CS 6505: Computability and Algorithms

This course is an introduction to theory. It presents the basic fundamentals of computing theory.

The course website can be found here.

Fall 2005 Courses

CS 6236: Parallel and Distributed Simulation

This course focused on simulation systems. These systems include, for example, army simulators.

The different ways to simulate the real world (event-driven or time-step) were explained. The TimeWarp algorithm was also explained.

More information on this course can be found here.

ECE 6605: Information Theory

This course presented information theory.

ISYE 6669: Deterministic Optimization

This course focused on solving and optimizing for constrained systems.

Spring 2005 Courses

CS 4210: Advanced Operating Systems

This is the Georgia Tech undergraduate version of the advanced OS course. It was heavily project oriented and introduced all the concepts in operating systems.

The course website describes the course and presents the three projects that were required.

Three individual projects were assigned in this course. They all built on the initial project of a multi-threaded webserver:

CS 6241: Compiler Design

This course focused on the back-end design of compilers. It did not address any of the front-end issues (parsing and such) but described in detail all the transformations that occur during the compilation of a C-like program. The course was heavily project oriented. The projects were based on the Trimaran compiler architecture.

The course website gives more details on what was covered.

Through the projects in this course, I implemented SSA and other optimizations into the Trimaran compiler. These projects are available on demand as they require setup. Please email me if you would like to get them.

ECE 6101: Parallel and Distributed Computer Architecture

This course introduced the specificities of distributed architectures focusing on the performance of such systems, bus-based systems, directory-based systems and other designs.

Two projects were required for this course. Both projects were done in collaboration with Antoine Schweitzer-Chaput.

Fall 2004 Courses

ECE 6100: Advanced Computer Architecture

This course discussed the interactions between architectural decisions and compilers. The basic architectural principles of microprocessors were discussed and the course also focused on the Trimaran compiler and used it to describe a VLIW compiler.

ECE 6451: Introduction to Microelectronic Theory

This course was an introduction to microelectronics. It also briefly discussed quantum physics.

ECE 6501: Fourier Optics and Holography

This course focused on optical transformations due to Fourier optics.

ECE 6543: Fiber Optic Networks

This course described fiber optics and communication networks.

I wrote a paper for this course which can be found here. The presentation I gave on this paper can be found here.