Assignments

Posted by: Pyro  :  Category: CompSci

It’s that time of the university year, where the essentials of each module have been taught, and the assignments have come into play. 1 month ago, I was given my CS10310 (Theoretical Computer Science) assignment, and last week was given my CS10610 (Databases) assignment.

The CS10310 Assignment was handed in at the beginning of the month, and I did very well. Got 46 marks out of 60, equivalent to 76.6% and it landed me a solid A grade. So I was happy with that.

CS103 is all about languages and grammars, and how we define them on a computer and the practical applications of regular expressions etc. It also includes some basic set theory (a branch of mathematics) since language can be viewed (theoretically) as a sub-set of a much higher order language which defines the syntax and grammar structures for any spoken language in existence. As far as I know, no such definition has yet been found, although several attempts have been made.

The assignment for this module required me to demonstrate my knowledge of Set Theory, of different kinds of grammar and different types of languages (regular expressions, (non) deterministic finite state acceptors, and Backus Naur Definition Format). All in all, I thoroughly enjoyed doing this assignment, and I became an avid perfectionist in this. At one point I re-wrote a question at least 7 times before I was satisfied with it. And clearly, the A grade was a direct consequence of the work I put into this.

The CS10610 Assignment had me reading through the specifications several times over, because it seemed too simple. I thought I must’ve missed something. Eventually though, after a few emails to my databases tutor, I cleared up any ambiguities and grey areas and cracked on with work.

This assignment dealt with the methods of designing a database. The first stage before implementation. Unfortunately, we are required for assignment 2 of this module (which hasn’t been released yet) to implement the database in Microsoft Office Access 2007, which is a hateful piece of software. But there we go. (SQL for the win!)

The scenario presented was that you had been contracted to set up a database system for a dance school that specialised in Scottish Country Dancing. They had provided you with various documents and leaflets to give you an understanding of the data required to be in the database system. Essentially, I had to design a database that would organise a list of bands specialising in Scottish country music, a list of songs that would be performed, and the concerts that would be staged. A fairly simple concept really.

Even though I found the assignment exceptionally simple, I still put 100% into it, and did a thorough job. I was required to make observations of the data, and point out elements that could intefere with database design or could be used to define relationships between the tables. Secondly, I had to describe the tables I would be creating, and specify the fields (categories) that were to be used. I then had to “zoom in” on these tables and specify in detail the fields. I.e. what type of data was it? (Text, date, currency etc) and say which fields were primary keys (the field which uniquely identifies each database entry so that there is no redundancy or unnecessary duplication of data) and which were foreign keys (primary keys which have been imported from another table in the database). I then had to draw a diagram to specify the relationships between the tables in a visual format (the idea being to make it easier to implement if you can see what you are doing). Finally, I had to specify the possible candidates for primary keys, and use reason and logic to explain why I believed my choice of primary key was the best one for that table.

Once again, I threw myself into the assignment, and as a result, have a fairly clear idea of how to do things when the implementation phase comes out in assignment 2 for CS106. I handed the assignment in at 13:00 sharp earlier today, and am eagerly awaiting my results.

Jenna and Coel, if you ever get around to reading this in the future, doing work as early as possible, and giving it everything you have *does* work and produces exceptional results. So when either Dad or Mum have a nag at you to get on with your work, remember this. They are right. It is so much better to do the work earlier without a deadline looming just around the corner, than to be lackadaisical and say “I’ll do it tomorrow” and then have pressure to get it done when you realise that a lot of work needs doing in a short period of time. The latter path means you’ll be stressing, and you won’t be thinking properly, ergo the quality of your work goes downhill exponentially. Also, it gets worse because you’ll start rushing, and before you know it, you’ve been blanking out staring at your assignment for an hour and haven’t achieved anything.

It took me long enough to learn, and I hope you don’t make the same mistakes that I did.

Until next time :)

It’s been a while

Posted by: Pyro  :  Category: CompSci, General

Well, I haven’t been around for quite a while, and it must be said… a lot has happened in that time.

I am now doing straight Computer Science in Aberystwyth University, and so far, am enjoying it immensely. For one, I’ve stopped taking my laptop to university where I possibly can, to avoid the distraction of the internet during lectures, and as a result I am now remaining fully engaged during said lectures.

I am doing Databases, which is more fun than I thought it would be as we are exploring so much more functionality than I ever did in Secondary School. For example, in school, the most we did was create a few database tables, set relationships between the tables, represented the tables in a form threw in some buttons, and if we got really creative, set a password on the database. However, in university, we will be exploring all the different types of relationships (and why one type is more useful in a particular situation etc). We will be setting multiple user access levels, so that only users with the correct privileges can view database tables containing sensitive information such as bank details etc. Lastly, we will be learning about how databases actually work behind the scenes; how we get the encrypted data through various Database Management Systems to be presented in a shiny graphical interface on your screen; how different types of queries sort through the data in different ways depending on what type of query you use. Quite a lot to look forward to really. The only downside is that we are using Microsoft Office Access 2007, which is software which I loath because it’s user interface is so obscure, and there is no real easy way to edit something you’ve done wrong. You have to pretty much wipe entire modules of your database and start them again.

