Choosing modules in Computer Science: A student guide
Student Tawananyasha shares her experience of choosing modules when studying Computer Science at university.
Student Tawananyasha shares her experience of choosing modules when studying Computer Science at university.

Choosing your modules is one of the few moments in this degree where you get real, genuine control over what your time looks like. And I think that is worth getting excited about rather than anxious over.
Quick honest note before anything else. The way I see it, choosing modules is really two separate things. There is the thinking part, where you look at the option lists, sit with them, and work out what you actually want. And then there is the formal part later, where you officially register your choices. This post is about the first one, the deciding, because that is the bit that actually matters and the bit nobody really teaches you how to do.
I am a third year Computer Science student at Birmingham, and by this point I have been through this a few times. So I want to walk through how I actually approach it, what Birmingham specifically offers, and why I think the way we choose modules says a lot about where computer science as a field is heading.
Before the advice, here is the lay of the land, because the structure genuinely shapes the strategy.
In your first two years, almost everything is decided for you. You study twelve core modules in total, each worth 20 credits, and they build your foundation.
And the optional list is broad. To give you a real sense of it, Birmingham offers modules like Machine Learning, Neural Networks and Deep Learning, Natural Language Processing, Intelligent Robotics, Computer Vision and Imaging, Advanced Cryptography, Security of Real-World Systems, Advanced Networking, Algorithms and Complexity, Human-Computer Interaction, Intelligent Software Engineering, Dependable and Distributed Systems, Game Theory, Evolutionary Computation, Computer-Aided Verification, and even Teaching Computer Science in Schools, among others.
The exact list shifts year to year, but the spread tells you something. You can lean heavily into AI, into security, into theory, into systems, into people-facing design, or you can deliberately mix them.
The single most important thing I have learned is this. Choose modules because they actually interest you, not because they sound impressive or because everyone else is picking them.
It sounds obvious written down, but in practice the pressure to chase whatever is trendy is real. There will be a year where it feels like everyone is piling into the machine learning modules because that is where the jobs supposedly are. And look, if machine learning genuinely excites you, take it. But if you are picking it purely because of the hype while quietly finding cryptography or human-computer interaction far more interesting, you are setting yourself up for a miserable, unmotivated year.
Here is the practical reason this matters so much in our final year specifically. A huge chunk of your grade rests on the individual project and on modules with heavy coursework. Those are exactly the things you cannot fake your way through. You will spend hundreds of hours on your project. If the topic bores you, those hours feel like punishment. If it genuinely grips you, the same hours feel like something you would almost do for fun. Interest is not a luxury here, it is the fuel that gets you through the hard weeks.
I would also gently push back on the idea that you have to niche down completely. Some of the most useful module combinations are the ones that bridge two areas. Pairing something like Intelligent Software Engineering with a security module, or machine learning with natural language processing, gives you a profile that is specialised but not narrow. The field rewards people who can connect ideas across boundaries, not just people who know one thing very deeply.
A few questions I actually ask myself before committing to a module:
This is the part I find genuinely exciting, because I think the way our module list looks is a snapshot of where the whole field is moving.
Computer science is not one thing anymore, and it has not been for a while. When you look at a list that runs from Advanced Cryptography to Intelligent Robotics to Human-Computer Interaction to Computer-Aided Verification, you are looking at a discipline that has fractured, in the best possible way, into dozens of deep and distinct directions.
The era of "I studied computer science" meaning one fixed skill set is over. What you build out of these choices is increasingly what defines you.
AI is the obvious current. The sheer number of options around it, machine learning, deep learning, natural language processing, intelligent systems, robotics, reflects how much the centre of gravity has shifted. And it is worth pausing on a piece of Birmingham history here, because it makes the point better than I can. Llion Jones, who studied AI and Computer Science at Birmingham, went on to co-author the Transformer paper at Google, the work that quite literally put the "T" in ChatGPT. He is now a co-founder of an AI company. That is not a distant abstract example. That is someone who sat in the same school, choosing modules, who ended up shaping the technology the entire world is now talking about. It is a reminder that the choices you make in a year like this are not small.
But, and I think this is the more interesting point, the modern outlook is not only about AI. The presence of modules on cryptography, on the security of real-world systems, on verification and on human-computer interaction tells you that as technology becomes more powerful, the questions around it become more important too. How do we make systems we can trust? How do we secure them? How do we build them so actual humans can use them? There is even a module on teaching computer science in schools, which says something lovely about the field caring how the next generation learns it.
The thread running through all of it is responsibility. The modern computer scientist is not just someone who can make something work. It is someone who thinks about whether it should work that way, who it affects, and whether it can be trusted. The breadth of these modules is the field quietly telling you that technical skill alone is no longer the whole job.
So when the option lists land in front of you and you start weighing things up, try not to treat it as a stressful exam in predicting the future. Treat it as one of the genuine privileges of this degree.
Follow what actually interests you, because interest is what carries you through the parts of final year that get hard. Do not chase the hype for its own sake, but stay aware of where the field is moving, because you are stepping into a discipline that is broader and more exciting than it has ever been. Talk to the year above you. Pay attention to how things are assessed. And let your project and your modules tell one coherent story about the kind of computer scientist you want to become.
You are not just picking subjects for a year. You are deciding, in a small but real way, what you want to be good at. That is worth getting right, and it is worth enjoying.

Computer Science BSc
Tawananyasha is studying BSc Computer Science at Birmingham.