Table of Contents

Description

In this repository, you’ll find the various programming projects and assignments I have worked on while at McGill as either a Computer Engineering undergraduate or a Computer Science graduate student.

Each project has its own README that contains more details for either installing, running or just clarifying more about the project.

Note: COMP and ECSE are course code prefixes. COMP courses are offered by the School of Computer Science whereas ECSE courses are offered by the Faculty of Electrical, Computer and Software Engineering. Also this is a work in progress, existing or new work is added periodically to this list.

Artificial Intelligence

Class code: COMP-424

Compiler Design

MiniLang Compiler

GoLang Compiler

My team and I wrote a compiler that compiles a major subset of the GoLang language to Java. We developed the program in C with the Bison and Yacc toolchains.

Source code and instructions.

Computer Vision

Class code: ECSE-415

Assignments

I used Python 3.7 and OpenCV to accomplish computer vision tasks involving:

Final Project: Vehicle Classification and Localization

This was a team project of 4 people to train different machine learning models for vehicle classification and detection. Our team used Python 3.7, OpenCV, Scikit-Learn, and Keras. We used the MIO-TCD vehicle dataset for training our models to perform vehicle localization and classification. A final report accompanies the project.

I worked on developing a machine learning pipeline involving Histogram of Orientation feature extraction and SVM classifier training and evaluation which can be viewed here.

My team also trained and evaluated the YOLOv3 model for vehicle classification and bounding box localization. Here’s an example output from the localizer:

Source code and instructions

Reinforcement Learning

Course code: COMP-767

Final Project

Source code and instructions.

Telecommunications Project: DNS Client

Class code: ECSE-489

This was a team project for a telecommunications and networking laboratory course. My teammate and I implemented a command line Domain Name Service (DNS) client in Java. The client supports A, MX and NS query types.

Source code and instructions.