# 3rd Year EIE Advice

This document is a comprehensive guide aiming to make it easier for EIE students to choose their modules for 3rd year, as well as containing general advice for the year.

Additional information on modules can be found by looking at SOLE survey (opens new window) results, although if you're looking for a more unfiltered view then you're probably in the right place.

For modules shared between EEE and EIE, you are welcome to check the EEE document for relevant feedback. Pre-2021/22 content might be a mix of both streams.

This document is maintained by the EEE departmental representative, instructions to maintain can be found here (opens new window).

If you'd like to add feedback, please submit it here (opens new window) (Please check that the year of the survey matches your current academic year, and if it doesn't contact your dep rep!)

# Module Listing

You can check out the full list of modules using the links below.

# General Advice

# 2021-22

3rd year is a lot of work, more than 2nd year in my opinion. However, I took an extra (DoC) module, which definitely amped up my workload - DO NOT DO THIS (unless you really want to, feel free to ask me about it). You have to take 7 actual modules (at least 3 EE and 2 DoC) + 1 horizons module (which may or may not be significant work depending on which one you got). Having tried 4 'real' modules in both Autumn and Spring (not counting my Horizons module which was 0 effort - Project Management bless up 🙏), I would 100% recommend taking 4 in Autumn (and 3 in Spring), the EE CW in spring is a huge time sink if you're looking to get high marks. Combining that with revising for DoC exams at the end of term makes 4 module Spring even worse than 2nd year term 2. With that in mind, 4 modules in Autumn term is still tough, and you might feel overwhelmed at times (I certainly did). If you're worried about the workload, get your applications for 6 month placements done AS SOON AS POSSIBLE. Depending on what you're looking for, you'll be spending a significant number of hours a week doing applications, online assessments and interviews. If you can get it done in the first month of term (or even before term starts), you'll have a lot more time to focus on your modules. That said, take the time to try and get something you want, getting a good placement is more important than your modules (On my placement now, no regrets, was completely worth it). Overall, you have the opportunity to focus into modules you're really interested in in 3rd year. Take the time to consider what fields you want to work in as a graduate, and what modules help you get there. Despite it being more work, I found the work a lot more interesting, since I was doing modules I actually cared about. Good luck 😄 - Simon

Think twice before you choose the modules. It would be a hard time if you choose a mix of both eee and doc modules in spring term, as both the exams and deadlines for the coursework would be in the same week and you need to spend the revision time doing coursework when the DoC students are preparing for the exams. – S

# 2020-21 (Pre curriculum-review)

In Spring term I think a good balance is 2 EEE modules and 2 DoC modules (assuming your split is four modules per term). If you’re doing 3 EEE modules and 1 DoC module... have fun with coursework lol – JZ

I feel that 3rd year is a time to think about what parts of the course you’re enjoying, and what parts you want to focus on going ahead. If you enjoy what you do, you’ll find it a lot easier to cope with the work. Spring term is a test of your ability to prioritise, manage time and divide it well between all the different coursework deadlines that you have. If you want to do well, it will require hard work - Aaman

BPES: Accounting is the closest to a fair-evaluation module (not random marks on your essays) but it’s the most time-consuming. Placements: you really need to prioritize at the beginning of the year how much time you are read to spend on interviewing. You’ll get many 1-2 week notice interviews, most of which last on average 2.5 hours. This will slow your study pace, so make sure you’re on top of things when possible. - Jaafar

# Industrial Placement Advice