I am doing Introduction to Computer Hardware, Operating Systems And Unix Tools which is brilliant as the lecturer is really funny and we all get to learn some quite powerful tools built into the Unix Command Line as well as detailed knowledge of various parts of the everyday desktop computer. I have been using various forms of Linux and Unix for a while now, and whilst I enjoy Microsoft Windows as an operating system for it’s ease of use, I also love the challenge presented by some UNIX and Linux distributions in learning how to use them. A lot of Linux distributions (such as Ubuntu, Fedora and Mint Linux now sort of come “out of the box”; as in, you click install, choose a few settings and off you go, done! Some distributions such as ArchLinux require the user to extract the source code from various compressed files and assemble the operating system purely from command line. Distributions like Gentoo require the user to extract seemingly nonsensical data from compressed files and compile them before assembling. This can be extremely time consuming. The last step is Linux From Scratch, where (as the name suggests) you are given the essential system files required to run a stable kernel, and you have to write, compile and assemble your own system, again from command line. One thing that separates UNIX/Linux from Windows is that the Terminal command line is so much more powerful and efficient than the CMD/DOS command line.

Finally, I am doing a module known as Theory of Computation, which is fantastic, as we consider the rules and grammar of various computer languages both high and low level (high level is a programming language that we can understand, low level is language that the computer can understand, i.e. binary) and how compilers work (compilers are the tools used to translate our high level programming into binary code that the computer can understand. Different to a translator however*). I find this module very interesting since I am a linguist enthusiast anyway, and this enjoyment extends unto the languages of machines. So I’ve been told, being able to understand the grammar of a human language and that of a computer language is essential to Artificial Intelligence researchers in trying to establish common factors and bring the AI closer to passing the Turing test.

Another part of university life which is quite amusing is that despite my best efforts to concentrate solely on my personal studies, I’ve ended up learning half of the second year material anyway. My perfectly valid excuse for this, is that a lot of my friends have been faced with some rather difficult mathematical equations, and have turned to me for help in understanding them (as I have a fairly solid Mathematical background). Naturally, I couldn’t help them when these equations were just thrown at me… they could mean any number of things. I had to know the context in which these equations were being used. So I now know the basics of how grayscale images are broken down into comprehensible chunks of code, and how a computer calculates what shade pixels should be based on the shade of the nearest pixel or from relative proportions of shades of surrounding pixels in conjunction with the varying distances between them when an image is resized or rotated. Whack in a bit of probability density theory and the computer can also calculate the probability of a pixel being a certain shade etc. I’m going to get a headache when I see the equations needed to process coloured images!

Anyway… that’s enough from me for now. As you can see from the copious amounts of writing, I am clearly enjoying my time at university and am learning a lot from it. I hope you all are well and that you are enjoying yourselves.

* A compiler will go through the whole code, applying rules and filters to make sure that what you have input is valid and legal code before translation into machine code, wheras a translator will just go through your code line by line translating to machine code as it goes. Use of compilers is slower than use of translators but also a lot safer. Bad code run through a translator will be translated without question, and if run could cause serious computer problems when the processor starts reacting to the code in strange ways resulting in loss of data, seg faults etc. Compilers are basically full of filters to make sure none of this malignant code gets through.

More skating ^_^

Posted by: Pyro  :  Category: General

Well… I have to say, I have been uninspired and reinspired to keep skateboarding all in one week.

First of all, I was getting really annoyed at my lack of progress at the skatepark, but then when my mate JAG produced a video of the two of us (check it out on his blog HERE)  I actually thought it looked pretty swish ^_^

So, he was getting down with some decent vert stuff, and I was failing at vert stuff, and eventually I just ended up recording all my Mullen-esque style tricks.

I have to say though… I really don’t like filming etc. I feel it takes away my freedom as a skateboarder, especially when I’m not a consistently good skater. If I knew I was quite good, and could do whatever I like whenever, I wouldn’t have a problem cos I’d just keep cruising in confidence. However, as I’m *not* very good, I feel almost a kind of peer pressure when being filmed. It’s weird…

So I’ll probably lay off filming completely for quite a long time. This may not stop some of my friends, who may film me anyway, and dive into bushes to hide whenever I look in their direction, but meh… As long as I don’t know they’re there, I can continue to skate with the freedom that I fell in love with in the first place.

And speaking of first love, I need to do some reorganising of my thoughts… recently, I’ve been getting mildly annoyed when tricks that I’ve been doing for years aren’t happening or if I can’t make a trick. I need to just sit back and think about the fact that there are some tricks I can do which others would have to work for years to make. I also need to remember why I started skateboarding. For the freedom it offered me as an individual skateboarder. My board, my world, my rules.

<3 skateboarding.

Peace out bros xx

Start of Skateboarding Life in Aberystwyth

Posted by: Pyro  :  Category: Skateboarding

I have the most epic set of skate mates ever.

As many people who read this will probably know, I am quite a keen skateboarder (although not really any good – at least I think so)

Recently, as there has been a marginal amount more sun than rain, so I thought it would be good to try and get out and skate some more.

At first, I skated with the A.T.R. (All Terrain Riders) society, the few times they sent an email out. Then the society got shut down because quite frankly, they did absolutely squat.

Read more…

My first post

Posted by: Pyro  :  Category: General

here, it is… the most lame cheesy thing I could possibly say just to start my blog off. ^_^

Well… just so you know, I’ll probably be using this blog mainly as a way of communicating to others how my life is going. If something particularly cool happens to me, I’ll let you guys know :)

Also, I’m quite likely to post short epitaphs on something awesome I may have learnt that day in lectures, and I’m almost certainly gonna be keeping people posted on my skateboarding stuff as well (hopefully with pictures ^_^).

So that’s the plan…

I’ll keep you all posted.

Until then, peace out xx

Pyro