# 3rd Year EIE Module Feedback

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!)

# 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)

# 2022-23

# Quick Summary

Average module scores from 3 respondants.

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

Although the exam was fairly easy, the only benefit I believe this module provided me was improving my algebraic maths skills. The content is tough to digest at first but remember there are portions which aren't examinable, and the parts which are make sure you understand the derivations inside out.

This is a continuation of S&S in second year. I found that although some of the content is interesting, a lot of it is a recap. A lot of the new content itself, mostly on filters is not examined, as the slides are more practical (MATLAB code). Personally, I enjoyed multirate DSP, however, as this was the final lecture, minimal time was spent on this topic. I would recommend finding DSP: A Computer Based Approach, as a lot of content is taken directly from this textbook. Lecturer is also very responsive to any questions.

This module carries on from where we left on in the 2nd year signals module. The content is not very heavy and the slides are quite informative. The exam is pretty predictable based on past year papers. Some parts of the module such as design algorithms are not tested since these are too complex to be calculated by hand. Overall, I think this is a good module for anyone thinking about exploring signals further.

# 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)

# 2022-23

# Quick Summary

Average module scores from 5 respondants.

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

Overall a great module if you enjoy control systems, this was definitely the most structured module I took, the amount of work you put in will directly improve your exam score. The lecturer is great at explaining everything, just goes slightly too quick so prepare to watch each lecture twice.

Very good module! A lot better than second year control, I found it much easier because the mathematics is very methodical, unlike second year control. Lecture is very passionate but does go very fast.

The module is quite theoretical and mathematical and I would describe it as partly continuation of the 2nd year Control module, but also partly going over the whole control fundamentals again, but with different tools. I found the lecturer extremely engaging mainly because he taught from the blackboard (no lecture slides) so I found it extremely easy to follow him and learn directly in the lectures. He also provides a good set of lecture notes to read from. The main negative I can see in the module structure is that there really is a lack of application examples of the theory taught, but I guess those can be covered in future 4th year modules. The exam was straight forward, questions are similar to the ones shown in the notes and in class (just make sure Astolfi tells you if it's an open or closed book in advance and does not change his decision 10 min before the exam).

# 2021-22

# Quick Summary

Average module scores from 1 respondant.

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

Content is reflected in the exam, but the exam is quite tough! So make sure you really understand everything

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

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 the actual 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)

# 2022-23

# Quick Summary

Average module scores from 1 respondants.

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

# 2021-22

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, the 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 (EIE)

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 (EIE)

# 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

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

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

# Machine Learning (EE)

Imperial Module Page: here (opens new window)

This module is required to take deep learning in spring

# 2022-23

# Quick Summary

Average module scores from 3 respondants.

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

The module is largely based in the Caltech ML course so you could watch those lectures if you prefer. The explanations in lectures could be unclear at times and they were sometimes out of sync with the labs which are a jupyter notebooks. TA support is good and they respond fairly quickly.