Here's a quick summary of some important points:

  • Apply to lots of places, expect many rejections
  • Track your applications (most use Excel)
  • Practice hackerrank / leetcode for coding challenges if you're going into software
  • Research the company for non-technical interview prep (what do they do, why do you want to work there, why you'd be a good fit)
  • Always ask for feedback from the interviewers
  • Start early (before term starts)
  • Good luck, try not to get disheartened 😃

You're always welcome to ask me for advice 😊 - Simon 2021-22

Ask people in higher years who interned at the companies you're interested in. They'll give you interview tips, help you on the CV and tell you exactly what it's like working at the company as a student intern. Potentially they'll also refer you in some cases. For software intervies, lettcode is good, but in-person practice is 10 times better in my opinion. Try to get on face-to-face session per week with a friend or someone in a higher year with more technical interview experience. For PM and non-technical interviews, read "Cracking the PM interview". It provides you with general rules and guidelines on how to structure your answers and guide yourself through the interviewer's questions. Most recruitment starts in August for tech and trading, start reaching out to recruiters by then. - Jaafar 2020-21

Start applying as early as possible – get your CV/LinkedIn/whatever else ready before term starts and then start applying. The earlier you get your placement sorted out the easier your life will be. Also – you'll probably be rejected by most places. If you’re going for a software role, make sure you practice a lot beforehand as well. - JZ, 2020-21

It’s ok to get your application rejected. It happens. And it’s ok if you don’t end up getting a placement. That can also happen. None of this defines you. - Aaman, 2020-21

Be great at one programming language (show dem your projects), have semi-decent grades, demonstrate your communication skills and landing a placement is just an arm-length away. After couple of failures, you would learn what interviewers want to hear and what interviewers don’t want to know about. 2020-21 Z

Advice for aspiring SWE candidates targeting placements at big tech/tech in finance – grind leetcode over summer and apply early. Positions fill up early and are highly competitive as you’ll be competing with DoC students too. Brush up on core CS fundamentals (OS, data structures, algorithms) as these get asked frequently too. Take note of groupwork/previous internship experiences that you can bring up during behavioral interviews and prepare well for these too. - Daryl 20/21

It’s ok if you get rejected like 1000 times. I promise a load of other people are too. Get in the applications early like September/ August. Try to focus on a few companies you really want and spend the summer practising programming or reading over notes etc to prepare. Then start applying to companies you may not have considered. Update your LinkedIn!! You can get recruited off it. Also ask some of the older years. It also helps if you have a spreadsheet of companies to keep organised. Try and focus your applications – I didn’t which was fine in the end but stressful writing a bunch of different field cover letters. Just put yourself out there; don’t hold back on your skills in your CV. Once you do enough applications, you’ll know how to sell yourself so trust the process. If you don’t find anything, the group projects can also get you graduate roles and they’re really fun!! They also help when it comes to graduate applications so either way you don’t "lose". If you want to go into tech in finance, leetcode and hackerrank are your best friends. Best of Luck !!! - Simi 2020-21

Understand yourself better, what careers you want to pursue, how to represent yourself in CV/Cover letter, compare your current skills set to your desire jobs requirement, find areas to improve. – 2019/20

Start applying early! Oct is a good time to start applying. – 2019/20

Focus on applications - those are more important – 2019/20

Apply to a LOT and don't be disheartened by not getting responses. – Yusuf, 2019/20

Man just get a placement, like start searching at the beginning of the year. Group project is alright but its no replacement for being paid. - 2019/20

Spend all of October and November applying! Best to have an offer before the end of the year, Then you can really chill out in second term. And Get ready for lots of rejections – Kunal, 2019

Go careers fair (if it's not cancelled because of corona), check websites/LinkedIn for applications – Tarik, 2019/20

# EEE Modules (Autumn)

Most EEE modules this term are fully exam based, where assessment take place over the last 2 weeks of term. Some modules also have include coursework (worth ~20%, may differ per module).

# Communication Systems

Imperial Module Page: here (opens new window)

# 2020-21

Exam is heavily based on the extensive problem sets so get to know them well! It's a very very long and varied course. It really does develop your intuition. Hassle Manikas when you have questions and you will get them answered. Really patient guy. Super passionate about his subject.

Really liked the module all in all, and would recommend to anyone interested in Comms. Personally found the content very demanding, mainly due to the sheer volume. There is a lot of stuff. The exam is comparatively straightforward, and if you do and understand all the problem sheet questions, the exam wont be too bad. If you put in the effort, it will pay off. There is also a coursework element to the module over Christmas on MATLAB, which isn't easy but manageable over the break. Manikas is also very good, explaining content well and also answering questions effectively.

This module is highly recommended to anyone interested in Comms. The content is long and can become difficult to understand in the end. The exam is based on the problem sheet questions, so being able to solve these questions is key to scoring well in the exam. There is also a CW assignment over Christmas, which requires a solid understanding of the second part of the module, which has more demanding concepts. Manikas is a good lecturer, who wants to support students and is willing to answer questions, so it’s definitely worth asking him about concepts you do not understand.

# Digital Signal Processing

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 1 respondent.

  • Content: 4.0 out of 5
  • Organisation: 4.0 out of 5
  • Lecturer: 3.0 out of 5
  • Overall: 3.0 out of 5
# Comments

Genuinely interesting content, but the presentation is too theoretical and dry. I would only recommend if you love signals and plan to take the Real-Time DSP module in Spring.

# 2020-21

Dr. Stathaki's slides are example rich and the exam draws entirely from the maths demonstrated in the slides. However, it's fair to say that this course is more theoretical and mathematical than in previous years.

The slides are quite detailed and extensive however the pace of the explanations can sometimes be long winded during the lectures however Dr Stathaki is always happy to help and explain anything if you didn't understand it. The modules is quite theoretical but gives you a good basis of DSP however be ready to commit to doing a lot of theoretical maths to be good at this module. The exam was entirely based on the lecture slides with some extension of concepts.

Dr Stathaki’s slides are detailed and contain loads of examples and thorough explanations. The lecturers can be boring because she sometimes devotes too much time to easier concepts, which leads to a slow pace. That said, she always happy to answer questions either in the lecture or via email (she’ll get back to you in 24 hours usually). The exam was quite heavy mathematically, which means you need to practice effectively the math concepts she teaches. You should try to get access to the 2020 exam and to the sample exams she gave us because her style significantly differs from Naylor.

# Control Engineering

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 1 respondent.

  • Content: 3.0 out of 5
  • Organisation: 5.0 out of 5
  • Lecturer: 5.0 out of 5
  • Overall: 4.0 out of 5

Astolfi is a good lecturer, keeping you engaged in lectures. Lectures are fast-paced but you get used to them, make sure you interrupt for questions if you need to. Astolfi doesn’t reply to questions in email (from my experience at least) and even though I wasn’t in College during exam period and deliberately asked him to help me via email/Teams, he asked me again to come to College, which I didn’t. Ended up answering the questions with friends/after working more on exercises. So make sure if you need help you show up, or pester him, or ask as early as you can, to ensure you get your answers. Resources are primarily the lecture notes (I didn’t use any book or additional resources, and found that notes Astolfi makes during the lecture are much better, and sufficient for the exam, than the actual pre-written lecture notes, which are very mathematical and abstract for no reason in my opinion. So that, along with past papers, should get you ready for exams. Other than that, module is pretty mathematical and the exam is pretty standard (make sure you do most (or all!) of the past papers and you will be legend for the exams). In our case, the exercises at the end of the lecture notes were much harder than the actual exam and the past papers, but still do them to be prepared and avoid any surprise. No coursework for this module, which is good if you want a free Christmas holiday! - Valy (EEE)

# 2020-21

I agree with the other comments, the examples at the back of the book are brilliant. The book itself feels overwhelming so glance through it every once in a while and definitely use it for revision. There are some things explained in the book not explicitly covered in the lectures but are still examinable. For example: Dead beat controller/observer. Really useful module overall if picked with maths for signals and systems as they both complement each other a lot! You might have a tough time if you don't pick maths.

The book is quite remarkable, but unless you are a comfortable first class student it's very hard going. However, the 30 exercises at the back are brilliant and able practice. This year's exam was exceptionally difficult. Actually, the previous year's was very difficult too. Only take this module if you are ready to commit to it.

The book itself is quite daunting however for the content you definitely need Maths or do it in your ownste time. The exam is quite difficult hence only take it if you are committed to the module. The module is generally quite abstract and theoretical however covers a lot of content. So only take the module if you are ready to commit to it hardcore and actually interested in control.

Most people here tend to read the book, I prefer watching youtube lectures. Here are some useful channels: John Rossiter, megr438, Matthew Wright, Jonathan Sprinkle(more about self driving cars with control), MathDoctorBob, MATLAB (for filters), Steve Brunton (best one).

Great lecturer, I found the combo of (actually) watching his lectures + reading the notes working. If you like the ‘understanding’ part more than the tons of theoritical knowledge you might like this course. However if you’re looking for a module where you can just learn stuff by heart maybe pick another one. - MG (EIE)

The module was interesting and I enjoyed being able to pretty much learn from the book but I got wrecked by the exam because I didn’t revise enough. You definitely need to put in the work but theactual content isn’t too bad. I also had to cram all of maths for signals but it was helpful even for 4th year stuff😊 - Simi (EEE)

# Mathematics for Signals and Systems

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 7 respondents.

  • Content: 3.0 out of 5
  • Organisation: 3.43 out of 5
  • Lecturer: 3.43 out of 5
  • Overall: 3.86 out of 5
# Comments

Optimising for marks only, it is extremely possible to get high marks without watching any lecture content as a lot of it is repeated second year maths.

Module provides a firm extension to the foundations built over the first two years of Linear Algebra, and the module is well-structured and delivered well by the professor who is approachable and patient. The contents of this module complement a lot of the theoretical mathematical skills required for machine learning modules. However, the exam this year was significantly more challenging than previous years and the moderation was shockingly harsh.

Lots of content overlap with a previous module.

It’s really just 3rd year math, but applied! The interesting part is learning where it can be applied instead of the maths

Despite being a rehash of Y2 Lin Alg, you’ll still get to see concepts explained in a different light with different applications. LA is also rly important in computing fields like ML or Operations Research. I recommend it if you feel like you have shaky foundations after Y2 or if you want a chill 4th Autumn module (you should take 4 Autumn modules)

It’s not anything new you’ll be learning but good if you want a relatively straightforward A

The module is not hard and it would be a great choice if you just want to get some good grades. The content is almost repeating.

Pretty standard but pretty neat module, if you are EIE/EEE, your 2nd year Mathematics (Mathematics for Engineers II) module literally has the copied and pasted notes from this module, so overlap is an understatement, this is the linear algebra part of your course copied over word for word, no exaggeration, (SVD, Fundemental Subspaces, Diagonalization, Eigenvalues and Eigenvectors, etc) so if you banged that out in 2nd year, this one is a good one to take for some guaranteed marks. The exam varies little year on year but this year we had more curveballs probably due to the online-setting. For any topics where you lack understanding use the 2nd year notes it will help more, or use the Gil Strang youtube videos. Although as updated advice for those using the new EE course I whole-heartedly just suggest going over your old notes and lectures from 2nd year because that helped me more than actually attending the lectures did. There is a lot of hidden value in this module though because a lot of the concepts you pick up and refine end up being heavily utilised in optimization, as well as ML (particularly with convolutional neural networks), honestly just take it to fill in one of your mandated EE slots if you’re like me and have a preference for the DoC modules. - Aryan

Nice professor in my opinion. UTAs/GTAs are really useful too on edStem so this module flowed really well. Yeah as Aryan covered above, most of the content is just the same as that in 2nd Year. - Nelson

# 2020-21

Get watching those Gil Strang YouTube vids early! That really made all the difference come exam time. There are a lot of shortcuts and tricks with linear algebra. If you try and use the slides alone you will fill a lot more pages and be prone to error.

The lectures don't cover much content compared to any other modules so do practice examples a lot. Hence I also suggest to get a linear algebra book to get more detail and learn the tricks of how to do things. The exam was allright in my opinion covers mostly what has been covered and there are quite a few past exam papers. This module is essential to quite a few others.

Do watch Gil Strang's lectures before the start of the term. He covers the course quite quickly, so it doesn't leave too much room to understand the material. In addition he tend to be more focused on the application of linear algebra, rather then the math. But this is third year, so there is the expectation that your math is pretty good. In sum do yourself a favour and spend two weeks prior to term watching Gil Strangs, so you can understand his lectures. Also for tls(not covered by Gil strangs) you might consider watching this video on youtube: Pillai "Ax= b, Least Squares (LS) & Total Least Squares (TLS)".

As everyone else has probably mentioned, start watching Gilbert Strang’s lecturers before the start of term and get the textbook (borrow it from the library- it has at least 10 copies). Dragotti’s slides do not help you pick up the techniques you need to solve linear algebra problems, because they focus more on applications. The way to do well is to study the techniques on your own using GIlbert’s resources, or anything else you may find useful, and then go over Dragotti’s slides to check understanding and learn how to tackle more application-oriented problems. Dragotti is quite happy to answer questions, so it is worth asking him if you’re stuck with anything.

# Artificial Intelligence

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 15 respondents.

  • Content: 2.73 out of 5
  • Organisation: 2.73 out of 5
  • Lecturer: 2.87 out of 5
  • Overall: 2.47 out of 5
# Comments

This module was the biggest bait of 3rd year. I emphatically recommend you to NOT take this module. Not only is the content completely useless in terms of any real-life applications whatsoever (with the only exception being A* graph search), but the delivery is pretty terrible. The lecturer is a bit of a comedian, but for some reason chooses to explain things in a very complicated and long-winded way (online Standford lectures take a third of the time to explain logic in a much clearer way). I'm pretty sure he really likes the sound of his own voice. This module has 6 hours timetables per week, which is roughly double the time of any other module you could take, and requires extra at home time to complete the labs / tutorials, making it a significant time sink. In terms of the exam, questions involving logic are a huge time-sink, making the time pressure extremely tough. If the exams go back to person, there is a strong emphasis on bookwork, so you’ll need to memorise a ton of shit. Overall not worth your time at all, if you want something useful for ML/AI take Maths for Signals and Systems (although there's apparently a lot of repeated content there, but at least it'll be less time consuming), but this module will not help. - Simon

This module is not be to judged by it's title - whilst the concepts themselves are quite fundamental to developing a foundation on AI, and despite the interesting and humorous delivery of the professor, the tutorials and labs proved to be barely effective in preparing for the final exam which turned out be the most challenging out of all the years taught and extremely time consuming.

Did not like this module. The lectures are way too long, boring and not useful. The content is fairly simple though, but the exam was way too long, no one could finish it. If you take this module, don't waste your time by watching all the lectures, find some other resources on the internet (online courses), they can be much better.

Limited Real World Aplication. Content semi interesting. Archaic

Excellent lecturer, quite interesting module, very tough exam though

Professor didn't explain anything well. He mostly gave vague explanations which didn't connect to the slides. Exam was alright, but the content was very niche and poorly taught.

This content and work sheets was SOOO FAR from the exams. It was literally useless doing them (as I've done all of them). The TBL's were structured horrendously and if you had to study asynchronously due to being in a different country forget even being able to understand the content practically as the TBL's aren't recorded and everyone's confused. Not to mention we got told there was a room number for our lecturer and the lecturer never actually showed up leaving us to have no idea what was going on for the first couple of weeks.

Where to start? There are definitely some parts of this module that are useful, such as learning Prolog and different search algorithms. That’s pretty much where the good stuff ends. Most of your time will be spent learning about and manipulating logic. The exam was heavily based around Calculus KE – Google it and you won’t find anything on it, and the lecturer himself couldn’t even remember what KE stands for. Most of the content is just so incredibly niche, and the exam so time pressured, that I would really be hesitant to recommend this module. If you are really looking to get into AI/ML, there are better modules to take, as others have mentioned.

This is a good module, however incredibly badly named. It has more to do with declarative programming, logic & search/optimisation algorithms than "artificial intelligence" as such – I would recommend it as the content was engaging, course materials were good & the U/GTAs were helpful, but make sure you look at the materials before you choose it if you can.

In my opinion this was a very bad module. The course is very unstructured and there’s not much resources to go off of. In exams you get unnecessarily punished not for pointless things that DO NOT reflect how much you actually know about the content (e.g., making the answer of a question 80 lines/ 3 pages long and if you make a little mistake anywhere in those 80 lines you lose marks only for a small number of marks). I have spent most of my hours trying to contact the lecturer on very unclear topics that he has not properly explained in his lectures or written well about in the slides and sometimes get no response. The tutorials he provides are not complete and you will spend loads of hours doing these tutorials when it is worth a very small amount in the actual exam. You CANNOT do the exam without doing ALOT of past papers because most of the exam are not inside the tutorials. I will promise you it is NOT worth it.

In my opinion, I would say that this module’s displayed commitment time is highly unrepresentative of the actual time needed to be ‘good’ at this module. A lot of emphasis is placed on labs and tutorials to develop a finer understanding in AI, but ultimately it’s all for nothing because nothing of ultimate relavance was included in the final exam, there was no ‘coursework’ contribution or at least some sort of safety net to compensate for the work we put in, the exam itself included a lot of questions which are super beefed versions of tutorial questions (of which we got the solutions very late for), and lab questions (of which were rather unorganized), coincidentally, one of the larger logic questions in the exam was a specific niche corner of an already rather niche part of the course (iykyk), which was not only barely touched in the lectures except for one pass, but apparently the solution for an associated problem of this type was not even provided, this was also never seen on years of past papers. I spent several pages trying to do one subquestion from that exam, and spent an hour of my time just in doing that almost. The biggest chunk of the logic half of that course has 2 (two) major resources, one being the Professor plugging his own research paper, which is indecipherable on its own, and the other being a rather obscure PDF from an academic who coincidentally was a former student/colleague of the professor, this however constituted 50% of the exam though, which we had barely any prep to study for, and the time I spent which could’ve better been spent on my DoC modules. In my opinion like the above answers postulate, if you want to take a module to get into this area of learning, just do DoC/EE ML and Maths to make your life easier rather than spending time trying to figure out whether you were meant to branch on line 39 of your KE tree or not (and I highly doubt you’ll be asked in a FAANG interview about existential qualifiers, but maybe that’s just me).

# 2020-21

I personally found the lecturer Jeremy Pitt to be brilliant at making the material engaging and helpful in any issues people had. The content is enjoyable to work through. The tutorials do not fully cover the knowledge needed for the exam but are very useful to do alongside past years papers. Unlike some modules, a genuine understanding of the course is needed for the exam specifically with things relating to Prolog.

# Communication Networks

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 2 respondents.

  • Content: 4.0 out of 5
  • Organisation: 3.5 out of 5
  • Lecturer: 3.0 out of 5
  • Overall: 4.0 out of 5
# Comments

Not too much content, exam was very difficult though.

Module is very interesting in terms of communication protocols, internet networks and systems if you want to get into that (also many jobs appreciate having some knowledge into comms, especially in satellite or energy systems). It’s not particularly hard, I find Barria pretty standard, not particularly exciting, but does cover all the material you need to know. He is approachable for questions, answers emails and you can very easily interrupt him during the lectures – he engages a lot in conversations and questions, and you felt you could ask him whatever. He follows the notes, but expands sometimes, and with a good revision over all the exercises you will be alright. Some friends used the book to understand better, but I found asking questions during the lectures were alright for the exam. The exam was as expected, practice the past papers as in every module, revise the lecture notes (if exam remote you don’t have to memorise them, just understand them I would say), and you will be fine for the exam. -Valy (EEE)

I enjoyed the module although I agree that the notes and teaching are not the best. As an EEE student, I didn’t really know anything about networks, OSI etc. but the content wasn’t intimidating so I ended up becoming really interested in this area. The recommended textbooks are a really good and interesting introduction to comms networks although they are not that helpful for the exam, so make sure you really understand the slides and past papers well (a lot of memorisation). Barria is friendly and happy to answer questions, but his explanations can be chaotic. -Kasia (EEE)

There are loads of contents to remember, even it is an open book exam. Choose it if you are really interested in communication protocols and networks. Though the grade is not that bad, it will cost more energy than other modules. And some of the content is a bit confusing, as well as the answers, don’t hesitate to ask question during lectures or through email.

# 2020-21

I personally found the notes and slides provided very poor and the lecturer didn't hold my attention well. Any slide can come up in the exam even if brushed over in 30 seconds of a lecture. That said, the exam is very basic and can be done easily if you know the material well.

Agree with most above, Barria is nice but bad at teaching. He just reads his notes and you can do just as well not attending lectures and learning all his slides. It’s a shame because OSI is such an interesting module. For EIE students who took Comms with DoC in 2nd year it might be worth it, less content to learn. - MG (EIE)

# Machine Learning (EE)

Imperial Module Page: here (opens new window)

This module is required to take Deep Learning in Spring

# 2021-22

# Quick Summary

Average module scores from 3 respondents.

  • Content: 5.0 out of 5
  • Organisation: 4.67 out of 5
  • Lecturer: 3.67 out of 5
  • Overall: 4.33 out of 5
# Comments

Coursework grade should have greater weightage given to the lab exercises rather than the past year exam paper questions.

First 5 weeks of lecture slides are hell to go through and understand thoroughly. Referring to the Caltech lectures and the book really helped though. The CW is a mix of Colab tasks and a past paper which is actually the exam paper of the previous year; the marking distribution is a bit weird though because most of the marks (~80%) come from the past paper so don’t spend too long making your lab results perfect, just make sure you have a solid understanding of what’s going on. Overall, every paper has a similar format with similar questions:

  • Q1 – Modelling a ML problem,
  • Q2 – Neural Networks or Learning algorithms,
  • Q3 – SVMs,
  • Q4 – Clustering or NN classification (but this is me recalling from memory so take it with a grain of salt).

Overall, despite how poor in my opinion the module was and how difficult it was to get through the lecturer’s content, it ended up being my favourite module from Autumn and what I found most interesting; would gladly take it again. -Nelson (EIE)

# 2020-21

Watch the Caltech lectures, they help a lot! The exam this year was quite challenging, but the module is interesting. I won't say it is taught in the best way possible and a lot of times, solutions given can be wrong, but this module has improved over previous years and hopefully it will improve even more. The phrasing of questions in exams is very weird sometimes and there is a chance you might not understand it. Overall, due to the lack of practice material, I will say this was one of my most underprepared exams!

Read through the Caltech lectures or any ML learning groups. Being remote asynchronous this term watching lectures on you own time with not the best explanations. The lecture does seem to be improved compared to the last years lectures. Get your linear algebra together because it will really help your understanding. The exam had weird phrasing and only having 2 past papers and some other examples which are not representative in terms of what they ask is though. The module content is interesting though. Get your report writing skills together because it takes long to type it into overleaf.

Caltech lectures will cover about 80% of the course (watch it before the term starts), they have started adding new content, good for the long run not for the exams. Again, here are some resources. Recomended channels: Ahmet Sacan, statquest(best), Victor Lavrenko, Naveen Kumar. Also, you don't really need to learn python, Matlab is good enough. Coursework requires minimal coding, you only need it to run routines so you can plot graphs, else you will need to do it by hand.

Cannot recommend the Caltech lectures enough, Abu-Mostafa is excellent at explaining content in an understandable way. The same cannot be said for the Imperial lecturers, though they do try. Course is mathematically very rigorous (doing Maths course will help), and to my disappointment there is essentially no practical element (very little coding) to it. The exam is also quite tough, more so due to the vagueness of the questions and the phrasing rather than the actual solution itself. Coursework is useful for the exam, for our year it was essentially the 2019 paper.

I’d say if you want to do well in this module, you cannot rely on lectures/lecture notes alone. The module is centred around ML theory and the maths behind it. It takes some effort to understand the topics discussed in the lectures. In the end, you need to figure out what additional resources work for you to help you understand. I found the Caltech lectures intriguing (although not adequately covering certain topics), as well as online articles (just googling specific ML topics). The GTA hours and the forum were a great help too. - Aaman

Did not go to a single lecture and was absolutely fine. I read the book and the extension to it. Oh wait I’ll attach it. http://amlbook.com/ which is the learning from data book. If you read that and some of the ebook chapters on the website, you’ll be fine. He even has video lectures (Caltech I think). It is quite maths and theory involved. Always great to look for other sources online no matter what module you’re taking. Very good and useful module for the CV – Simi (EEE)

# DoC Modules (Autumn)

Things to know about DoC modules:

  • DoC modules are typically 20% coursework based 80% exam based. Exams take place on the last week of term, and are predeeded by week where no new material can be taught (no lectures last 2 weeks of term).
  • They do not release past paper solutions. There are instead crowd-sourced solutions which can be found here (opens new window)
  • Some courses will assume you have knowledge which you might be missing (e.g. Operating Systems). A 4th year DoC student Eugene has a repository of rendered LaTeX notes, which are really useful in covering some of this content, which you can find here (opens new window).
  • You can find seperate DoC module feedback here (opens new window), but keep in mind it contains feedback from students with a different background.

# Operations Research

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 11 respondent.

  • Content: 4.64 out of 5
  • Organisation: 4.55 out of 5
  • Lecturer: 4.64 out of 5
  • Overall: 4.64 out of 5
# Comments

Overall a fantastic module. Basically math for solving linear programs (maximisation / minimisation problems with multiple variables and requirements). Doesn't take up too much time (probably my lowest hour module of autumn term), coursework scope is very well defined and bounded (basically just a problem sheet you do with a partner, I'd recommend you both do it and cross-check answers). Both lecturers (Ruth and Daario) are great, explain things well and are happy to answer questions. For the exam just do past papers (most recent 2 are the most relevant) and you should be set. You get out what you put in, very fair module. - Simon

OR was a very nice and interesting module. If you like maths, you'll like this module too. The workload is pretty much ideal. The coursework is basically a problem sheet. You do not need to put in too much work throughout the whole module, but it is not a free module. I would say it is just the right difficulty. The lecturers are engaging, the lectures are interesting.

Well organised

Very engaging teachers, interesting content.

The first 2 weeks are interesting, then it just goes straight to boring as hell. Like Literally. There are also a lot of errors in the materials they used to teach, and I dont think they changed it. That being said, I learnt a lot about the underlying algorithms for OR. So I guess it like those boring but useful modules

Interesting and different from what you’ll do in other modules. Definitely worth considering if you have any interest in fields that require optimisation like ML, logistics, or finance.

Very nice and interesting module

If you like math you should take it. relatively chill coursework and exam was good with no curveballs.

# Older

Incredibly dull in my opinion. Coursework marked harshly. Would not do again. - JZ (2020-21)

One of the most interesting modules I’ve taken (personal opinion). Noteworthy topics include linear optimisation (aside: this is a prereq for CO477 Optimisation and CO422 Computational Finance), game theory and minimax. Applications of knowledge in this course include optimisations in business (which business decision?) , finance (which investment?) and logistics (which route to take and where to build warehouses?). Worth noting that an ex-CEO of Singapore Airlines did a Masters in OR at Imperial (not sure if he applied it for route-planning, which--interestingly--appeared as a past year question in this module). First half (Casale -- No longer lecturing) is a tad bit slow (but some parts are heavy), and the second half (Misener) is well-paced and well-taught. I genuinely felt motivated to learn the material, and while there are some proofs to memorise, they aren’t heavy and come naturally once your understanding is sound. Coursework is doable, exam can be difficult (and contain some unseen material) but okay if you do the tutorial sheets. For EIE: No extra effort required. Slightly useful to go through some basic material in Logic to make sense of some logical statements (in Integer Programming), but not strictly required. For those considering taking EEE Maths for Signals and Systems: while both modules cover a lot of linear algebra, there isn’t much overlap except for some matrix fundamentals. I did not see taking both having an advantage/disadvantage. -LH (2019/20)

# Advanced Computer Architecture

Imperial Module Page: here (opens new window)

Course Page: here (opens new window)

Assumes knowledge of operating systems (kernel, page faults, virtual memory)

# 2021-22

# Quick Summary

Average module scores from 12 respondents.

  • Content: 4.83 out of 5
  • Organisation: 4.67 out of 5
  • Lecturer: 4.83 out of 5
  • Overall: 4.75 out of 5
# Comments

I really enjoyed this module. The content was super interesting, the Paul Kelly is a great lecturer, and what you learn is incredibly useful (both for writing more performant code and obviously understanding how modern cpus work). However, whilst this is a really worthwhile module, it's the most time intensive out of the ones I took in first term (the 2 courseworks especially), and there is SOOOO much content. The lecture slides are really useless on their own, so you'll have to make your own notes (or just be really good at remembering stuff). In terms of marks, I don't know how reliable of a module it is. I ended up doing really well, but many of my friends had marks in the mid 60s. I'm not sure how useful doing past papers are either, as the exam questions are based on an article written on a new CPU (I personally didn't do any). I feel as though if you write down reasonable things, the lecturer will try and give you marks, so being good at writing is a big advantage if you want to do well. If you do take this module, I would recommend learning about operating systems, as it's assumed knowledge (i.e. what's a page fault, virtual memory, kernel, etc.). Overall, this is a great module and worth the effort (also would highly recommend if you want to take performance engineering). Even if you don't take it watch the lectures during your 3rd year holidays (where you have lots of free time) or something. - Simon

Exam was quite strange, very wordy. Lecturer and content are amazing though pretty much almost feels like it should be mandatory for anyone relatively interested in hardware engineering.

A module with a lot of breadth rather than depth, Paul Kelly is very passionate about the topics and open to having discussions about many of the issues in Comp Arch. If you enjoyed ISA, this is a module to pick.

Really interesting and very useful course definitely recommend, however the coursework is very time consuming and unrelated

I love Paul Kelly. You learn a lot. No kidding. But the courseworks are hideous in terms of time you can spend on it. It’s literally optimising either the hardware or the software, so you can spend infinite time on it.

The coursework is manageable, but underepresented in terms of time dedicated to percentage of mark. Otherwise the course was great.

I’m ngl this was probably by far my favourite course from Autumn term, and arguably of my entire Imperial degree experience thus far (although still with time to go). While the material may seem abstract at first, Paul Kelly always manages to find a way to competently and clearly explain it in a way that makes you feel like you always knew the intuition behind it, and always presents real world examples underlying all the concepts we learned. I particularly enjoyed the sidechannels section of the course, as it overlapped CompArch with Security giving even more practical flavour. The coursework took a fair bit of time though this year, requiring quite a bit of exploration, you have two tasks which vary little in topic year on year but vary on code. The first task requires you to modify a simulator processor’s configuration (cache, exec units etc), in order to run a benchmark program with minimal energy consumption, the second task requires you to optimize code to hasten the exec time of a given piece of code, these courseworks took quite a lot of time investment but for rather low returns (only 10% each). Exam is pretty interesting in that you get a recent article on a new-ish processor specification about a month in advance to pore over, and you get asked questions based on this tying into the course, some may like it and others may not, but imo it was a pretty cool way to assess our understanding. The tutorials help reinforce understanding and have good discussion, size isn’t overtly large so everyone more or less gets a say, and when you’re lacking from knowledge from a given topic, the course textbook compensates for this and then some, it’s well supplied and well rounded. Honestly, if you’re EIE and you loved first year DECA, and you loved second year ISA&C, this module is an absolute no-brainer, take it. - Aryan

As others said, the CW is very lengthy so start your CW early! You have 2 separate reports to be completed with each having 2 weeks between the day they’re given and their deadline so make sure you put like 2-3 hours in per day straight from day 1 otherwise you end up having to cram towards the end like I did which resulted in me falling behind on content from other modules. - Nelson

# Older

Honestly best course and best lecturer. Paul Kelly can seamlessly explain any complicated concept, and even though everything was remote, his lectures were great. In terms of the course content: when it comes to coursework, Computing students might enjoy it slightly more than EIE students, as most of it rotates around the high level perspective of computer architecture (in CW1 you optimize a processor’s configuration for a specific program, and in CW2 you optimize a C program for a specific processor). On the theory side (lectures), you touch on many complicated and fundamental computer architecture concepts to design a processor or optimize software when interacting with it, and you can use those in other modules or projects or even low-level / hardware interviews (especially EIE). For the exam, it’s different than the usual, you get a paper on a recent processor to study a month before and most exam questions are about applying the lectures content to that processor (even though the exam went okay-ish, I'd take that module again). A definite go if you are in EIE. EDIT: after the module, lookup pwn and hardware exploits from CTFs, you’ll know the hidden value of this module. I think there should be some merge with netsec in some way! – Jaafar (2020-21)

Easily my favourite course from Autumn term. Paul Kelly is really passionate about the subject and always happy to answer questions. Coursework was way too time consuming though imo. Exam was actually quite interesting since it’s based around a research article. Even if you aren’t sure of an answer – if you explain your reasoning, he will generally give credit I think. For revision, a bunch of us got together and answered past paper questions using this year’s article (also, make sure you know the article really well) - JZ (2020-21)

# Simulation and Modelling

Imperial Module Page: here (opens new window)

# 2021-22

No feedback this year.

# Machine Learning (DoC)

Imperial Module Page: here (opens new window)

Course Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 14 respondents.

  • Content: 4.57 out of 5
  • Organisation: 4.86 out of 5
  • Lecturer: 4.57 out of 5
  • Overall: 4.71 out of 5
# Comments

Great module, perfect if you're interested in ML. You get a lot better at python (especially numpy / pytorch). One downside is that you can't do Deep Learning in Spring term, but you can always do DoC DL in 4th year. Courseworks are easy to do well in if you put in the time, teams of 4. You might loose a few marks for bad code style, especially because you're not explicitly told what the lecturers expect, but just ask some DoC students (or me) for tips. The quality of the lectures and labs is very high, making it a really easy course to do fully remotely. For the exam, again, do past papers and you should be fine 😄 - Simon

Content is very surface level, nothing particularly useful that couldn’t be taught outside of the module, but a good module for marks.

One of the finest, well-structured and guided module I've taken. The module does full justice to its title, and there are plenty of resources to learn both the theory and practice. The coursework was indeed extremely useful in developing practical ML programming skills and the exam was a fair test of all the concepts covered. All the professors were pro-active in releasing lecture materials, content and labs on time and their weekly Q&A sessions and the online quizzes made the module one of the most interactive modules I've chosen.

Very good and interesting module. Lectures are very good quality, lecturers are engaging. Does not take up too much time, the courseworks are doable. The exam was also straightforward.

Module is very well organised, this course has been running for a long time, so everything is set out well by the lecturers. It's a very basic introduction to ML, if you want more go for the EE version. Previous years comments about the EE one being less practical seem to be no longer true, as they do a lot of actual programming as well. This is definitely more an introduction than anything else.

Coursework seemed to be marked very generously

Really good introduction to machine learning. Also very fun, would say it’s my favourite module next to embedded

Pretty good module that covers a lot of topics, including some less known ones. Of course it’s an intro module, the cost of this breadth and focus on application is less depth and fundamentals than the EE equivalent.

Really good module. Really good crash course on Python and engaging lectures/quizes/labs etc. Also a pretty fair exam.

Honestly a good course well worth taking if you’re fresh to this area, it gives you a rounded-base of competency in most of the useful and applied ML techniques and I hear has a lot of overlap with Spring Term’s Computer Vision. The Coursework took a little bit of time to do but ultimately was not that hard and with a good group you can bang out 90+% on both of them, as it’s just a matter of passing LabTS tests and having a legible report. Make sure to do that so you have a good cushion for the exam. Exam itself was not that bad this year, there are tiny curveballs here and there to compensate for the online setting and a reduced amount of recall questions to boot, and you’ll be asked predominantly questions based on the techniques you learnt which rely on quite simple applications of maths to do. If you want a decent grade while also learning stuff that’s more relevant than most, take it. (As an EIE student, be aware that by taking this module over the EE ML module – which seemed to just be entirely theoretical, you do forfeit taking the EE Deep Learning module in the Spring Term, which has a lot more application, as EE ML is the pre-req, don’t deep it though because DoC has a DL module in the 4th year so you’re calm) - Aryan

# Older

Pretty well taught, good introduction. Get a good group for the coursework. If you’re EIE: do the DoC ML module if you want more practical stuff. Haven’t heard any good things about EEE ML course, which is also a lot more theoretical. - JZ (2019/20) Note from current rep: The EEE course has (allegedly) become a lot more practical in recent years

# Type Systems for Programming Languages

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 3 respondents.

  • Content: 4.0 out of 5
  • Organisation: 3.33 out of 5
  • Lecturer: 3.67 out of 5
  • Overall: 3.33 out of 5
# Comments

Very difficult & misleadingly named, but very interesting when you get your head around the core concepts

As an EIE student you're gonna need to do some external studying to catch up on some topics that DoC students will already have covered. That said the notes the lecturer gives are a great resource and it is a really interesting and doable course.

# Older

Agree with other comments that this is a good module, and that exam is very doable (if you put in effort and time to learn definitions, which are then used in derivations). While proofs are difficult and are bulk of the lectures to motivate applications and derivations, fortunately they are unexamined. Steffen is an amazing lecturer who loves the content and does his best to motivate you to appreciate type systems. While this course mostly deals with theoretical CS, its applications are not too far-fetched (e.g. implementing a type inference system (duh)). This course also serves as an ad for Steffen’s research topics, which he encourages students to consider by the end of the module. For EIE: DoC students will have an advantage of knowing lambda calculus and functional programming (though these aren’t strict prereqs and he will go through some relevant content). I found it helpful to go through Dr. John Wickerson’s lambda calculus lecture PDF: https://johnwickerson.github.io/talks/modcomp_lambda_2015.pdf, as well as a Haskell crash course: https://www.youtube.com/watch?v=02_H3LjqMr8). It is possible to score well without revising these fundamentals though. Also, this course is (very slightly) helpful if you proceed to take HLP in Spring EEE, which uses F# (F# implements a Hindley-Milner type system, briefly covered in this module) -LH (2019/20)

# EE Modules (Spring)

These modules are "coursework only", although many of them have some kind of test/quiz which counts towards your grade. Some coursework deadlines extend past the end of term (although ideally this shouldn't happen)

# Digital System Design

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 3 respondents.

  • Content: 4.67 out of 5
  • Organisation: 4.33 out of 5
  • Lecturer: 5.0 out of 5
  • Overall: 4.67 out of 5
# Comments

Workload is high, but very interesting for people interested in hardware design, plus there is a competitive aspect to it which helps

# 2020-21

Really good module for developing an understanding of digital systems. It really helped to see just how much of a difference different design techniques made. The lectures were nice but seemed disconnected to the coursework imo. The coursework is time-consuming, and you need to be really on top of it as there will be loads of errors/bugs but as others have said, it’s very rewarding. - HH

Very time-consuming module. Definitely worth taking if you enjoyed Digital Electronics (with Professor Cheung) and Computer Architecture (Dr Clarke). As our DSD was done remotely, it was very hard to sort out debugging issues in a short amount of time, so be prepared to allocate a lot of time in the week for sorting out issues related to this module. GTAs are helpful but generally you do not get much time to speak with them. Dr Bouganis is very supportive and wants to help you out wherever he can, so be sure to ask him plenty of questions. His feedback for the 3 reports you are required to complete is also very detailed and helps you to learn. - Arijit (EEE)

# Advanced Signal Processing

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 3 respondents.

  • Content: 3.67 out of 5
  • Organisation: 2.33 out of 5
  • Lecturer: 3.0 out of 5
  • Overall: 3.0 out of 5
# Comments

Seemed relatively unorganised, unclear deadlines, lectures often not recorded properly

Not enough coursework help. Worksheets did not help in doing the coursework enough, which incentivized people to not do them.

# 2020-21

I would recommend this module only for those who are interested in signal processing and/or machine learning principles. Professor Mandic tries to make the lecture content interesting by including real-world examples, which I thought was a really good idea, however this content does not help at all with the 2 coursework assignments (Interim report due normally beginning of February and Final report (and code) due end of March). One thing that I did not like about the Interim Report was the feedback I got back. For me, it did not give me any opportunities to learn, just ways to improve how my write my LaTeX code. However apparently the point of the Interim Report is to check whether you can design a report correctly, so bear that in mind. A word of warning for the final report, don’t expect to get any feedback for it until mid-August and the final grade till mid-September (for the 2020-21 year, MEng EEE/EIE students got letter grades back on the 15th of September). This feedback is not individual feedback. They send out an email to the whole ASP cohort which gives comments on how the group performed on the questions. The document can be found here (opens new window) In my opinion, GTA support for this module is quite poor compared to other 3rd year modules. The GTAs don’t show up until after you finish the Interim report, and when you ask them questions, they are unwilling to give answers, since the coursework has not been changed for several years. They are also in general very slow to respond to questions you post on the Q+A forums. Make sure that plenty of live sessions are organized, as they are happy to discuss the concepts in the lecture slides. To wrap this up, I am only giving my experience after taking this module remotely. There is a lot of interesting content, but you must assess whether you want to put the effort into the two reports, based on how much feedback you will receive. Also make sure to contact the Head of Year and Director of Undergraduate Studies if feedback is not being released after an adequate amount of time.

The content is interesting for those who want to learn about real-world signal processing. However, the lecturer is not great at explaining and rarely bothers to answer questions over email or on Teams, which is so disappointing given the module was taught remotely. The GTA support is also bad because they often seem confused with the content themselves or will give vague or contradictory answers. Being passionate about signal processing, and asking higher years who took the module to compare plots is essential to doing well here. The CW is a 40 page report based on a long set of MATLAB exercises. You should start working on it ASAP and put in enough hours per week so you don’t end up scrambling in the end.

This module is awful. The content is interesting and the applications are useful, but the general feedback and support is terrible, and Mandic does a bad job of explaining some tough concepts. I wouldn’t recommend this course unless you have a serious interest in signal processing.

# Real-Time Digital Signal Processing

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 1 respondent.

  • Content: 4.0 out of 5
  • Organisation: 5.0 out of 5
  • Lecturer: 5.0 out of 5
  • Overall: 4.0 out of 5

# 2020-21

Short answer: don’t pick it unless there is a guarantee that the module was fixed. Nothing was done in C or assembly, only simulink. The lectures are very insightful about real-time DSP, yet most of the things were really improvised "on-the-go" style, especially that no solution was practically provided or possible for the largest coursework piece. Also no GTAs, so careful about support! (Although Adria is super kind and helpful, and answered all emails and questions throughout the term) Update: there will be a lot of improvements to the module next year, I believe it’s worth taking the module after aligning your expectations correctly.

Adria changed the content of the module significantly from 19/20, as everything was done with an under-powered TI board on Simulink. The lecturers give you some insight into practical DSP, but unless you took autumn-term DSP, you will not really know why you’re doing what you're doing. There was also no GTA support, so do try to confirm with him that he will actually have GTAs this year. On the bright side, Adria is supportive and willing to help students out. He was generous with how much time he devoted to support and answers emails quickly.

# High Level Programming

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 18 respondents.

  • Content: 4.39 out of 5
  • Organisation: 3.28 out of 5
  • Lecturer: 4.0 out of 5
  • Overall: 3.94 out of 5
# Comments

Tom Clarke did not have enough time to run the module properly this year. Everything felt very scattered, we never received feedback on the initial assignments (which makes it difficult to get a reliably high mark in the courswork when a large part of the mark is from code quality, which can be quite subjective), and the lecture content was not remade, despite some of the lectures being very difficult to follow as the cursor wasn't captured in the video. However, learning F# is a lot of fun, and I think it did make me a better programmer. Also, as an EIE student, what else are you gonna take? The coursework is developing Issie, where you're put in groups of 6 (you only get to pick a partner / group of 3 but those are non-guaranteed), which adds another big luck element to your mark (this is partially mitigated by having only 30% of the overall module come from the group mark, but there are still dependencies in the individual section where you could get fucked over by a bad partner. In my experience, EEE students provided little to no contributions (so if you're EEE, please only take this module if you're decent at writing code), but you will probably have some bad teammates regardless of which course they're from, so you may need to take on additional work to compensate (standard group project stuff you're probably already used to). It's cool that you get to work on an existing codebase, and have a project that's actually meaningful (best group gets their code merged with Issie). The marks are split 60% for the coursework, 25% coding test (think online assessment for companies), which was quite brutal (class average was 55%), and 15% guaranteed from the initial assessments / TBLs, which you will get full marks in if you do them, balancing out the test a bit (total class average pre-coursework was 72%). Overall would recommend. - Simon

Individual Coursework is total BS. Do not take for a consistent module.

Will improve progamming skills. Organisation is a bit all over the place, but Tom Clarke is helpfuly on EdStem. Start work early.

Marking seemed somewhat arbitrary/based on opinions, but the coursework & labs were fun to do

Really liked this module. Only take it if you are good at coding and if you really enjoy it. The coursework takes a while to do, but the work is really cool. The structure of the module is really good, but the organisation could have been better. Tom Clarke does not have enough time to run this module, and so we received very little feedback on coding style before the courseworks.

Gives good experience working on an existing codebase and contributing yourself. Functional programming experience which DoC get but we dont. Coding heavy. EEE students can be deadweight if they arent into coding.

Tom Clarke can be a little unclear at times with what deliverables/specification of marks he wants. F# was very interesting to learn though, took quite a lot of time in the final coursework though.

This is an interesting module as you get to work on an actual tool that is being used by other people. Dr Clarke places a lot of emphasis on good coding, and these are transferable skills to other languages as well. F# seems bad at first, but as you get to using it, it's actually not too bad.

The worksheets are really well done and are the best resource out there to learn F#. The rest of the module is unpaid boring work for Clarke’s project. It takes a lot of time and you don’t learn any valuable skills. Would not take it again

Midterm disproportionately difficult, coursework very interesting albeit unclear in terms of expectations

I like Fsharp, and also learning it. The module is you help Tom Clark implement or improve his ISSIE module. Work load is OK

Biggest problem is lack of feedback and structure as the module progresses, so make sure to take with friends. Also heed Dr Clarke’s warnings, don’t take this module if you don’t feel confident programming or don’t have the time for this time sink. Definitely worth it otherwise, one of the best EE modules.

Not a bad module to take: he keeps discouraging people at the start but that’s only because he himself wants to keep the class size small. he’s a passionate lecturer who actually replies to people’s messages and emails on time which is rare in this department. the entire purpose of the coursework is rather self/department-serving but you’ll learn a lot wrt functional programming and good programming practices.

# 2020-21

Honestly I really enjoyed this module. Take it if you want to be a better programmer. You get out what you put in. F# is actually a really nice language to write in. Be aware that it is taught by Tom Clarke – you’ll know whether you like him or not from first year I reckon. Make sure you pick a good group – you'll be working a lot with your group and (unless it changes) you only pick half of the group. Also make sure you learn how to use Git beforehand! - JZ (EIE)

Some people say this module is tough. I honestly don’t think it is once you understand what functional programming is all about - so try to do that. F# is a very productive language to work with – it’s easy to debug, the code looks beautiful and it’s...well, high level. In comparison, I find C++ rather stressful as you need to keep track of the variables you’ve declared...F# is just functions! As JZ mentions, it can improve your ability as a programmer. I recommend checking the module out to see if it is for you. – Aaman (EIE)

The final coursework is kinda hard but really rewarding. Dr Tom Clarke is amazing but he’s still Dr Tom Clarke so it’s a really independent-learning module. It is still worth asking him or the GTAs for any help. Get the worksheets in early and try to ace the timed programming segment to put you in the best position for the final coursework. That one can be hard. The struggle of this project is picking a great group in my opinion as the workload is hefty at the end when you have a bunch of other deadlines but I was pretty lucky. If you like programming, it is really interesting learning functional programming so I would encourage taking it. - Simi (EEE)

Functional programming moves basic programming ideas to the compiler. Overheads such as creating looping iterators are removed, so you don’t need (for int i=0; …..) anymore and can write more high-level, concise code. It is a great skill to have and even Python supports it. If you can follow the worksheets that Tom Clarke has prepared you are definitely set to ace the coursework. Coursework’s workload may not be evenly distributed among your team so make sure you voice out your concerns to the GTA’s or to Tom Clarke as early as possible if such situation is happening.

# Embedded Systems

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 12 respondents.

  • Content: 4.17 out of 5
  • Organisation: 4.0 out of 5
  • Lecturer: 3.58 out of 5
  • Overall: 4.08 out of 5
# Comments

Embedded Systems is a programming module (EEE students you have been warned), where essentially all of your learning is done by doing. The course is split into 2 major projects which are each worth 50% of your overall grade, which are both are done with a group of 4 that you can choose (obviously having a good group makes this module significantly more enjoyable, hopefully at this point you know people you enjoy working with). Stott also gives some lectures, which are mostly skippable / watch on 1.5x speed, but he does his best not to waste much of your time. That said, he gives clear marking criteria for both courseworks, and is a fantastic source of information to ask questions to directly (I reached out to him a lot over teams about CW2). The first coursework is by far the most difficult / most time-consuming, it's an open-ended project where you can choose some sensors and design an IoT system with a raspberry pi (and probably cloud computing), think Information Processing without the painful FPGA bs. You need to write code in python for the pi to use the sensors, and the rest of your system can be written in whatever web dev stack you prefer. Communication with your server is done with MQTT, so if you already have experience with that from info proc / the rover you'll be in a good spot on the technical side of things. The most difficult / painful parts of this project (in my opinion) are coming up with a good idea for a product, and doing the front-end (fuck front end 😠), so make sure you have someone in your team that likes doing it. You can also invest an almost unbounded amount of time into this project, which can be difficult to balance with your other spring term modules, but you can really make something you are proud of (and flex on your CV). The second coursework is much more chill, where you need to write the firmware for an electric keyboard, with a strong emphasis on multi-threading (all in C++ 😍). All the base functionality is done by following 2 sets of lab notes (which should take you around a day to do), and from there you can add some extra features, but the amount of stuff you can do is significantly lower than for CW1. I found that DoC's Advanced Computer Architecture / System Performance Engineering helped a lot with having an existing understanding of multi-threading, and made this coursework feel like you're putting the knowledge into practice, making it a ton of fun. Another thing is that Stott actually reads (and allocates some marks) on code quality, so it's a great opportunity to learn / use good software engineering practices. Would definitely do again (but that first project was fucking tough). - Simon

Good module for easy marks (from EIE side is like a lightweight Info Proc coursework + some fun concurrency stuff)

Very good and useful module. It is basically a purely coding module, so if you don't like coding / are not good at is, do not take it! A lot of EEE students struggled with the courseworks because of this. For EIE students it is a very interesting module though, I think. The first coursework is nothing new, just building an IoT system. The second coursework is less open ended, lab instructions guide you through most of the project. The second coursework is on multithreading, so if you also take DoC System Performance Engineering, this module complements that module pretty well, you can put the theory you learnt there into practice.

Fun coursework based module. Gives full stack experience + multithreaded programming experience which is useful if you dont do it elsewhere

First part of embedded is very open ended and very interesting, second part I found less interesting and more time pressured. Very fun first part though feels like your own personal project very tailed to you.

First half of this module is great, very open-ended in designing your own IoT product. Second half not so much, very restricted in what you can do, and takes up a lot more time as well.

The first coursework is a bit boring(MQTT)but it gets so much better with the next one(stm-32). Love the coursework but hate the additional extra work like making a website, editing videos etc.

Overall very good

# 2020-21

Not that difficult I think. Get a good group that can work well with. Not that theoretical in my opinion. Veryyyy slow feedback. Slides weren’t that interesting tbh. JZ (EIE)

One of my favorite modules! You get to be creative and to work with your friends. If you have some other knowledge about websites, electronics, ML, you can show off and apply it on the projects. Important to pick a good team as it can really reduce your workload when it’s a good one. Stott is also a great lecturer and you can ask questions during labs, GTA will (generally) help. - MG (EIE)

# Deep Learning

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 3 respondents.

  • Content: 4.0 out of 5
  • Organisation: 3.33 out of 5
  • Lecturer: 3.67 out of 5
  • Overall: 4.33 out of 5
# Comments

Well taught with interesting material.

Only issue I would say is that there is a 10% assessment quiz on the last week of term, however this coincided with horizons exam and so the organization could have been better.

# 2020-21

This module is worth it if you want to find out about deep learning and how neural networks can be applied. I found the lectures to be nice, the GTAs were helpful and knowledgeable. However, I really enjoyed the Google Colab notebooks (in which you work with Keras models hands on). They really stimulate learning. Also...Colab Pro allows you to use Google Colab for longer time...but it’s perfectly possible to use the vanilla non-pro version if you manage your time well. In fact I kind of left tasks till the business end of term and I still got along fine without Pro. - Aaman (EIE)

Just use the Collab notebook, you can even get a headstart by cloning the previous year and doing most of the tasks+ report before they release it. TBF if you know a little about ML it’s a good way to get a good mark for people who are good at working autonomously – MG (EIE)

Didn’t watch a single lecture and still got a decent grade. - Daryl

Not a very hard module if you can learn stuff yourself. You really don’t have to go to the lectures I think but it’s good to give your day routine. The Google Colab stuff was actually fun and machine learning helped. Use the feedback in the interim report because they like you to explain stuff in a certain way. Do not think you can leave the report last minute, I tried this and almost failed the module so make sure you leave time to run simulations, write up and format. Also split up the notebook running between mates and computers if you can. – Simi (EEE)

# Robotic Manipulation

Imperial Module Page: here (opens new window)

This module was introduced in 2021-22

# 2021-22

# Quick Summary

Average module scores from 8 respondents.

  • Content: 3.38 out of 5
  • Organisation: 2.88 out of 5
  • Lecturer: 3.62 out of 5
  • Overall: 3.38 out of 5
# Comments

The module was introduced for the first time this year, and despite the logistic backlogs, it is one of the most hands-on, state-of-the art modules. The lecturer is extremely passionate in the lectures and ensures that students get to learn around the subject and not just "go by the book". To make it more useful, I would recommend having more frequent lab sessions in the early days to avoid heavy workload in the final weeks.

Really fun coursework with robotic arm, but it can be very time consuming, so make sure to start early. Lectures do not have much depth and mainly complement the coursework.

Should have started the second coursework much earlier in term. Too many tasks for the amount of time. There is an organisation issue if 24/7 lab sessions had to be put into place in order to fulfill the coursework. More guidance could have been given… Overall module was very interesting and fun but lack of module organisation really led to a lot of stress that could have been avoided.

Lot of work but good learning experience

Cool coursework that allows you to work with hardware you’d rarely get access to otherwise, but most of the content not directly connected to that is somewhat shallow. Take with a grain of salt since the module is new and will likely change.

Lecturer can get quite aggressive at times even when a student messes up by accident. Robots dont work properly and you have to stay up till 12am just to be barely on track.

Good physical aspect and the hardware is generally not trash but organised not very well (due to it being its first year) and he doesn’t actually teach you anything during his lectures. Half the GTAs are useful and you’ll quickly learn which. The unethical part about the coursework is that most if not all groups have to book lab slots every day for about two weeks before the deadline and even stay until midnight to get this shit done. sharing robots also means that settings get changed between used and equipment eventually becomes jerky for no apparent reason. also did I mention he doesn’t actually teach u anything and doesn’t demonstrate mathematical examples well (gives simple trivial example and moves on)

# Principles of Classical and Modern Radar Systems

Imperial Module Page: here (opens new window)

This module was not available for EIE in 2021-22, so there is no feedback for it

# 2020-21

Really good module, would highly recommend the module. The content is challenging but explained well, and Manikas and the GTAs provide excellent support. The coursework is on MATLAB, and whilst challenging is certainly doable. I would advise doing Manikas’ Comms module in Autumn term – its not necessary but will help a lot. (EEE)

# DoC Modules (Spring)

Things to know about DoC modules:

  • DoC modules are typically 20% coursework based 80% exam based. Exams take place on the last week of term, and are predeeded by week where no new material can be taught (no lectures last 2 weeks of term).
  • They do not release past paper solutions. There are instead crowd-sourced solutions which can be found here (opens new window)
  • Some courses will assume you have knowledge which you might be missing (e.g. Operating Systems). A 4th year DoC student Eugene has a repository of rendered LaTeX notes, which are really useful in covering some of this content, which you can find here (opens new window).
  • You can find seperate DoC module feedback here (opens new window), but keep in mind it contains feedback from students with a different background.

# Graphics

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 2 respondents.

  • Content: 4.5 out of 5
  • Organisation: 5.0 out of 5
  • Lecturer: 3.5 out of 5
  • Overall: 4.0 out of 5
# Comments

Exam was not too difficult although you needed to prepare lots for it, coursework is really interesting. This course if one of the most interesting I have done at Imperial. Lectures were not too hard to follow either which is good.

# Custom Computing

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 3 respondents.

  • Content: 4.0 out of 5
  • Organisation: 4.67 out of 5
  • Lecturer: 4.67 out of 5
  • Overall: 4.0 out of 5
# Comments

Small class, but very interesting. Many opportunities to interact with the lecturer and have questions answered. For EE students, the first half of the course may be a little bit strange as it's a very very very high level view of HW design, but the second half is more about HLS which is definitely more useful career wise.

Very interesting academic module, not sure how much real world use it has

# Older

First half was quite boring imo, honestly I didn’t put in enough time to learn Ruby properly (had a lot going on), lectures I didn’t find that engaging. The problem sheets are definitely worth doing. Todman is super engaged with the course and really responsive on EdStem. His half is easier than the first half imo. JZ (2020-21)

# Computer Vision

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 9 respondents.

  • Content: 4.44 out of 5
  • Organisation: 4.56 out of 5
  • Lecturer: 4.11 out of 5
  • Overall: 4.33 out of 5
# Comments

The module itself is extremely insightful, state-of-the-art and develops upon the applications of machine learning in vision. The coursework is well-organised, well-guided and has clear expectations which can be completed in the allocated time without much hassle. The exam was based on lecture materials, though some question parts were computationally long.

A lot of overlap with other modules. The beginning has some signal processing stuff and computer vision stuff that you might already know especially if you did the computer vision subsystem in the 2nd year design project Mars Rover. There is also overlap with deep learning, but it goes more in depth into computer vision techniques. Otherwise, it was well taught and covers many interesting methods.

Exam was not too difficult, lots of content but quite interesting and not particularly hard to follow. Coursework only took around 15 hours in total (over 2 CWs) and was very useful/ interesting to learn.

The module was great. Very interesting and if you put in the work you will definately do well. Lecturer was very approachable at the end of the lectures and made the effort to do in person lectures.

# Robotics

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 5 respondents.

  • Content: 3.8 out of 5
  • Organisation: 4.6 out of 5
  • Lecturer: 3.6 out of 5
  • Overall: 3.8 out of 5
# Comments

The module is certainly well-organised and there is sufficient guidance and support provided throughout through the lab sessions and lectures, which go hand-in-hand and the exam is also closely tied to the labs and lectures and so is indeed a fair assessment.

Easy module but not the most interesting. Take it if you know you’re taking other hard modules to balance the workload

# Older

Really well taught. Not that much lecture content to go through since most of the content is practicals. Practicals etc generally pretty easy. Taught remotely in 2021 using Lua + CoppeliaSim. Get a good group but also make sure you put in the effort (really useful for prepping for exams) - JZ (2020-21)

# Network and Web Security

Imperial Module Page: here (opens new window)

Course Page: here (opens new window)

Simon's Lab Notes: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 7 respondents.

  • Content: 4.86 out of 5
  • Organisation: 4.0 out of 5
  • Lecturer: 3.14 out of 5
  • Overall: 3.71 out of 5
# Comments

Even if you're not interested in security, this is a great module to improve your understanding of networks and how devices communicate to one another in the real world. The labs are the highlight of the course, and are super fun to do (you'll really feel like a hacker), but very little guidance is given from the lecturer and no official solutions are provided which can be really annoying (although I published my lab notes on github so hopefully you can use those for your learning 😄). There will probably be times when you get stuck, don't be afraid to google things, and it's a lot more fun to go through the challenges with a friend. The lectures are very dry, but Maffeis doesn't waste your time and splits up the lectures into shorter, more digestible videos which makes them a bit easier to get through. There is a lot of content, so taking notes is definitely good, but Eugene also has some notes on his github you can refer back to (see link under the DoC modules header). The coursework is quite straightforward (basically a reading comprehension and a few questions about analysis code vulnerabilities), has a few tough questions, but overall takes up very little time and is easy to get a high mark in. However, the exam for this module is a different story. The exam is sponsored by NetCraft, and the top 10 students receive a 250 pound Amazon voucher. Whilst initially this seemed really cool, and actually drew me to the module, upon reflection I think it's not ideal for a module exam to be like this. Since it's a competition, the exam is extremely difficult, and even if you do all the practice that Maffeis gives you you will be under-prepared for the level of difficulty the hacking style questions pose. None of the previous exams hacking exercises are available, and so there's no real way for you to practice these, other than having a lot of experience in capture-the-flag competitions (although to be honest I'm not sure how much these even help). As a result, everyone I know who sat the exam feels like they performed badly. Whilst I'm not sure if this general feeling of low performance will be solved by moderation, I think it is a shame as it doesn't really let you show off all the skills you developed through the labs which is where the bulk of the learning comes from. Other than the exam though, this was a really enjoyable module which I would highly recommend (and if you're crazy enough to take an extra module, I'd say this one is a great candidate). - Simon

This module is very interesting and useful. The lectures are very dry and hard to watch, but the labs are fun to do. Don't get scared of the labs, just google things! The lecturer says you do not need previous experience in security, but I don't think that's true. The coursework is test-like on answerbook, and does not take up too much time. The exam was way too difficult. The exam has some CTF parts, we had to find 3 flags, so for that part I suggest to practice on picoCTF web exploitation for example. The rest was very difficult theory questions, to which we were not prepared for.

If you’re EIE don’t take this module unless you’ve done some preparatory reading and practice. Get very familiar with PHP,JS, HTML,CSS and with how the web works

Very interesting subject material, extremely hard exam

Content is great and very practical. You'll learn quite a lot since theres a lot of content but it's all very interesting. The exam however is very difficult but it's most likely to be expected as netcraft sponsored this year's exam

# System Performance Engineering

Imperial Module Page: here (opens new window)

Course Page (First half): here (opens new window)

Important Note: The lecturer for the second half of the course changed in 2021-22, keep this in mind when looking at older reviews

# 2021-22

# Quick Summary

Average module scores from 5 respondents.

  • Content: 4.8 out of 5
  • Organisation: 3.8 out of 5
  • Lecturer: 4.2 out of 5
  • Overall: 4.0 out of 5
# Comments

SPE is a must if you are interested in low-level / high performance programming. Most of the course uses C++, but Holger's coursework also uses Java (ew). This module is split into 2, Holger's part which focuses on profiling and optimising single-thread performance, and Luis' part which focuses on multi-threading / scale-out. Holger is a fantastic lecturer, and makes the content really interesting. However, I found the coursework poorly organised, with quite a few technical issues that wasted a lot of time (although an extension was given to help mitigate this, but a lot of my time was wasted in a term where you really can't afford to waste time). You are tasked with profiling a Java application, creating a micro-benchmark and hypothesizing on how the performance of this benchmark would be affected by changing some parameter of the data, and then re-implementing this benchmark in C++ and commenting on the differences in performance. This felt quite open-ended and daunting, (especially since I had no Java experience), and Holger did not provide that much guidance. In contrast, Luis' lectures are quite dry (although I think the content is still very interesting), but the coursework was extremely straightforward, where you need to create a thread-safe class in C++ and do some very simple server provisioning calculations / some analysis. The coursework was made smaller because Luis vanished for a week or so during the term, so it might be more difficult in future years. The exam was very essay-like (particularly Holger's section), which might disadvantage you if you're a non-native English speaker, and since there are no real past paper solutions I found preparing for the exam quite challenging. Doing Advanced Computer Architecture definitely helps with Holger's part of the course, but isn't necessary, and Luis' part links really well with Embedded Systems. Overall, the content this course actually covers makes it more than worth it (seriously you should do this module or at least watch the lectures), but it's by no means a guaranteed good mark, even if you put in the work. - Simon

Holger is a beast and the concurrency section is pretty good for EIE students since it’s content that wasn’t covered

There are two parts to this module taught by two professors. Part I (Dr Holger Pirk): Both the lecturer and the content are intellectually stimulating and quite significant to any software/systems engineering students. The coursework however was unreasonably challenging and time-consuming, and did not account for the fact non-computing students hadn't covered some of the programming languages in as much depth as the pure computing ones. The exam questions were reasonable but open-ended, so more practice questions similar in difficulty and scope would have helped. Part II (Dr Lluis Vilanova): Unfortunately both the lecturer and the content for this module were not well-organised, and at times the content seemed a bit jumbled up with no clear flow. Again, a lot of assumptions were made regarding pre-requisite content which is not explicitly mentioned in the module webpage so it is quite misleading to state this module doesn't require pre-requisites. The coursework was made more accessible following backlash due to late upload of specification, however there was practically no questions provided to practice for the exams and the indeed the exam was unreasonably ambiguous due to lack of familiarity.

The lectures are very interesting. Holger's lectures are very good quality. The first coursework is a timesink, and it is very open ended, so you don't really have any idea about what they expect. The way this coursework is assessed is kind of arbitrary as well. You have to create a hypothesis and test it, and there are 10 bonus points for an interesting hypothesis, but I would suggest you go for a simpler hypothesis, since if your hypothesis is more complicated, it is more likely to be wrong, because we do not have enough experience. If your hypothesis is wrong they will take away a lot of marks from you! The second coursework is straightforward, it also does not take up too much time. I did not like the exam, because mostly consisted of open-ended essay-style questions, so I was assessed more on my writing skills than on my actual understanding. As an EIE student, this module is doable, but the module expects you to know about operating systems, and in the first coursework, you need to write a bit of Java code. Taking ACA definitely helps with this module. I watched the first few ACA lectures, and that seemed to provide enough knowledge for taking this module.

DoC has an advantage from knowing Java for firdt CW but mostly in C so its fine. Very useful and applicable for Software Engineering

# Older

Holger’s part was really interesting, pretty well taught imo. Recommend taking ACA if you’re thinking of taking this since he talks about architecture quite a bit. Giuliano’s half was a lot more dull, but the slides and tutorials are good prep for the exam. Holger’s half is harder than Giuliano’s imo. - JZ (2020-21)

# Distributed Algorithms

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 3 respondents.

  • Content: 5.0 out of 5
  • Organisation: 4.67 out of 5
  • Lecturer: 4.33 out of 5
  • Overall: 4.67 out of 5
# Comments

Naranker’s style is really dull, but it’s a fine module with tonnes of usefulness, implementing RAFT is a challenge coming from non-functional background so keep that in mind.

The coursework really helped with understanding the module content for the exam

I really like the lectures, and the contents as well. You learn a lot about distributed algorithms, especially shared memories and consensus. The Raft coursework has a bit of workload you gotta handle tho, and you have to learn a completely new language called elixir. That being said I love this module. I think you will learn a lot from it

# Advanced Databases

Imperial Module Page: here (opens new window)

# 2021-22

# Quick Summary

Average module scores from 5 respondents.

  • Content: 3.8 out of 5
  • Organisation: 3.6 out of 5
  • Lecturer: 4.2 out of 5
  • Overall: 3.8 out of 5
# Comments

The exam content is way harder than tutorial sheets and slides examples. And as DoC does not provide answers to past papers, no one knows what they are actually writing about.

Useful, well taught, and interesting, but BS exams year on year. If you’re feeling confident enough to take an extra module for no credit or coursework only, then this is a good candidate.

If u think it’s sql don’t take it 🤡. the coursework is hard but if you put in the work/time you’ll be able to do relatively well on them. the exam is hard I hope I don’t fail 😔

The content was sometimes too confusing at times and due to content/lecturer changes throughout the years it was difficult to revise and get question help at times.

Quite hard and confusing (for me). It is getting harder year by year, maybe because it becomes open book these two years. Do take a look at the past papers for 2019-2020 and 2020-2021, it removes almost all simple and standard questions compared to previous years. The slides do not show every detail, and you need to search/ask by yourself. The tutorial sheets and slides only contain easy questions and provide simple examples, while the exam is way harder and complex. It requires you to fully understand every aspect of the material. If you go and check the answers for previous years, some questions may contain 4-5 alternative answers, and no one know which is the correct one (for most of the time I would come up with a 6th answer). Also, for EIE, do teach yourself SQL before you choose this module, though it does not mention so.