Flight Control Tower Program
Context: Professional Project
Tasked with developing an application to manage flight events. Created a maven project written in Java. TDD used for multiple components,
with Javadoc included in every functional file.
Below are some links to view the program:
-
Source code for the full program can be downloaded here.
-
Documentation for the program can be viewed here.
December 2022
FYP: Student-Project Matching Program
Context: Academic Project
Details: BSc (Hons) Computer Science - Final submission of Project Dissertation (Final Year Project).
Outcome: Achieved a High First, went on to be awarded a First in the FYP overall and graduated with First Class Honours.
-----
Topic: Algorithms for Economics & Social Choice
Focus: Stable Matching & Deferred Acceptance
Supervisor: Dr. Yunkuen Cheung
Created a custom variation of Gale-Shapley’s Deferred Acceptance algorithm,
expanded to be applied to a many-to-one setting; in particular, matching students to (final year) projects.
The final outcome of the FYP is a Student-Project Matching Program utilising this algorithm.
Some main achievements include the following:
-
Innovative adaptation to a many-to-one system by implementing an
acceptance criterion rather than a preference list for proposées in the algorithm
(and allowing for a preference list of variable length in the case of proposers).
-
Maintaining Gale-Shapley’s theorems with careful algorithmic design considerations:
thereby remaining “stable” and “optimal” despite extensive increase in complexity.
Most critically, students are still placed in best achievable matching.
Final program was written in Java with GUI in Java Swing.
Deep technical decision making was maintained as a forefront, with systematic,
software engineering practices upheld throughout development
(Javadoc, TDD with JUnit 5 Jupiter, Google Checkstyle, etc.), and high cohesion, low coupling software design.
Feedback indicated that this algorithm may be applicable to
project allocation in the Department of Computer Science at RHUL in the future.
Below are some ways to view the program:
-
A screenshot of the final program can be viewed here.
-
The UML of the final program can be viewed here.
March 2022
PLIP - A Polite Language for 2D Image Processing
Context: Academic Project
Details: BSc (Hons) Computer Science - CS3840 Software Language Engineering.
Outcome: Achieved a First, and went on to be awarded a First in the module overall.
Created a novel programming language for 2D image processing using the ART specification
(ART is a tool for specifying the syntax and semantics of language processors).
This involved the following tasks:
-
Defining an internal prefix syntax for the domain-specific language (named PLIP).
-
Designing a language specification and an external syntax for PLIP.
-
Writing ART BNF grammar for PLIP, with the use of GIFT operators to parse programs written
in PLIP's external syntax (effectively an external-to-internal translator).
-
Writing ART elided-SOS rules that implements an interpreter for PLIP (conforming to PLIP's specifications).
-
Writing ART BNF grammar for PLIP, to form the basis of an attribute grammar interpreter
(conforming to PLIP's specifications) and decorating the attribute grammar interpreter
with actions written in Java (JavaFX) to implement the interpreter.
The theme for the external syntax is an over-the-top "polite" articulation, which is
why this programming language has been named "PLIP".
PLIP is able to perform full arithmetic (BODMAS), while featuring standard commands (such as 'if'
and 'while' statements), and it can load and manipulate 2D images (flipping, rotating, contrasting, etc).
Further details on PLIP can be found in the following:
-
PLIP's Part 2 Write-Up, which can be viewed here.
-
PLIP's Informal Language Specification, which can be viewed here.
-
A real PLIP program to show off syntax, which can be viewed here.
Note that PLIP's interpreter is needed to run this program.
January 2022 - March 2022
SSHL Hacking Video Game
Context: Competitive Project
Outcome: Won Best UX Design.
Created a console-interface "hacking" video game as a part of Royal Hackaway v5, Hackathons UK.
The game was designed to emulate the popular, stereotypical culture of hacking portrayed in media.
Built simple pseudo-attack commands along with in-game missions to emulate the experience of being an hacker.
Developed and written in C# using the Unity Engine within 26 hour time constraint.
Collaborated over Git. Worked in a team of four.
My primary areas of focus were on the Log section of the console and on scripting missions.
Won the "Best UX Design" category.
The project can be viewed on my GitHub.
February 2022
Google Software Dev Coding Challenge
Context: Professional Project
Presented a google work sample as a part of the Bright Network Internship Experience for Technology.
Given pre-written unit tests and a software specifications document,
our task was to develop a YouTube application in the terminal, with core functionality such as:
-
Playing / pausing / stopping / viewing current videos
-
Creating / deleting / adding to / removing from / showing all playlists
-
Searching for videos and flagging videos, etc.
Required to follow Test-Driven Development (TDD) methodology.
Project was written and completed in Java, earned certificate.
The project can be viewed on my GitHub.
July 2021
RetroKings Chess Video Game
Context: Competitive Project
Outcome: Won as Runners-Up.
Created a 2D Chess video game as part of Royal Hackaway v4, Hackathons UK.
The game was designed to be an enchanced version of traditional chess, introducing power-ups that can be accessed by a point system.
This fundamentally changes the strategy in which the game is played. Some of the power-ups in the game include:
-
Invincibility - For one turn, any color can use their accumilated points to make any piece of theirs invincible.
-
Double Turn - Any color can use their accumilated points to play two moves in their turn (one use only).
Designed and written in C# using the Unity Engine, within 30 hour time constraint. Custom pixel art sprites drawn with Piskel, custom chiptune sounds produced with Bfxr.
Worked in a team of two against teams of five. Won the position of Runners-up.
You can download and play the video game for windows here.
February 2021
Minecraft Java Plugins
Context: Personal Project
Created numerous server plugins for popular video game Minecraft.
These plugins were designed to make creative and entertaining, yet fundamental changes to the game
(for example stronger enemies, new behaviours such as arrows exploding, etc).
Written in Java, using Spigot API.
Source code for a lot of these simple projects can be found on my GitHub,
and completed .JAR projects can be downloaded below:
-
OPPotions - Created special potions with custom, powerful behaviours (such as summoning lightning, explosions, etc). Replaced particular mob drops with these splash potions.
-
TippedArrows - All arrows shot by skeletons will have a random, potion effect (from list of undesirable effects).
-
FoodHalfHeart - Eating any consumable (food) takes player health down to half a heart. Notable exceptions include milk & potions.
-
ExplodingArrows - All arrows in the game will trigger an explosion upon collision, regardless whether it be from a player, a mob, a dispense, etc.
December 2020
Mocca Coffee Website
Context: Professional Project
Created the website for the subsidiary company of Capventures, Mocca Coffee.
Written in HTML, CSS, JavaScript and PHP, using a Bootstrap Framework.
Screenshots of the website can be viewed here.
June 2020 - July 2020
Personal Portfolio Website
Context: Personal Project
Created a personal portfolio website, to more extensively highlight my professional information, activities, achievement, etc.
Worked with an existing Bootstrap Template, scripted in HTML and CSS.
The website is hosted live using GitHub pages over here,
and on my domain haarisiqbal.com.
However if you're reading this, chances are you're currently browsing the site!
July 2020
Student Database Application
Context: Academic Project
Details: Level 3 Computer Science - 3COSC002W Computer and Software Development.
Outcome: Achieved a mark of 100%, and went on to be awarded a Distinction in the course overall.
Created a full-fledged standalone database application with a GUI frontend
(featuring an image display) and a MySQL database backend. Notably, good practice
was learned and implemented during development despite novelty to software design.
Process included substantial GUI and Database testing.
Written in Python3, with Python Imaging Library (PIL) and Tkinter.
Further details on the program can be found in the following:
-
A screenshot of the final program can be viewed here.
-
The Final Report written for this project can be read here.
January 2019 - April 2019
"UP" · Video Game
Context: Academic Project
Details: IB Middle Year Programme - Personal Project
Outcome: Passed (moved to IGCSE's).
GameMaker Studio video game designed and built from scratch as MYP Personal Project.
Primarily worked with GameMaker interface, wrote GML code for entity movement and enemy behaviour.
The project features custom made sprites and audio, with a carefully designed objective (beginning and end).
Further details on UP can be found in the following:
-
Screenshots of the final game can be viewed here.
-
The game itself can be downloaded and played as an executable for Windows here.
October 2015 - March 2016