So what does studying Computing at Imperial involve you ask. After one term here… I’m no expert but I can rewrite the course descriptions the department provides in a brutally honest student point of view.

This will be quite long, but at least now its here as a resource for all you prospective Computing students out there right? Happy reading.

In the Autumn Term we study Programming, Maths Methods, Logic, Hardware and Discrete Maths.

## Programming

**Content**

6 weeks of Haskell and 5 weeks of Java. No experience with coding was assumed, but we definitely moved quickly. Our first Haskell assignment was due in Friday Week 1 (so much for freshers week…) and it only got exponentially more difficult. For Haskell, I probably spent close to 10 hours battling through the problems we were set each week. Java was easier as I had some experience with with C before uni, but in general Haskell is a much better introduction to the thought process behind coding. Haskell is seriously awesome though, I loved it. We continue Java in the summer term and in Second Year as well, so the Java material we covered was pretty basic in relation to the power of the language.

**Teaching Structure**

Aside from two 2 hr lectures and 1 hr of ‘ask the lecturer any questions you have’ per week (the programming lectures were my fave tbf …). We had weekly assignments to complete and weekly Personal Programming Tutorials (PPTs) with an undergraduate teaching assistant (UTA) where we discuss the assignment we submitted last week and any difficulties with the current one. Get in on the acronyms guys, it makes us feel cool. This is incredibly useful for ironing out bad coding style and allows discussion about the different approaches people took.

There was also about 5 hours of labs scheduled weekly where we could go in and ask any questions we might have to the lab assistants. Attendance wasn’t marked at these, so it was up to you to decide whether to attend. Personally, I usually skipped the ones at the beginning of the week and waited until Thursday or Friday when I had properly attempted all the questions before heading in to have my questions answered and problems resolved. (i.e. find that devastating bug thats been preventing you from compiling)

**Assessment**

There was a ‘driving test’ for Haskell and Java to check if you’re up to scratch. Nothing with wheels is actually involved, but in theory the name is meant to imply it tests whether you can drive adequately not race a circuit and do a triple backflip off a ramp. They do count towards your degree, but to be frank if you put it into perspective, the percentage it counts for is absolutely miniscule. The weekly assignments are marked and graded, but are technically ‘unassesssed’ because they don’t count towards your degree. Its still good to have some kind of benchmark for your current level though.

## Maths Methods

**Content**

This was basically an extension of the maths we did in high school. I did the IB, so I’m not sure what it was like for A Level students, but after doing the Calculus option in HL Maths there was really nothing new. Complex Numbers was again straightforward, but Linear Algebra was a whole different story. Things suddenly started going super fast, everything was new and it was difficult to get in the zone after slacking off the first 6 weeks.

**Teaching Structure**

4 hours of lectures and 1 Maths Methods Tutorial (MMT) per week with a PHD student. All tutorials are with the same group of 6 – 8 students so you’ll get pretty familiar with each other. We had weekly problem sheets to complete and we would discuss either answers to last weeks or problems with this weeks sheet. As things start to speed up, and the lecturer make less and less sense, these tutorials meant someone else teaching us the material in a more approachable way, but its important as a group to learn how to get the most out of your tutor and being considerate of varying skill level in maths.

**Assessment**

There was a coursework for Calculus where we were given an additional problem sheet to complete and had to submit the answers to be marked. Unlike the weekly sheets, this could count towards our degree. This was relatively straightforward, as were weren’t particularly busy at the time and Calculus was largely manageable. Maths Methods was also one section in the Christmas Test, but that only tested Linear Algebra. I’ll talk about the Christmas Test at the end, because it involves the other courses.

## Logic

**Content**

This was material most people probably hadn’t seen before, and its quite difficult to explain. Essentially its very important for computer scientists to be able think logically and apply logical thought processes, and this is formalised in a way to avoid misinterpretation of meaning the way natural language often does. Often, what we presume to be logical in our day to day lives really isn’t and logic teaches us how to explain that. Its quite interesting and its definitely one of those things where you either get it, or you struggle.

**Teaching Structure**

