Java
JVM Hello World
Writing a “Hello World” program is often a rite of passage for a software engineer when learning a new language.
If you’re a Java developer, you might even remember the first time you typed public static void main(String[] args) in your editor of choice. But did you ever wonder what’s inside that “.class” file that the compiler spits out? Let’s look at how we can write a JVM “Hello World” by creating a class file programmatically.
We’ll work through creating a class file for the following simple Java Hello World application.
Advent of Code 2018
I am taking part in Advent of Code 2018 and you can find my answers on my Github, written in Scala.
Advent of Code 2017
I am taking part in Advent of Code 2017 and you can find my answers on my Github, written in either Java, Scala or Python.
Coding Tasks
You can find on my Github some answers to various coding tasks from interviews and/or online coding test websites, coded in Java, Scala and/or Lisp.
Static Source Code Analysis Tools and their Application to the Detection of Plagiarism in Java Programs
This project develops a system for detecting plagiarism in sets of student assignments written in Java. Plagiarism is viewed as a form of code obfuscation where students deliberately perform semantics preserving transformations of an original working version to pass it of as their own. In order to detect such obfuscations we assume we have a set of programs in which we attempt to find transformations that have been applied. We investigate tools for static analysis and transformation of Java programs to build a system for plagiarism detection.
Artificial Ants: Simulating Ant Behaviour and Investigating Applications In Computing
Ants are excellent route finders, with the ability to find the shortest path between their nest and a food source, by using pheromone trail clues to organize themselves collectively. By applying behaviour observed in ant colonies to the field of computing, these ant-based techniques can provide a base for network routing algorithms, as well as algorithms to solve graph problems such as the travelling salesman problem.
