A la buses.

Three pieces of coursework turn up at once. Amazing. Nothing for weeks then this happens? Not to worry though, they’re not even mind numbingly dull. One — for Internet Software Development — is basically “here’s an XML datasheet, filled with information, make a few Java server pages to manipulate the data”. My work partner and I have pretty much knocked that up in three days. Tomorrow’s the last day I think we’re spending on it, which is to create a DTD for it. I’m not too worried.

Second piece is a database ERD which turned out to be more complicated than I expected. That’s not a bad thing, it was sort of fun realising how we’d made a mistake in reading the scenario and how much one tiny sentence changes the entire diagram. Just have to make a list of assumptions about the scenario that we’ve decided on and that should be done.

Another piece is for OO Software Design. Make a Java class and document it, mostly. Pretty simple and likely boring, so I’m going to pick a ridiculously hard, functional scenario (rather than something ridiculous like a “person” class that does nothing). I don’t think that has to be in for a while, so I think I’ll get the above two pieces of coursework out of the way first.

There might be Agile coursework, but really, who cares.

Weeks one and two summary: Database Design Concepts

We started with a lecture in this class, which was good since most people probably had no idea why a database was interesting, and why they shouldn’t be using a spreadsheet. To be perfectly honest though, I’m sure a lot of people still don’t know. Though, thinking about it, most people seemed to understand some of the SQL so maybe I’m just under estimating them.

Reasons why you shouldn’t use a spreadsheet to store data:

  • It’s too easy to repeat data. For instance in a database you could just say “this row belongs to user 85″, and then have one row describing user 85, like their name and such. However, in a spreadsheet, unless you wanted to look up user 85 every time they were mentioned, you’d have to write out their name potentially hundreds of times. And then what if they change their name? You’ll have to go through and at least write  a macro to rewrite all the names, where in a table you’d just need to change the user table once.
  • Spreadsheets take up a lot of space, due to the repeat data, and also due to most the cells being in the wrong, or bad, format so compression is harder. For instance, in a database we could just say that a telephone number is capped at eleven characters. The file system now only needs to give that field that many bytes of data. Whereas in a spreadsheet it’d have to be variable length, a much greater resource intensive method.
  • They’re not as accessible. Over a network the user would need to download the spreadsheet then make any amendments they want, and then uploading it. They’d also need to lock the file so no one else could even read the data whilst it was in use. With a database, it’d stay on a central server where anyone can access the data at the same time. The database server could better manage user collisions.
  • Sticking with that example, a spreadsheet would require tenfold more bandwidth.

That’s enough examples.

After that we just jumped into learning terminology. That’ll probably the hardest thing for me to learn. Since I’m mostly self-taught I’ve rarely had to refer to much to anyone other than myself. For instance, my tutor refers to fields as “attributes”, which is what I could have called it’s type (she calls that the “attribute type”).

As she explained the term “key field” I got a little annoyed. I think she made it sound as though primary keys and unique keys were interchangeable words for the same thing, which they’re just not. Primary keys tell the database that it’s a unique field which is safe to refer to the row as. Whilst that’s the same for a unique field, unique keys aren’t usually used as foreign keys.

During the tutorial we had an example database, which a few tables. As a class (which is good, since most people were new at it, they might be unsure about what exactly the should be doing) we answered a few questions where we had to decide which tables we needed to select to get the information we wanted. Like, “list the students first names”. That was simple enough, so the WHERE clause was introduced. “List the first names of the students who were studying computing”.

As we were working through the lab workbook, I was pretty happy that people sitting close to me felt comfortable enough to ask me if they were stuck. The main problem I think for most people was that they didn’t understand that you need to tell the computer exactly what you want. When the problem asked to return all the students’ addresses, two people that asked me for help got it wrong because they had tried to called the table name `address` when they needed `street` and `town`. I’m pretty sure that’s just a thing they’ll get used to though.

In this class we’re going to be assessed on our ability to write SQL statements, I think. At least at the moment. I’m not sure how advanced we’re going to go into it though. So far it’s just SELECT we’re using, with WHERE, OR/AND, and comparison statements on single tables. Look through the lab work book, I saw that later we’ll be joining tables too. I think I saw a COUNT in there too, so I hope we’ll be using more complex SQL functions. I’ve never had much need to use them before.

Weeks one and two summary: Visual Web Development

Just finished the first two weeks of academic work here. I’m planning to do a post like this every week. I didn’t last week because it was all mostly just admin work. Classes are really starting to shape up now though.

In Visual Web Design, during the first week we were just being taught the basic principles of programming and stuff. Since I’ve been programming for years I already know all this stuff but I’d totally forgotten that some things may not be obvious to people that have never coded in their life before. Some things we had to take note of:

  • Commands have to be typed exactly should be
  • The order of the commands are important too. A lot of people seemed to slip up on this one. When we were practising with a program called GPE (I think the uni designed it as a learning device), which only has a few commands like “north”, “south”, “change colour”, and so on, a lot of the people expected the computer to know which order to do everything in.
  • Variable names to first, and then the information that you want to put into them. A lot of people thought that “stringstring” = foo; was valid, when they meant foo = “stringstring”;
  • Creating functions to do repeatable code for us

Then, we suddenly just jumped into using Visual Web Developer, where I found out we’d be using ASP .NET, which I’m a bit annoyed with for two reasons:

ASP is shit. No one uses it. Well, some people do, but a lot of people talk about “upgrading” to PHP, which I think is an apt way of saying it. I mean, you can’t really code in ASP without buying the £300 IDE. And even then it produces horrible code. I suppose some people do still use it, so learning it won’t be a total of a waste of time.

Second, I think we jumped into it a little bit too fast… People were clearly confused as soon as she started talking about objects. I mean, it took me a good while to understand objects, surely students can’t be expected to understand what an object is with just “an object is a thing”. To her credit, we did a light bulb example, going through what functions(/methods) a light bulb object would have, but that confused even me… I just wish there could have been a tutorial on this, not really for me but for the clearly confused people sitting around me. A big problem there though is that we don’t have any tutorials for that class, just computer labs. Maybe we’re just expected to pick up things quickly now we’re older.

Anyway, in our last lesson, we use Visual Web Developer to make a simple form, then we learned… naming conventions I guess. The form didn’t have to do anything, I guess we were just getting used to how to be comfortable with the application.

Our tutor is a good one, and seems to be able to clear up confusion when people look confused, which is good. But one thing that does bug me is that she just reads out the handouts she gave us word for word. Not only does that completely negate the point of giving us handouts to read, but it makes her sound dumb. I know she’s not! But when all you’re talking about is something that we know is written by another person, it looks like you’re just passing on the information rather than sharing knowledge. It also makes the class slightly boring, for me at least. I don’t want to be sitting there just listening to someone; that’s boring. Listening and reading the handouts would at least give me something more challenging to do, but since she’s just reading aloud there’s no point.

We’ve been put into groups to do our project work in. My group is actually fairly good. Some of them haven’t done programming before, but that’s fine. When we were working on an exercise together everyone was giving input, so I think they were understanding it. When they weren’t either someone else explained it, or if no one else could I’d step in. I think I’m a pretty good teacher.

Great unexpectations

The exam today didn’t go as well as I expected… I didn’t do horribly, but not as well as I hoped when walking in. They decided to abandon the judicial creativity quest completely, which messed up our revision. We were told, and understandably so, that judicial creativity was a topic that always came up, 100% of the time. And it did since the beginning of this subject. Today though, they decided to miss it out… Instead, I had to do justice, and just make up a tonne of stuff. I’m more curious than worried about if I’ll have the grades to get into university now… I hope I will. If not, I have next year to reapply and maybe retake an A2 unit or something, part time.

In Warcraft news, I really wanted to do Deadmines tonight, with Ratio, but my connection is being so stupid.

I went to the job center today! I felt crappy going in, like I failed at life or something… I know there’s nothing wrong with using the service, but I don’t feel like it fills its purpose since both my dad and mum have been going since… well, ever. I was pleasently surprised though; there are tonnes of jobs all listed on a touch screen computer and you can print off the details and stuff. I even though programming, PHP and HTML jobs. I printed a bunch off and I’ll start working on those Monday. I’ll probably start this weekend, but I doubt I can do anything (like phoning them up and stuff) till Monday.

Apparently, I’m entitled to job seeker’s allowance, but I really don’t feel like I’m entitled to it. I mean, I am seeking, but I’ve not given the government any money at the moment, so I feel like I’d just be 100% selfishly using other people’s tax money to fund my non-productive lifestyle…

A clear outlook

I only have one exam left now, which is one that I’m expecting to be hugely easy so I’m not at all worried about it. Getting an A in it would be awesome though… It’d definitely help me out with UCAS points, since I’m really worried about those at the moment. Looking at my AS results, I really don’t feel like I can get what I need for Brighton – which is a near impossibility – I might just scrape DMU, which is a sucky thing to say since I slated them for giving me a really low offer… I guess the main lesson I’ve learnt with A Level is that even if you think they’re likely to be easy, you still have to put in the effort. Kinda like even if you’re a level 42 hunter, if you take on six level 30 you’ll probably get beaten.

I’m not at all worried about getting into university though. The way I see it is that I’m likely to get into DMU. If I miss that, it really won’t be by much, in which case I can fight my way through clearing. If all fails miserably, I’ve still got all of next year to reapply. I can even resit an A Level unit or two if I really have to, not getting into university won’t push my timetable back at all.

The problem of this being my last exam though is that I’m actually unemployed once it’s over. Dad’s nagging me that my child support money will stop in September so I’ll have to get a job to pay him the money he’s losing out on. What I think he meant though was that I needed to get a job in order to pay him board money. Which is really a dumb thing to say, since I’m hoping to have moved out of this house long before September anyway. I just have to start looking for a job now; I’m not really sure where to start though. I’ll make an appointment at the Job Centre tomorrow, I guess.

Meanwhile though, I’ve bought shamess.info and I’m using part of that to advertise freelance, hosting and SEO services I can start offering. That’s something I wanted to do before, but never really had time in between World of Warcraft and college. Now it’s just World of Warcraft I can start focusing on that full time, till I get a job, then I can focus on it full time.

Side note: I’ll start to move this blog over to shamess.info too soon (probably tonight) so things may get a bit confusing, since I’ve never migrated a WordPress blog before. I figure I won’t touch the files, and just change the ServerName. Hopefully, most people won’t even notice the URL change, if I set it up right.

Oh, also, I’m going to start updating DebianTips again. It still gets okay traffic for a neglected blog. I need to touch up some of the older posts with stuff I’ve learnt new though, before I start doing more stuff.