4 hours of lectures and a 1 hour tutorial conducted in the lecture hall where a few tutors wander around answering questions as we all worked through the problem sheet which had to handed in that week. This was complemented by our Personal Maths Tutorials (PMTs) where a UTA would discuss our problem sheets and any common mistakes she saw in our work. Logic quickly got quite difficult and the small group size was really good for facilitating the discussion that we needed to get our head around weird logic concepts.

**Assessment**

The weekly problem sheets were again unassessed but marked and graded. Logic was also a section in the Christmas Test.

## Hardware

**Content**

I have absolutely no idea, because after Week 6 I stopped attending lectures and by about Wk 9 I stopped trying to keep up on my own at home. Something to do with digital circuits?

**Teaching Structure**

3 hour block per week involving an hour of lecture, an hour of a lecture hall tutorial followed by another hour of lecture. There was no ‘personal’ tutorial or contact outside of lectures for this course, and personally I could really have used one, because Hardware was hella confusing. In general lecture hall tutorials are pretty useless, so essentially I was one lost crazy person very quickly. There were weekly problem sheets, and solutions, but after falling so far behind so early on, it was pretty difficult to find any motivation at all to catch up.

**Assessment**

There was a coursework due in Week 5, on content we essentially covered by Week 3. The problem sheets didn’t need to be handed in and Hardware wasn’t on the Christmas Test. All together not a motivational set of circumstances. Hardware problem sheets also weren’t put on the normal site for dealing with our weekly assignments so it easily slipped under the radar. Just thinking about the imminent catching up i’ll need to do over the holidays is giving me shivers.

## Discrete Maths

**Content**

Again, not maths I had come across in high school, but some people from various parts of Europe seemed to have seen it before. Involved set theory, binary relations, functions and some other weird things… There seemed to be a lot of definitions we had to learn tbf.

**Teaching Structure**

We only started Discrete Maths in Week 7 after completely our Haskell work, but we were expected to had that on top of our new Java work. I guess they assumed Haskell to be more time consuming? idk. 3 hours of lectures per week and while there were no problem sheets, questions were assigned from the exercises in the notes and discussed at PMTs (where we also continued to discuss logic). To me, it rather felt like they’d forced it into a structure that was working well, then hoped we’d just get over the disruption. We raced through the content, same level of crazy as Linear Algebra in Maths Methods with the added downside of most people having never seen anything of the sort before.

**Assessment**

Nothing special, there was a section on it in the Christmas Test and the problems were marked but not assessed. We continue doing discrete maths in the Spring Term because we only did it for about 5 weeks this term. Hopefully, it’ll get more manageable?

## Christmas Test

This test was on the last day of term (what a killjoy), lasted 90 minutes and had 3 sections: Maths Methods, Logic and Discrete Maths. Obviously they couldn’t assess anywhere close to the amount of material they actually covered so revision was a bit hit and miss. Personally, I don’t feel like I did particularly well, but again perspective -> percentages -> learn from it and I’m a happy chappy. The results for this test formed some of the coursework mark for logic and discrete, but most of the marks for them would be from the end of year exams after the Easter break in the Summer Term. Yes we do have to retain all this knowledge from now until then, despite moving onto different courses next term… Notemaking = essential.

Well I hope you guys found that useful in some way, if you have any questions drop them down below 🙂

Ciao Beans!

These are really helpful and honest, thank you so much for writing the blog posts! Does the College censor what you write here?

Hi Zeshan,

I’m glad the blogs are useful 🙂 The college doesn’t censor what we post, in fact they encourage honesty. Its in our discretion to decide what content is appropriate.

Really interesting to read. May I ask you a question? Did you study computer science at GCSE or IB? Will there be significant differences in those who studied and those who didnt? Thanks

Hi Ibrahim,

