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.
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.
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)
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.
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.
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.
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.
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.
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.
The weekly problem sheets were again unassessed but marked and graded. Logic was also a section in the Christmas Test.
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?
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.
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.
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.
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.
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?
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 🙂