Graduation Information

Graduate Information Book University of Hull

This week we got rather a lot more information about our upcoming graduation, mainly from the booklet you can see pictured above.

Should all things go well I will be graduating on July 14th, 2014 (one day before my 21st birthday) at 4:30pm.

Knowing this makes it all the more real, I’m really excited :)
Danny

Undergraduate Computer Science Demonstrating

The Stylish Green Demonstrator Tee

I don’t think this would win any prizes at London Fashion Week

One of the cool things I’ve been doing alongside my own studying this year is helping other students, in Years 1 and 2, in my role as a lab demonstrator. A lab demonstrator is there to help students resolve any issues, technical or administrative, they may face during their mandatory lab sessions.

In semester one I was a demonstrator for the 2nd year “2D Computer Graphics and User Interface Design” module, which I took last year. This year they made an animated Christmas Card featuring falling snow and Santa flying in his slay.

Now, during semester two, I am a demonstrator for 1st year “Programming 2″ module in which students learn Object Oriented Programming, Windows Presentation Foundation and other fun things such as Exception Handling.

Demonstrating has been a great way to earn a little bit of money whilst talking to people about the subject I love, and every demonstrator gets the funky green tee-shirt you can see above to wear whilst we work. I would recommend it to anyone who is offered the chance to do it. :)

Danny

Introducing Dollar IDE – An Update on my Final Year Project

Dollar IDE - The Modern IDE for PHP

In the past few weeks, since the semester 1 exams in January, we third years have been blessed with some calm time without any exams to revise for or coursework to work on, just two days a week of lectures. During this free time I have been working on my final year project.

User Interface, Icons and a Name

As recently as two weeks ago I had very little to show anyone who asked to see my project due to it all being technical back-end stuff without user interaction, which was a shame as I’ve actually done a reasonable amount of work on it, however now I have developed some of the UI and finally have something I can ‘show off’.

My previously unnamed PHP IDE is now known as Dollar IDE, so called because of how all variables in PHP are denoted by a $ sign. At the top of this blog post you can see a fantastic logo which my friend, Harry Galuszka, who studies Graphic Design at Lincoln University designed for me.

The colour scheme I have chosen for the user interface and logos consists of various shades of purple,  an unusual choice for me because I don’t usually like the colour, however it is the ‘official’ colour of PHP, as you can see from the PHP.net website, and it also fits in quite well with the design language I am using, which is based on Microsoft’s Modern (formally metro) ideas.

The program doesn’t contain any bitmap images, instead I use XAML vectors, and is built using Windows Presentation Foundation meaning that the program works well on all screen resolutions and pixel densities, including Apples famous “retina displays”.

The main code editing screen isn’t ready to be shown off just yet, but below you can see some images of the “Start Screen”, which is the first window shown to the user when they launch the program. From here the user can opt to create a new Dollar IDE project, or open an existing Dollar IDE project or stand-alone PHP file. The 5 most recent projects and displayed in order to allow the user to rapidly get back to work on their website or web-app.

Dollar IDE - New Project Information Validation

Dollar IDE – New Project Information Validation

An important aspect of the start screen is its ability to inform the user of any issues in creating a new project before they continue, as you can see in the above screenshot issues are denoted by a red circle with a cross in, and fields which are OK are denoted by a green circle with a tick in.

This as-you-type validation means that mistakes can be spotted earlier, thus saving the user time and the exact cause of any issues can be determined and displayed. It’s always annoying when you enter some data into a program only to be told its wrong when you try to save… and then not be told what is wrong with it, being forced to make an educated guess. Dollar IDE gives you no such hassle.

Git Integration

Dollar IDE - Git and GitHub Integration

Dollar IDE – Git and GitHub Integration

One of the coolest aspect of my new IDE is its tight integration with the git revision control system. The program can interface with any git repository, hosted either locally or on a remote server, and has additional support for repositories hosted on the popular GitHub service.

In the main IDE window, which I will show off soon, the user will be able to

  • See which files have uncommitted changes
  • Commit files and projects
  • Merge files with conflicts
  • Pull changes from a remote server

Other Progress So Far

Other than what I’ve shown you in this very quick preview I have the following features working:

  • Correct tokenization of the most common PHP tokens
  • Complete coverage of the tokenizer with unit tests to ensure program correctness
  • A source code editing window with colour highlighted text and line numbers
  • Project loading and saving
  • File associations (to allow project files and PHP files to be loaded from Windows Explorer)

What’s Left to Do

There’s still rather a lot left to do on this project, but fortunately there’s still around another 2 months to do it in. I’m now feeling rather confident that I will finish my product on time with all of my primary functionality and a lot of my secondary functionality implemented.

