Categories
University

Undergraduate Computer Science Demonstrating

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

Categories
University

Second Year Roundup

Well, my second year is done and dusted. I’ve had a thoroughly great time, and learnt a lot too! :). I thought it might be nice to have a post to say thank you to everyone, and to have a list of all the results I achieved, for future record. So below you can see a table of all my results, and my average for the year:

Module ACW 1 ACW 2 Exam 1 Exam 2 Overall
Simulation and 3D Graphics 90% 90%
Advanced Programming 100% 75% 90.85% 88.24%
Networking and Web Technologies 80% 100% 85% 88%
2D Graphics and User Interface Design 86% 86% 86%
System Analysis, Design and Process 87.5% 72% 80%
Electronics and Interfacing 71.25% 84% 77.62%

This means my average for the year is:

84.97%

Which is a high first class, and a grade I’m really happy with :). Thanks to everyone at the University of Hull for making this year so great, particularly those in the Department of Computer Science.

Danny

Categories
Modern Experience Development Programming

Solar System Simulation is the 8th best app for Students and Teachers on Windows 8

Today I was looking at the newly revamped developer dashboard on www.dev.windows.com where you can see a lot of stats about the applications you have uploaded to the Windows 8 Store. Whilst I was having a look round I noticed that you could see which web pages linked to your application in the store. One of the websites which had given my app the most “hits” was one called Fractus Learning.

I thought I would head over to their website and have a look at what they had to say about my application and I was pleasantly surprised to see that they had written a list about the Top 10 application for Students and Teachers, and my app featured at number 8 — how apt.

In particular Fractus said the app is:

Ideal for older students, The Solar System Simulation allows users to explore the affects of gravity on land masses in space.

I was especially pleased with this after reading what Fractus are all about:

Fractus Learning is a growing team based in Dublin, Ireland working with educators around the globe to promote cutting edge technology skills and tools. We strive to build amazing learning environments where students are engaged and inspired and classrooms that are a joy to teach, work and learn in.

Our goal is to motivate, excite and enhance the teaching skill set with the use of technology, making sure educators are always on the cutting edge.

So you could say they know what they’re on about!

Thanks Fractus, look out for some excting updates to the simulation soon!

Danny

Categories
University

Year 2 Semester 1 Module Results

Today I received my module results for my two “short and thin” semester 1 modules via the brand new MyAdmin page on the Univeristy of Hull Website, which now features a responsive design meaning I could check my results on my phone with ease.

I received a grade of 86% for ‘2D Computer Graphics and User Interface Design’ and a grade of 80% for ‘Systems Analysis, Design and Process’. Both grades are high firsts and I’m very pleased with both of them, especially as these are the first results we have got back that actually count toward our final degree qualification. A great start, I’m sure you’ll agree.

Thats all for now,
Danny

Categories
Programming University

2D Graphics Solar System Simulation Coursework Result

I’ve written a few posts now about my Solar System Simulation — also known as a JavaScript Orrey — Coursework for 2D Graphics. It was the coursework I’ve been most enthusiastic about since I’ve got to university so I was anxious to get my result.

I’m very pleased to say I got a grade of 86%. This is a high first class.

Because I’m pretty confident I did quite well in the other half of the module, User Interface Design, I think I should have a high first class for the Module as a whole, which I’m very happy about! Of course I will update this blog when I get my module grades back on the 18th of February.

The lecturer who set this coursework, Dr. David Parker, provided me with some really useful feedback, saying:

This was a well featured piece of work, I also love what you did turning it into an app (though that isn’t reflected above).

Some of the code is a little over complicated and you could put some thought towards how to make it simpler. This also has maintainability consequences.

Taking that into account I intend to spend much more of my programming time working on refactoring my code to make it easier to understand and maintain.

I was also very pleased that Dr Parker described my use of SVN, a subversion system used to keep track of changes to software source code over time, as the best he had seen. 🙂

Danny

Categories
University

User Interface Design Exam

On Friday I had an Exam for the 2D Graphics and User Interface Design Module. Because the 2D Graphics portion of the module was assessed in a  coursework — the Solar System Simulation — this exam was just on the user interface design half.

This revolved around things such as different types of buttons, forms of feedback and how to present errors. It also included lots of drawing State Diagrams.

All in all it was an interesting half module and the exam went very well 🙂 I shall update this blog when I get my result

Danny

Categories
Programming University

2D Graphics Coursework – Solar System Simulation now on Windows 8

Before Christmas I submitted my Assessed Coursework for my 2D Graphics and User Interface Design module, a  2D Orrery (or Solar System Simulation in laymen terms) using the HTML 5 Canvas Tag and associated JavaScript API’s. I think I did pretty well, as I implemented every feature outlined by the specification to, what I feel, was a high standard.

6 days after the hand in date my friends Rob, James and I went to ‘Appy Christmas, an event set up by Microsoft to encourage the development of Windows 8 app in the holiday period. Whilst there I ported my application from a browser based webpage to a fully featured WinJS Windows 8 application. When I told my lecturer, Dr. David Parker about it he seemed interested in the ease of the porting experience, so I shall outline it here.

  • I added all my “Business Code” and classes by just adding the .js files to the solution
  • I edited the HTML page to make it fit better, as scrolling pages don’t look great in apps — all of the Windows 8 style came for free with no work

And that was it! At this point the application worked, however it wasn’t very touch friendly and the Koch Snowflake fractal algorithm would lag on some lower powered arm devices, including the Microsoft Surface RT, so I made the following enhancements

  • Lowered the amount of iterations my fractal function went through, lowering the computational power required
  • Added an “App Bar” to hold buttons which controlled all of the functions — the coursework spec asked that all functions were called using keyboard input, so this made it much more usable on a touch screen
  • Added support for the share charm. When you press it a bitmap image is created from the canvas and sent to whatever application you chose.