I didn’t study compsci in high school at all, but I had done a bit of coding before (really basic stuff). I would say that 30% of first years hadn’t coded before coming to imperial, and significantly more did not study it in school. The teaching is done under the assumption that you’re a beginner, but the pace is very fast so complete beginners may struggle at first. I would say the main difference would be confidence, as a beginner you’re aiming to pass driving tests not ace them since they try to make them cater to everyone’s skill level. It can be a bit discouraging at first because it feels like everyone is ‘better than you’, but I would say the system is in favour of beginners. It aims to bring them up to a certain level, and if non-beginners are already at that level, then they’ll supply a ‘challenge’ but thats not their priority. Don’t let having no experience deter you from choosing computing 🙂

Hi there Amanda,

How are you finding the workload in comparison to your A-level studies, how many hours of work a day are you expected to do would be a better question?

I failed to ask the questions I should have asked on the interview day so if you could help me out here with this one that would be great.

Thanks,

Ben

Hi Ben,

I didn’t do the A-Levels exactly, I did the IB, but I assume the workload is about the same 🙂 In computing theres a lot of continuous assessment, so small homework tasks that need to be handed in over the course of the term and this differed from the large assignments + major exam period structure of high school. Its basically makes sure you’re keeping on top of things which is very important. I did find that often the work is a lot more time consuming than it initially comes across, and not usually something you can do blindly.

This was one of the biggest challenges for me, as in high school the work didn’t really require much thinking and was doable sleep-deprived and half concentrating. In contrast the work in uni takes a lot more concentration and understanding and definitely not worth attempting unless you’re putting in 100%. So while technically the tasks are shorter and should take less time unless you’re incredibly disciplined its easy to procrastinate and you really do need to keep up those sleep hours.

As a beginner, programming is incredibly time consuming and difficult to time manage as you can’t really control how long debugging takes. I can spend 4 – 5 hours programming in one session and that usually tires me out for the night. Each programming task can take upwards of 15 cumulative hours and we have one due every week. The other courses are definitely not as bad. As a general rule you’re expected to put in double the lecture hours for the course, re-covering the material yourself as self-study to get a better understanding. I definitely do neglect tasks that are classed as ‘optional’ and I know its not good, but I struggle to get in the things that are compulsory so I tend to leave ‘optional’ for self study during the revision period.

I’m not sure what you’re expecting, but I definitely think that while the course ensures you’ve always got something due its entirely manageable. If I had to give a number I’d say about 4 productive hours a night, and more on weekends. You’ll still have plenty of time to take part in societies and other social things.

I hope that helps 🙂

Amanda

Hi Amanda,

I myself am an IB student and I was wondering how the IB, especially HL Math, prepared you for university and your computing degree. How do you find your math ability as an IB student compared to students who took A-Level Maths/Further Maths?

Thank you 🙂

Hiya,

I would say that HL Math is in between A-Level Maths and Further Maths in terms of amount of content covered. i.e. FM has mechanics modules while IBHL doesn’t. I can’t speak for style of question though. I did the Calculus option for my HL component and that was by far the most useful, as its basically the first year calculus course, so it put me slightly ahead of the FM people for that topic. If you’re still in the process of choosing your option I would recommend Calculus, or the Sets and Relations one, as thats useful for Discrete Maths. The hardest part of the first year Maths Methods course was definitely Linear Algebra, and not many people I spoke to had covered it before, especially since Matrices was recently removed from the IB Maths course.

Overall, I think that HL maths was really only an advantage for the Calculus, and thats a small section. For other courses in computing, its probably more important that you have an aptitude for numbers and logic, which being good at maths is usually indicative of. I think the key difference though was in IB I could revise my way into doing well, lots of practice questions etc. Whereas in uni, thats less of an option (fewer resources) so ‘talent’ becomes more of a differentiator. Personally I found Maths Methods the easiest of all my math related courses because at least I’d seen the stuff before.

If you’re worried about how you’ll compare, don’t 🙂 As long as you like maths, the variability in maths level due to different curriculums quickly evens out.

Good Luck!

Amanda

Hey Amanda,

I am about to start my first year at Imperial this October for a Computing course and I was wondering if there is a specific operating system that students use? I have a macbook but I was thinking that I might need a normal laptop for uni because we might have to work in linux or windows. I know it’s possible to create a partition on a Mac, but I don’t fancy trying the risks.

Thanks for the help,

Vlad