Dr Flanagan Colin

Project Supervisor: Dr Colin Flanagan Project No: CFlan 1
Project Title: Python/Cython Just-In-Time Compilation using LLVM
Course Suitability: BE / BSc

Project Description:

Python (https://www.python.org) is a popular high-level, interpreted, scripting language. As it is interpreted rather than compiled, it is slow. Cython (http://cython.org) is a "Compiled Python" which adds type-tagging to Python variables, and compiles to machine code by first translating to C, then using the system C compiler to create machine code, a slow and cumbersome process. LLVM (http://llvm.org) is an “infrastructure” for building compilers. It defines an intermediate code language and a set of optimizations to transform this into very efficient machine code for a large number of processors (IA32/64, MIPS, ARM, Sparc, etc.).

This project will investigate how to use the LLVM compiler infrastructure (http://llvm.org) to translate directly from Python/Cython code to efficient machine code "on the fly" (i.e., Just in Time / JIT). This will involve identifying a subset of Python/Cython to compile, and writing an AST (abstract syntax tree) builder + LLVM intermediate-code generator for it.

Of interest to people who really like programming and are interested in how modern optimizing compilers work. This is a very challenging project.

 

Project Supervisor: Dr Colin Flanagan Project No: CFlan 2
Project Title: Machine Translation using Deep Learning Neural Networks
Course Suitability: BE / BSc

Project Description:

The idea is to build a deep learning recurrent neural network to carry out translation between languages. See: https://medium.com/@ageitgey/machine-learning-is-fun-part-5-language-translation-with-deep-learning-and-the-magic-of-sequences-2ace0acca0aa#.cq7402mf8

Of interest to people who like programming and want to find out about modern artificial intelligence and machine learning. This is a very challenging project.

 

Project Supervisor: Dr Colin Flanagan Project No: CFlan 3
Project Title: Face Recognition using HoG Features and Support Vector Machine Classification
Course Suitability: BE / BSc

Project Description:

Face Recognition is the problem of using a machine to isolate and recognise faces in a picture. Face isolation is mainstream (Viola-Jones algorithm) and is commonly implemented in smartphones. In this project we will look at more reliable ways to isolate faces in images using “Histogram of Oriented Gradient” (HoG) techniques, and then investigate approaches to matching the isolated faces against a know set in a database.

See https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-c3cffc121d78#.wc96awz9b

Of interest to people who like programming and want to find out about machine vision and artificial intelligence. This is quite a challenging project.

 

Project Supervisor: Dr Colin Flanagan Project No: CFlan 4

Project Title: Pipelined CE4717 Stack-based Microprocessor

 

Course Suitability: BE / BSc

Project Description:

A successful project from 2014/15 designed a hardware implementation of the stack-based microprocessor from module CE4717, coded in in Verilog and synthesized it to a “bitstream” file which was subsequently downloaded and run on a Xilinx FPGA. In this project a higher-performance implementation of the microprocessor will be implemented by using pipelining to overlap instruction execution. The microprocessor will be coded in Verilog and tested on an FPGA.

Of interest to students curious about computer architecture, Verilog coding and FPGAs. The real challenge here is to investigate ways to make a pipelined version of a stack-based processor efficient. Moderately challenging.

 

Project Supervisor: Dr Colin Flanagan Project No: CFlan 5
Topic/Keywords:

I am interested in discussing possible projects in the areas of:

  1. Computer architecture,
  2. Computer/machine vision,
  3. Machine/deep learning,
  4. Compilers/LLVM.

But please check out my specific project offerings first.