Module was really interesting IMO. You get to cover a wide range of topics and (especially if you're planning on doing DL) makes sense in practice.

A drawback i'd say would be: because it's an Autumn module, it's short-timed and you get assessed on the final exam about a big range of topics you might not have had a chance to fully revise (e.g. the gap from the final lecture to the exam). But iirc, the exam format is 4 questions and you choose 3 - choose the low-hanging fruit :^)

Also, imo the coursework was too long given that it was only worth 20% of a 1-term exam-based module.

Organisation-wise, all the lectures were pre-recorded, so you can fall behind/skip ahead however you like, but there were actual lectures that reviewed the content. All the coursework was also readily available on GitHub as jupyter notebook exercises (tip: if you don't understand a concept from theory, sometimes the background info in the cws help!). There was also a Ed discussion board with active TAs, mostly for helping with problems with the cw.

Overall, i'd say a nice module and would do again. In comparison to the DoC ML module, EE ML goes more in depth with the theory and stats behind ML and how to solve problems with ML (and of course, same case if you decide to take DL in term2).

# 2021-22

# Quick Summary

Average module scores from 1 respondant.

  • Content: 4.0 out of 5
  • Organisation: 3.0 out of 5
  • Lecturer: 2.0 out of 5
  • Overall: 3.0 out of 5
# 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)

# 2022-23

# Quick Summary

Average module scores from 16 respondants.

  • Content: 4.0 out of 5
  • Organisation: 3.81 out of 5
  • Lecturer: 3.94 out of 5
  • Overall: 3.62 out of 5
# Comments

There was no lecture notes; slides do not count. We require actual course notes as well as lecture slides. Solutions to all past papers and tutorial questions should be posted

Good module where u get out what you put in. Dario is an amazing lecturer and really passionate about what he teaches. Ruth had the second part of the course which was interesting but a bit more unorganised. The coursework on game theory was interesting and doable (especially in pairs) but really shouldn't be too bad if you are somewhat on top of the course. Would pick again.

You need to chase the lecturers a bit for content. Go to them with specific exam questions and ask for examples of everything they teach. I say this because for a couple of topics we got nothing.

A precursor to other kinds of optimisation. Not particularly useful for average software engineers. Youll probably forget most of it after the exam also.

That said, there is not much content and its pretty easy to grasp. Exam is not too hard but it does have some questions which involve a lot of pen and paper working out ~30 simple arithmetic parts in a single question (the simplex algorithm) kind of like evaluating the row echelon form of a matrix.

CW is easy also

Weird overall exam. Not very nice

This is a slightly oversubscribed module but you should take it if you do not take EE ML/DL because it is really useful to have an intro to optimisation since it's a fundamental problem solving technique. The exam was a bit weird but the knowledge (especially the fundamental ideas) is useful.

It's literally all maths. Take if you like maths, otherwise no.

The module was fine, but I just did not like the way how Ruth taught her part. Also, they slightly changed the examinable topics, however, this was not reflected in the problem sheets so I would suggest checking examples in books.

A very interesting module that was fairly easy

Hmm this was a good module but I found it kinda tricky. I think this module is quite proof heavy which I dislike but I think people are able to do well in it. You need to be able to ask people about proofs etc and sometimes the exam paper looks quite different from the problem sheets so be a bit careful. For the module I’d recommend spending some time just covering concepts in depth with a friend (and now GPT which I wish I had back then). There could be something that professor Ruth releases at the last day or very late and it’s worth just calling a friend about or asking to call. You need time to revise for this module and do well in my opinion. I found it challenging without a doubt, but I want to say to anyone reading this feedback to be assured that EIE students can do reasonably well in DOCSOC subjects (of course there are others who prefer one over the other) and I wouldn’t say there is either inferiority or superiority over computing and masters students.

# 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)

# 2022-23

# Quick Summary

Average module scores from 10 respondants.

  • Content: 4.8 out of 5
  • Organisation: 4.5 out of 5
  • Lecturer: 4.9 out of 5
  • Overall: 4.7 out of 5
# Comments

Honestly, the best module I have taken in Imperial thus far. Prof Kelly's approach of remote lectures and in-person discussions help you to develop a deeper understanding of what you have learned and in general a very engaging. Very time intensive though.

Best module. Learn a lot about how modern processors work. Paul Kelly is the best lecturer at imperial.

Amazing module if you are interested in computer architecture. The lecturer is super passionate about the content, welcomes and engages with questions and discussions, and it really feels like he wants to teach more than examine (*if that is a good way to put it). The course is a blend of both modern and classical computer architecture concepts. It goes over a lot of specialized components of a computer that is not covered in previous modules like GPUs, memory, and advanced cache structures. Moreover, it introduces many of the concepts that make CPUs so powerful. Some interesting topics such as DRAM, cache coherency, and Specture/Meltdown attacks are also discussed. One point of caution would be the amount of content covered. For us, it was a flipped classroom aka the lectures were online and Q&A was on campus. I often found that the recordings themselves exceed the allocated learning hours, and I had to rewatch a lot of the harder concepts, making the module more time consuming. But if you like the content then it is definitely worth it and the slides even have extra content if you have time to look through them. The course work for us was to use simple scalar to tune a CPU for efficienty. While it did give some good experience in seeing how different parts of the CPU interact, it was pretty time consuming and was one of the more boring parts of the course. The exams were very interesting as well, although pretty hard. For me, I spent the majority of my time in the autumn term on this module because I enjoyed it, and if you follow the lectures and ask questions on Ed (which the lecturer responds to very frequently and gives good answers) you'll be fine.

This module is a must if you have any interest in a career in hardware, really valuable info that is really difficult to learn by yourself. My advice is do not box yourself into pure hardware or pure software at this stage, take the modules which have the highest value overall, this is definitely high value and I would recommend it to anyone who is doing anything related to hardware or performant software.

Paper reading assignment a great addition, well aligned with the teaching goals and not a big burden time wise. My favourite module to date, Thanks Dr. Kelly!

Steep learning curve for EIEs. It's a wild journey but IMO essential content for any electronic/computer engineer living in the 21st century. What put me off originally is that there is not really a 'correct' answer to anything about ACA. However this is very reflective of real life engineering - there is always a tradeoff to every decision made.

Amazing module and probably my favourite one from the autumn term. Prof Kelly is engaging with the students and the way how it is assessed is also interesting and useful for the future.

Very tough but very interesting module - I think it is one of the modules that really benefits from further reading. As all the lectures were asynchronous for this module for us, it made it hard to stay motivated to keep up fully despite the content being interesting

# 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)

# 2022-23

# Quick Summary

Average module scores from 2 respondants.

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

Definitely a highlight course for me this year. Learnt a lot about applying probabilistic ideas as well as systems modelling/queueing theory. Exam was a quite challenging but coursework was doable in a pair

# 2021-22

No feedback this year.

# Machine Learning (DoC)

Imperial Module Page: here (opens new window)

Course Page: here (opens new window)

# 2022-23

# Quick Summary

Average module scores from 16 respondants.

  • Content: 4.5 out of 5
  • Organisation: 4.62 out of 5
  • Lecturer: 4.38 out of 5
  • Overall: 4.5 out of 5
# Comments

There was no lecture notes; slides do not count. We require actual course notes as well as lecture slides. Lectures were horrible, should include more direct applications in code rather than theory

Really good module, a great introduction to machine learning with the right balance of theory and practice. I think it was nice to have pre recorded videos as you could just watch them at your own pace and also the quality of the videos was a lot better than the live lectures in other modules. Coursework was really good as it was possible to actually score quite highly on it as opposed to some other modules where the average is a lot lower. Exam was decent but preparing for it was a bit tricky, especially since DoC don't give answers for past papers. The problem sheets are useful but the exam questions are generally a bit harder. It was good that we could take in a double sided A4 notes sheet so you don't have to memorise loads of formulas. Overall, this was my favourite module in Autumn term and I would highly recommend it.

Excellent module. I knew very limited about ML in general before, but this module sparked interest and presented the material in a very approachable and practical way. I would say that the module examination as well as the course work was fairly easy if you put in a good amount of effort. The module itself gives an overview of a variety of ML methods as well as the math in some of the more important ones. The course work is done in python, and personally I had limited python experience beforehand. But they provided a pretty good tutorial on the course website and with the colab labs.

Extremely well structured and useful module. Classes and Courseworks give some nice practical experience with ML (to get high marks just make a solution that works well and covers the mark scheme exactly - it doesn’t have to preform that well as long as it passes the thresholds). Includes some topics (evolutionary algorithms) not covered in EE ML which are very interesting. Exam is fairly straightforward and doesn’t try to throw you off in any way.

Great module - good content, structure and lecturers. Efficient in what it aims to do. Can't find any fault in the module. Could imagine nitpicks based on personal preferences in approaches to learning, but there are none from me.

Module was well organized. Workload was light. Coursework could be completed in a relatively short period of time.

Lecture content (towards the end) was new and refreshing. If you have dabbled in ML previously, you might find the first half of the course boring.

This module is a bit overrated but has a high mark distribution. If you do not want to take EE DL in spring term, I would recommend taking DoC ML. However, the DoC ML is less rigorous than EE ML imo.

Perfect introductory module. I do not however understand the exam. Every year the exam consists of too many easy problems. There is no in depth knowledge being tested. Merely trying to get caught on numerical errors.

Easiest module in EIE by far. Only 40 mins of lectures a week lmao.

Great content and the lecturers were helpful. The only weird thing about this module was that almost everyone got 100% from the coursework so I do not think that it is worth to spend too much time on it.

Overall a fantastic module. However, my advice would be that simply reading the mark schemes on DOCSOC and not developing an ability to think critically is a big mistake. Sometimes mark schemes can be quite blatantly wrong and so you should check with TAs and other friends to do that. I’d advise anyone to read the assessment reviews by people. Also, try to be accurate in calculations.

Solid

# 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)

# 2022-23

# Quick Summary

Average module scores from 1 respondants.

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

For most people, I would never even remotely recommend type systems. It is a very specialized module with fairly limited application. Additionally, the module builds upon some CS syllabus we have not been taught. As a result very few EIE people take type systems and I think I was one of the only ones (if not the only one) to take the exam in December 2022. However, if you are one of these two types of people I would highly recommend it:

  1. You like compilers and programming languages. Type systems will give an introduction to the formal methods which underpin most functional languages (Haskell, OCaml, F#) and also to a lesser extent some imperative languages (e.g. Rust). If you ever want to get in to compiler research, I would definitely recommend this module.
  1. You like pure mathematics, proofs and doing everything from first principle. Type systems is by far one of the most rigorous modules our course offers in terms of proofs and I think you would enjoy this course thoroughly as a result (a lot of JMC people take this course for these reasons alone), but beware it has relatively little application outside compilers.

The content is well-structured and the notes are top notch. I would recommend showing up to the lectures as there is not made much effort to record them properly, but most of my understanding of the course definitely came from just reading the notes and doing the exercises. This is a module where you do well by grinding a lot of exercises. Fortunately, the exam format is relatively predictable so if you practice enough (I did not) you should be able to get a decent grade. Definitely an exam where you can't afford to be thinking too much, most of it has to be second nature for you.

This module will also give you a pretty significant leg up in the first part of HLP module taught in second term by Clarke. Many of Clarke's F# midterm questions are essentially easy versions of the exercises you will be doing in Type Systems. If you plan on taking both modules, I would actually recommend doing some of the F# exercise sheets before starting Type Systems. This will give you an introduction to functional programming, which is quite handy to have an understanding of before the module (keep in mind the CS students have been taught Haskell before, so they have an advantage in regards to this).

Overall decent and well-structured module, but your mileage will vary a lot depending on how interested you are in the subject.

# 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)

# 2022-23

# Quick Summary

Average module scores from 1 respondants.

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

Painful if you are an EEE student, so think very carefully about taking it if you do EEE. However, you do gain the skills to do FPGAs

# 2021-22

# Quick Summary

Average module scores from 1 respondant.

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

# 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)

# 2022-23

# Quick Summary

Average module scores from 3 respondants.

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

The content of the course is highly interesting. However I think the gap between the lecture content and the one and only coursework due at the end of the term, is a significant gap. And I dont think there is enough time to do the coursework. As it takes a while into the term to have learnt enough to do the coursework.

Just a lot of MATLAB and report writing

# 2021-22

# Quick Summary

Average module scores from 1 respondant.

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

Not much coursework support considering it was worth 100%.

# 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)

# 2022-23

# Quick Summary

Average module scores from 1 respondants.

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

Dr Adria delivers this module very well. In my year there were about a dozen students who took this module which is beneficial because you get a lot of contact time during labs and lectures. The module is well thought out because the lecturer provides labs that are built up on each other so that we gradually gain the skills to work on the final project. The lectures are not super useful but recap some DSP and mainly introduce aspects of the DSP chip.

# 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)

# 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)

# 2022-23

# Quick Summary

Average module scores from 3 respondants.

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

Not really for me, but an interesting module! Stott is available for help but he’s not the most passionate lecturer

1st cw: Build an IoT device. Very open-ended and quite fun. However, maybe a bit too open-ended. I felt like a lot of groups were confused on the criteria/marking process. You also had to make a marketing webpage for your product. For our year, the assessment included: Demo, GitHub repo submission, Marketing webpage (+ marketing/demo video).

2nd cw: Real-time programming. Coding (in C++) the software for an Analogue music synth. imo this taught a lot of concepts that were new to me (semaphores, mutex, atomic variables, etc. etc.) and it was open-ended (done the right way) with the groups being tasked to implement core features (e.g. notes playing, implementing the communication between 2 synth modules, etc.) and whatever additional features you want. The assessment for this was more straightforward than CW1: submitting a GitHub repo of the project, with a "report" (more like specification to showcase the features your group implemented) as a markdown.

Note: both cws in a group of 3/4.

# 2021-22

# Quick Summary

Average module scores from 3 respondants.

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

Feel like it was more catered for EIE students

I absolutely loved this module. you get two separate pieces of cw. Use a raspberry pi which uses micro python and next one using an stm32 with c++. probably the best module i have taken at imperial so far. Very fun and useful module, gives you a very good intro and the projects are self driven you decide where to take the projects, what you do, what style of systems you develop etc the lectures are 100% a must watch here if you want to do well as it gives info you will not easily find online.

This is not an easy module, you need a good team as the workload is heavy and there isnt too much time to actually develop your embedded systems.

# 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

# Deep Learning

Imperial Module Page: here (opens new window)

# 2022-23

# Quick Summary

Average module scores from 2 respondants.

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

Follows almost the same structure as ML, except without a final exam and is almost fully coursework-based (there is a 10% wiseflow quiz at the end of term).

Again, the module content was very interesting and goes into depth in CNNs, RNNs, generative models, etc. and touches upon Reinforcement learning as well. The module is structured in a way that you would cover a topic (e.g. Chapter 5 - RNNs) from pre-recorded lectures + have a lecture reviewing and discussing the content (e.g. mentimeter quizzes with everyone) + a Jupyter notebook exercise to go through (same format as ML module) every week. In total, there were 7 Jupyter notebook exercises and, if you manage ur time properly, u can get it done and have enough time to write the report at the end of term 😃 - of course, some chapters were longer/shorter than others and there were some problems, e.g. some exercises had to be updated cos of py libraries being updated. but the Ed discussion board was very active and all the TAs were helpful 😄

1 exercise a week may sound like a lot but this is a Spring term module so coursework-based (which I prefer xD) and imo you understand more of the theory from doing all the trial and improvement when training your models. But you should also consider your other module options and gauge how much coursework you will be grinding every week. E.g. from my personal experience, other deadlines (e.g. Embedded) took up almost all of my time so I had to deprioritise DL and catch-up with the cw later, but that's fine since the deliverable for the main cw (CW2) is at the end of the term.

CW1: This is where I would say is a bit of a drawback, there was technically 1 cw ("interim report") worth 20%, which is based on the 1st Jupyter exercise. It was fine content-wise, but the deadline was early and you would've had to have been working on the cw from the start (before you may have fully decided to choose the module).

Note: All the courseworks were based on using Keras library (Python)

Overall, this was my favourite module and would recommend, especially if you're into Computer Vision, NLP and RL. 😃

# 2021-22

# Quick Summary

Average module scores from 1 respondant.

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

Typical Mikys course. The marks are based on two submissions of reports and a small MCQ at the end. This really is just a if you work hard enough you will do well type module. You have to make sure to stay on top of the work because it is time consuming. its broken into 8 different sections report 1 is on the first 2-3 and the rest in final report. The cw is very much trial and error based and is done on python. There is already a lot of good advice so i wont repeat the same thing but honestly a good actually useful module for jobs etc and also a 'safe' module to take which is more predictable and well structured.

# 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

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

# 2022-23

# Quick Summary

Average module scores from 2 respondants.

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

Best module I’ve done! Lecturers are not extremely interesting but the lab is great! Very practical and fun to get the robot working! The lecturer is very helpful and passionate and the GTAs are available for help too

# 2021-22

# Quick Summary

Average module scores from 2 respondants.

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

New course so things are still being established. The course is broken down into 1 big project where you have to programme a robotic arm to perform some tasks. you will be marked based on a video, report and live demo. Lab times are somewhat hard to get. there are only so many of them and you have to book them. they send out an excel sheet and it usually gets fully booked in like 10 mins and the good slots that aren't like 10-midnight get booked very quickly.Overall, very good if you want to get hands on but get ready to spend whole days from morning to night working in labs and then repeat that for a month or two. very time consuming. the mark scheme is clearly highlighted.

# Electric Vehicle Technologies

# 2022-23

# Quick Summary

Average module scores from 2 respondants.

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

# 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)

# 2022-23

# Quick Summary

Average module scores from 5 respondants.

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

You get a decent idea of how graphics pipelines work. The exam is a lot of equation plugging though which is a shame.

The courseworks are kinda fun at least

Good module. Lecturers were engaging, was well organised (allowing for great flexibility in how one can study), coursework was very entertaining.

Really tough, imbalanced coursework, uninteresting. Only thing I learnt as a takeaway is interpolation really. I only recommend this course for people who definitely are interested in graphics as a career path (which i wasn’t)

Module perfect as is with shaderlab! Probably second best module I've encountered yet.

# 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)

# 2022-23

# Quick Summary

Average module scores from 1 respondants.

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

I personally didn't enjoy this module that much. It is separated into 2 parts, one using Ruby and the other using Maxler. The content itself was pretty good, complimenting some of the concepts in the Computer Architecture and Compilers & Advanced Computer Architecture modules. The first part of the course did have some very relavent concepts such as the degree of pipelining and how designs can be expressed. The second part of lectures and labs were also pretty good, with interesting concepts in streaming processors. However, the main reason for disliking the course was with the languages. Almost a third of the first part of the course was used to learn the language - Ruby. And no, this is not the Ruby you know, it is a hardware description language (like verilog) and very counter-intuitive to get into at first. It is also very obscure, and I didn't have luck finding things online. The second part uses a language Maxler which is more widely used and has some documentation online. Maxler is also written with Java, so that might be good for people that are familiar with the language. The entire time, as someone who knows system verilog, I was thinking why not just use verilog? Of course the specialized langauges provide advantages of their own, Ruby being very efficient in expressing designs and Maxler being built for writing streaming processors. But a lot of the time I feel like they were just a more complicated way of expressing something that can be done easily in verilog. Moreover, I am not sure how benificial learning these language will be outside of academic research. Overall, I would say that if you are interested in processor design and computer architecture, this course is indeed for you. Just be aware of the learning curve of the 2 languages.

# 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)

# 2022-23

# Quick Summary

Average module scores from 11 respondants.

  • Content: 4.55 out of 5
  • Organisation: 4.82 out of 5
  • Lecturer: 3.91 out of 5
  • Overall: 4.45 out of 5
# Comments

Good module, well structured with clear goal and delivers all required content to reach said goal. Lecturer was alright, perhaps not the most engaging but very knowledgeable and clearly likes the topic.
Coursework was also very fun, allowed for a good learning experience. However, it did hold your hand a lot throughout. I can't say whether this was done for marking purposes or whether a more open approach led to worse student performance in the past. It did achieve making the work almost stress-free though, which is quite nice in an otherwise stressful term.

Well structured, not too difficult module - very interesting and nice synergies with deep learning and signals. Highly recommend.

Lecturer is clear and precise when answering questions. The coursework is doable and easy to score decent grades in. Overall, a decent module.

I found this module a bit boring, felt like something people were taking just to fill a gap. I would say that the main advantage to this module is extending upon DoC ML and learning about various networks. My advice is to not take this just because you think it will be easy as the grade curve is high.

This module is very modern. You learn about very recent advancements in the field and the techniques used in the coursework are used are extremely useful. There is a lot more content in this module than I thought there would be when starting out, so make sure to cover all for the exam.

Best module in spring term imo. Exam followed same standards as previous years and the cw was very easy. Content is actually really useful as well and the lecturer was pretty decent. Only thing to improve would be to have more detail about transformer networks as they're extremely relevant right now. Overall, it was a very good module.

Lecturer very organised, presentations impeccable, pace way off. Concepts that can covered in 10 mins elsewhere are stretched into full lectures. The course needs about 50% more content than it has, especially in the first half.

Coursework perfect.

Well-run mod, lecturer explains things a fairly intuitive way that allows you to understand concepts fairly easily. Coursework (2 exercises) are very manageable and overall content was interesting.

Studied really hard and get more than 90 for all coursework, don't understand only get 50s for result. Interesting coursework tho

# 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)

# 2022-23

# Quick Summary

Average module scores from 6 respondants.

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

Great module. Only fault in my opinion is that lectures seemed a bit dry and dragged on occasion, but that might be more a consequence of personal preference.

This module should be made 100% coursework instead. It is EXTREMELY TIME CONSUMING. You need to spend 3 days (yes, three entire days) a week at least to do the practical. The programming part was fun but you ended up spending more time adjusting parameters instead of writing actual code. Also, 3 people is enough for a group and in my group only two of us were doing work and the others are FREE RIDERS who rarely showed up during lab session. Another reason why this module should be made 100% coursework is because writing code with pen during exam is just weird and we get almost zero practice before the exam while we were spending time on the practicals and the algorithms being tested may not be the ones we used in the practicals. The free riders may score high overall as they share the same practical results with you and they could just not come to lab and revise at home.

Good module for everyone who is passionate about Robotics. The labs are fun and really help you to understand the key concepts of the lectures. I'd recommend a team of 4 people (where everyone is working), anything more might actually be too much.

The exam is pretty short, and I found that I really underestimated that as I got caught up in the big pseudo-code exercise.

Overall, it is you get out what you put in and chances are, if you have some experience or are relatively on track with everything you can get good marks for reasonable effort. The big challenge at the end is fun and a nice way to tie everything together, but the non-compulsory labs also help you to dedicate some time to other lectures.

Defintely would take again.

Was oversubscribed making the practicals less enjoyable and useful for learning than they could have been

Content could be a bit more advanced

# 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)

# 2022-23

# Quick Summary

Average module scores from 3 respondants.

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

Exam format is debatable.

Very practical and all in person lectures focus on practical exercises. Though the exam was nearly impossible. But I don't regret taking the module as I've learned so much.

# 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

# 2022-23

# Quick Summary

Average module scores from 3 respondants.

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

Really great lecturers with some very interesting content.

The module had very applicable content to industry while also being interesting (profiling, microbenchmarking, concurrency, ... to name a few). Its definitely an underrated course.

If you want to get better at writing performant code and exploring the software side of Computer Architecture, this is a MUST.
The module is probably one of the most challenging and time intensive ones that I have taken by far but personally I have learned so incredibly much about coding and benchmarking. It really was an eye opener which takes you from print statements and single-thread code to properly benchmarked and effective multi-threaded code, how about that? It is really time consuming and at times seem a bit overwhelming but with some help from fellow SPE students, I am sure you will understand what you have to do or why your stuff is not working the way it should (ofc be sensible with this - no plagiarism etc.). I think my personal highlight was sitting together with some of my friends and talking through the past paper and figuring solutions out together (there will be only 2 on the current course and our years one was quite difficult imo).

Overall, would take again. Not easy marks and lots of work but good god, what a useful module to take if you want to take the next steps in coding.

# 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)

# 2022-23

# Quick Summary

Average module scores from 4 respondants.

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

Lectures were not useful. Limited insight was given by Dr. Naranker. There were persistent audio issues with recordings (which were not resolved) and it seemed that Naranker simply rushed through slides just to go home early (our lectures were scheduled from 4-6pm this year).

The exam was tough. No practice questions were given; simply lab exercises to complete. These weren't enough.

We learned a lot of algorithms but weren't very rigorous about analysing them. Cannot describe with any word other than 'mid'.

very difficult programming content, probably not suitable for ee students without experience with software development

Pretty abstract content, coursework is quite fun but you have to be able to pick up Elixir pretty via the labs. Lecturer holds a weekly lab session where you go and ask for more help.

# 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.