I will of course keep the blog up to date on my progress.

Danny

 

Semester 1 Year 3 Module Results

Year 3 Semester 1 Module Results

Today everyone at the University of Hull got their results for semester 1 of this year, including myself.

Semester 1 this year was almost certainly the most challenging semester I have taken so far at university, as you might expect. This increase in difficulty meant I had to put in even more effort and be even more determined than in previous years — therefore I was both pleasantly surprised, and extremely happy with my results — 90% for “Data Mining and Decision Systems” and 83% for “Languages and Their Compilers”.

These grades, combined with my grades from last year, put me in a very good position to get a first class degree, which of course I’m very happy about.

I will of course keep the blog updated over the rest of this final year.

Danny

Initial and Interim Report Results – 72% and 85%

Interim Report

The Interim Report is quite big, this is just under half of it

As part of the process of completing the final year project you have to submit two, smaller iterative, reports before your final report. These are a great opportunity to get in-depth feedback on your work before submitting your final report — they’re also a good way to evaluate your progress.

Initial Report

The initial report — which is produced early on in the project, in September — outlined the introduction and context of the project, for me this consisted of explaining what PHP is, what an integrated development environment (IDE) is and then discussing what other PHP IDE solutions are on the market today.

Initial ideas of what technologies and methodologies would be used for the project were also briefly discussed based on research I did over the summer, which had to be referenced in Harvard style.

Perhaps most importantly the initial report was the time when my project title, aims and objectives were set in stone for the first time. A time plan and associated gantt chart were produced to outline which work should be taking place at which time in order to deliver a finished product by the due date for the report.

The initial report was marked by Professor Ping Jiang and he awarded me a mark of 72%, which I was pretty happy with for my first mark of the third year. :)

Interim Report

Yesterday I got back my mark for my Interim Report. The Interim Report is used to detail your progress since the initial report, and is submitted in January, about half way through your development time.

All the reports are iterative, in other words based off of the previous one. So I added in more detail about which methodologies I have been using to develop my project, updated my time plan to be more realistic and discussed the risks and ethical issues associated with the production of my IDE.

Dr. Martin Walker marked this report and I’m very happy to say that I got 85%. This gives me a good base on which to produce a good final project, especially with the in-depth feedback I received.

I will of course keep the blog updated with future developments on the final year project.

Danny

Finished Dryathlon!

Dryathlon finisher

So it’s official, I finished the Dryathlon having not had a single drop of alcohol for a month.

Thanks to everyone who donated, together we raised £132.50. The government will add another £25.00 through gift-aid, so Cancer Research UK will get just over £150 (The website used to collect money takes a small cut from the government provided gift-aid)

Lets hope that money helps some advances in our understanding of cancer, and can help some people in the future!

Danny

Semester 1, Year 3 draws to a close

Yesterday I had my last exam of the semester, and handed in my interim report for my final year project. Those two things being done signals the end of the first semester of the third and final year of my Bachelors degree. Exciting times.

This semester has been an interesting blend of very challenging, incredibly interesting and quite good fun — and though there have been a few times when I’ve felt slightly overwhelmed by work I’m glad I took the modules I did and felt I have learnt and achieved a lot!

I will receive the results for both “Languages and Their Compilers” and “Data Mining and Decision Systems” on the 24th of February, I will of course update the blog when I know what grades I have achieved.

Looking Forward

Year 3 Semester 2 Timetable

Year 3 Semester 2 Timetable

As you can see from the above timetable I expect to be spending a lot of my second semester of this year working on my final year project, an IDE for the programming language PHP.

Alongside my project and studies I will also be continuing in my role as an undergraduate demonstrator for the department of computer science. In the forthcoming semester I have been tasked with helping out students on the 1st year module “Programming 2″ which teaches object orientation and other concepts in C#.

The two modules I will be taking in semester 2 are “Mobile Devices and Applications” and “Distributed Systems Programming”

Mobile Devices and Applications is the module concerned with developing mobile apps with a good user experience, knowledge of different mobile platforms — such as iOS, Android and Windows Phone — and technologies — such as 3G, 4G and WiFi. I am aiming to do really well in this module as I have already developed quite a few mobile apps.

Distributed Systems Programming is a module about the “architectures, technologies and programming paradigms used in implementing and deploying distributed computing applications”. A distributed system is “a software system in which components located on networked computers communicate and coordinate their actions by passing messages”. I’m looking forward to this module because I really enjoyed networking in year 2.

I will of course keep the blog updated throughout the upcoming semester. Bring it on!

Danny

 