If you want to play with the application now, you can do so by downloading it from the Windows store here.

Below you can see some screenshots of the application in action.

I hope you enjoy using the solar system.

Danny

Categories
Programming University

2D Graphics Coursework – A JavaScript Orrery

I apologize for the lag in the above video, its honestly not my code! 😉 It’s the free screen recorder program I used being iffy.

For the last few weeks I’ve been steadily working on my coursework for the “2D Graphics and User Interface Design” module. We’ve been tasked with developing a digital orrery using the HTML5 canvas tag and the associated JavaScript drawing API’s. “What is an Orrery?” I hear you ask, Wikipedia to the rescue:

An orrery is a mechanical device that illustrates the relative positions and motions of the planets and moons in the Solar System in a heliocentricmodel

Heliocentric just means that the planets move around a stationary sun.

The finished, final version of the product will have gravitational forces effect the positions of each planet, allow the user to invent new planets and place them in (effecting the courses of all the other planets!) and have an additional drawing mode in which all of the planets are made to look like pretty Koch Snowflakes 🙂

In the above video you can see what I have achieved up until now, with another month remaining to get it finished. I have

  • 4 Drawing modes (Arc mode, Line Mode, Sprite (image) mode, Animated Earth Mode (Using spritesheets))
  • Independent rotation speeds for each of the planets
  • Keyboard controls to decide which mode is shown

I have the following left to implement

  • Gravity
  • User added planets
  • A moon orbiting earth
  • Elliptical orbits
  • Koch Snowflake drawing mode

I hope to get most of these done this week 🙂

One of the interesting parts of the assignment has been the programming language used itself. JavaScript, though based on the same family of programming languages as my preferred language C#, is quite different to the aforementioned language in some pretty important ways, for example Object Orientation doesn’t come naturally, instead the language uses the Prototyping paradigm, which takes a bit of getting used to if you are an OOP programmer.

JavaScript is also the first loosely typed language I have been formally taught, though I did write in PHP for a few years before university which is also loosely typed. A loosely typed language such as JavaScript doesn’t have hard and fast rules on what can be stored in a variable, for example in C# if I write:

public int WholeNumberVariable = "string";

the whole program will not compile, because putting a string in a variable that has been initialized to hold integer numbers is illegal. In JavaScript when you initialize a variable you can’t assign a type, so It can hold anything

var WholeNumberVariable = "string";
var IExpectANumericResult = WholeNumberVariable / 2;
//I'm going to be a huge bug! I expected a number to divide by 2 but now I'm trying to divide letters! This makes no sense!

This can cause some unexpected behaviour, also known as bugs. So it’s fair to say I much prefer Strongly typed languages.

But, I’m getting used to JavaScript and its numerous quirks, and actually rather enjoying it. I hope to report back soon with some additions to my orrery to show you!
Danny

Categories
Programming University

Second Year Starts

Yesterday I officially started back at The University of Hull for my second year in my Masters of Engineering Degree in Computer Science. This came as a bit of a shock to the system after a very long summer without education and a fantastic freshers week, but I’ve been enjoying every second 🙂

Advanced Programming

The first lecture I had on Monday afternoon was for the Advanced Programming module and was very interesting, C++ looks similar to C# on the surface but there’s a lot of differences.

The lecturer for the module and head of Department, Warren Viant, even said that a year was long enough only to make us “OK C++ programmers, not great ones” because its a hard language to learn with lots of intricacies.

Right from the offset there was a totally different attitude than last years Programming lectures in which we focused on getting things working well with very readable code even if it wasn’t the most efficient way of doing things — this year Warren wants us to focus on optimization and getting code to run as fast as possible because the requirement for real-time programs is the main reason for using C++.

Artificial Intelligence

Next up was artificial intelligence, a module I’m not actually enrolled on and therefore a module I won’t get a grade for but one I’m attending because I find it interesting and want to further my knowledge as much as possible whilst at university.

We started off by discussing what exactly intelligence is and weather or not it would be wrong to turn off (i.e. Kill) a computer which asked you not to because it was intelligent. We then went on to talk about Prolog and how AI programming is a totally different paradigm to any other programming we’ve done before.

The only transferable skill you have from any other form of programming is the ability to touch type

I’m looking forward to learning a totally different way of thinking 🙂

System Analysis, Design and Process

System Analysis, Design and Process is about the business approach behind creating software. We started off the module by talking about how we would work out how long a project would take us to do, how much it would cost us and how much we would charge the custom based on a certain specification. It’s actually quite a difficult thing to do.

We also spoke about how and why so many software projects fail and only 37% were successful last year.

Although this module seems very similar to last years Software Engineering module I’m looking forward to learning more of the skills required to make a business out of building software 🙂

Electronics and Interfacing

Electronics and Interfacing is all about how we connect software to the actual hardware, and how better to start off a module like that then to learn about how electricity works? 🙂 We spent most of the lecture doing that but we started off with a brief overview of what is to come: Infrared Wirelessly Controlled Robots. I can’t wait to get started properly!

2D Graphics and User Interface Design

Finally in 2D graphics and user interface design we had an introduction to the history of computer graphics, which started with a great video about the cold war and nuclear bombs, and then thought about all the use cases for 2D graphics — ranging from CAD and Data Modelling to Games and CGI for Movies.

I’ve said it a lot in this post but I’m really looking forward to learning more about each module this year and am having a great time so far 😀

Danny