The Generation Game – A Simple Genetic Algorithm

Evolution with Green Sheep

Last night my housemate Hayley and I were talking about the Data Mining and Decision Systems module we took last semester, during that discussion the concept of genetic algorithms came up.

In the computer science field of artificial intelligence, a genetic algorithm (GA) is a search heuristic that mimics the process of natural selection, except that GAs use a goal-oriented targeted search and natural selection isn’t a search at all

- Wikipedia

Hayley explained the concept to me using the idea of an animal that is more likely to survive in its environment by blending in with the colour of its surroundings. So tonight, as a nice change from revision and work on my Final Year Project, I had a go at developing such an algorithm — with a somewhat humorous undertone. The result of this undertaking is a little tech demo called “The Generation Game – A Simple Genetic Algorithm”.

In the demo it is advantageous for a sheep to be green, in order to fit in with its field. However at the beginning of the game the ten sheep in the initial flock are of completely random colours.

Turns are taken, in order by

  1. A Flock of Sheep, which breeds, producing 1 new sheep for every two sheep in the flock (if there is a left over sheep it doesn’t breed). Sheep produced by the mating process are the median colour of its two parents.
  2. A Wolfpack which depending on its hunting ability can eat 10% – 60% of the heard in any given turn

The closer a sheep is to the colour green, the less likely it is the be a casualty of a wolf attack (however there are other contributing factors, and a green sheep can still be killed).

As you can see from the gif image above if the initial flock has a green sheep amongst its ranks then evolution takes place (survival of the fittest, like how Darwin described it) and within just 20 generations the flock consists of only green sheep.

Another interesting situation is when there is no green sheep in the initial flock.

Evolution with No Green Sheep

Evolution with No Green Sheep

As you can see from the example above which starts with no green sheep the flock gradually becomes a light brown colour, this is the closest colour the flock could get to green with the genes avaliable in its gene pool.

This is just a simple tech demo (written in C# with XNA) to prove to myself I understood the concept, but it worked out quite well and I think its cool. I’ll be cleaning up the code and adding some comments, so be sure to check out the repository containing the program on GitHub.

Thats all for now,
Danny

Goodbye 2013, Hello 2014

2013 was another year that simply flew past.

It’s strange to think that it was almost 3 years ago that I first made the journey from Dunstable to Hull and started my degree in Computer Science.

Last year was an important year, and this one will be even more so — here’s a roundup of what happened, and a plan for what is to come.

2013

What happened in 2013:

  • I passed my second year with an average grade of 85%
  • I had my first experience of commercial development as part of a business over the summer
  • I co-developed QuickSync — a platform for syndicating stock levels between different systems
  • I chose and started developing my Final Year Project, an Integrated Development Environment for PHP
  • I started considering alternative choices for my masters (and hopefully future PhD) and received some offers (more on that later in the year)
  • I had a lot of fun with my awesome friends at uni, and some students who spent a semester here from America.
  • I started arranging and saving for a month-long holiday to America with my housemate Rob (including meeting up with aforementioned Americans!)
  • I did loads of cool events with Microsoft, including going to Campus Party
  • I had blue hair for most of it!

2014

What I expect (and hope!) will happen in the new year:

  • More sensible hair
  • Graduating from The University of Hull with a first class Bachelors of Science Degree in Computer Science
  • The release of my final year project as an open source initiative
  • Lots of preparation for my masters degree, including lots of maths revision and learning Java (it seems like every other university mainly teaches using Java as opposed to C#)
  • Moving from The University of Hull to another university for my Masters Degree
  • An awesome road-trip around Arizona, Nevada and California from Phoenix to San Francisco

I think that will take most of my time!

I hope you all had a great time in 2013 and wish you a fantastic 2014. Thanks to everyone who made 2013 such a special year for me, of whom there are too many to list — you know who you are. :)

Danny

I’m a Dry Athelete – Support me!

Dryathlon. Please Support Me.

I’ve seen a lot of adverts for Cancer Research UK’s Dryathlon appeal recently and thought it would be a nice thing to do!

The premise is simple, no alcoholic drinks for a month — for me that’s from January 4th – February 4th 2014.

I think that the usual post-exam drink will be missed, but other than that it will be beneficial for both me and Cancer Research UK, which is an excellent charity — the research they do benefits everyone.

If you would like to sponsor my sobriety please click here to donate via JustGiving, alternatively, if you’re in Hull, come find me in person with cash and I’ll get the money on JustGiving for you.

At the moment I have raised 70% of my target of £100, but it would be great to raise even more if possible!

A big thank you to everyone who has already donated. :)

Danny