Dublin City University MSc in Computing: Secure Software Engineering Exam Cookbook

I completed all the exams for the Secure Software Engineering stream of the MSc in Computing at DCU this semester. Here, I’d like to share my experience and some practical tips.

The program consists of 8 modules: 4 in the first semester and 4 in the second. You must pass all exams to graduate, and the overall difficulty is not trivial.

To pass the exams, the most important points are:

  1. Attend classes. Try to attend every lecture. Being present helps reinforce your learning, and sometimes the lecturer will clearly indicate the focus or direction of the exam. For example, this year, a specific type of question was highlighted in class, which was very helpful for exam preparation.
  2. Practice with recent exam papers. Download past papers from dcu.guruarchive.com. Study the question types carefully. If the module content hasn’t changed much, questions from the last two years may not appear again. If there have been changes, the last two years’ papers are likely to be the main focus. I recommend practicing at least 2 years, up to 5 years of past papers.
  3. Complete all assignments carefully. Each assignment is directly graded and contributes to your final mark—typically 25%. Since assignments are done offline and don’t require memorization, you can achieve a high coursework score with effort, which greatly reduces the pressure to pass the final exam.

Exam Overview

Semester 1 Modules

  1. Cryptography and Number Theory
  2. System Software/BlockChain
  3. Secure Programming
  4. Professional & Research Practice

Semester 2 Modules

  1. Formal Programming
  2. Concurrent Programming
  3. Software Process Quality
  4. Network Security

The first semester is relatively manageable. The key modules are Secure Programming and Cryptography and Number Theory. There is also System Software/BlockChain, depending on the university’s arrangement. If it’s BlockChain, it’s easier; if it’s System Software, it’s more challenging. Professional & Research Practice is relatively light. Overall, the first semester is less stressful, with two main exam-heavy modules.

The second semester is more intense. Almost all modules are challenging, and even the slightly easier Software Process Quality is not easy to score high in. The academic pressure is noticeably higher.

Below are details for each exam.

Cryptography and Number Theory

  • Module difficulty: ⭐️⭐️⭐️⭐️⭐️
  • Exam difficulty: ⭐️⭐️⭐️⭐️⭐️

The first few lectures are manageable, but after hash functions, the difficulty spikes—especially in Cryptanalysis and Number Theory. Unfortunately, these tough topics are the main focus of the exam.

To pass and score well with minimal time investment, I recommend:

  1. Attend all lectures.
  2. Spend 1 hour previewing before class; for Cryptanalysis and Number Theory, spend 2 hours.
  3. Don’t worry if you don’t fully understand the cryptanalysis and number theory parts in class—just keep up with the pace.
  4. Complete the major assignment carefully, usually on linear or differential cryptanalysis. The assignment is always examined in the final. If you didn’t do it yourself, the exam will be tough. The assignment is worth 25% and is quite challenging. To get full marks, expect to spend at least 4 days coding and testing. My topic was Differential Cryptanalysis of Feistel 4.
  5. Practice the past four years’ papers and make sure you understand any cryptography content you missed in class.

System Software/BlockChain

This module depends on the university’s arrangement. I took BlockChain.

  • Module difficulty: ⭐️⭐️
  • Exam difficulty: ⭐️⭐️⭐️

BlockChain is mainly delivered via video lectures, so you don’t need to attend in-person classes, making the first semester lighter.

Assignments include a report and a group (2-3 people) presentation on cryptography.

Overall, this module doesn’t require much time to understand, and the exam isn’t too hard. However, while passing is easy, getting a high mark is tough. To excel, you need to deeply understand the exam content, prepare assignments thoroughly, memorize a lot, and manage your time well in the exam to write as much as possible.

How to pass:

  • Memorize questions from the past 4 years. Most are short-answer questions about blockchain, so you can prepare template answers.
  • Prepare your presentation and report thoroughly. The report should have some depth.

Secure Programming

  • Module difficulty: ⭐️⭐️⭐️⭐️⭐️
  • Exam difficulty: ⭐️⭐️⭐️⭐️⭐️

This is, in my opinion, the most valuable module.

It covers a wide range of topics from high-level to low-level computing: Linux, operating systems, C programming, reverse engineering, data structures, GDB debugging, and more.

There are no assignments; instead, there are two in-class tests. Including the final, there are three exams in total.

The first test is a rehearsal for the final, with similar question types. The second is a practical security attack test, where you must research and code an attack.

How to pass:

  1. Attend all classes and try to remember everything covered. You need a solid foundation in computer science, especially low-level principles.
  2. Score well in the in-class tests. The lecturer is excellent and will rehearse key exam topics in advance. All questions are variants of previously tested material, so preparing the revision materials provided is key.
  3. Practice past papers thoroughly, especially Linux Permissions.
  4. In the final, you can choose 5 out of 6 questions. You can skip the security attack question (already tested in class and hard to revise), or skip another based on your strengths.

Professional & Research Practice

  • Module difficulty: ⭐️⭐️⭐️
  • Exam difficulty: ⭐️⭐️⭐️

Coursework counts for 50%: a literature review, a video presentation, and a paper.

The exam is also 50%.

You can attend classes or not; they are mainly for Q&A.

How to pass:

  1. Take assignments seriously to get a good coursework mark. For high marks, pay attention to formatting in the paper and make the video engaging.
  2. Memorize the past 3 years’ exam questions. Even though you can choose which to answer, you still need to prepare all topics.
  3. Prepare model answers for all past questions. Get a general understanding of the syllabus, then check each exam question and use your materials to generate answers to memorize.
  4. Class attendance is optional, as it’s mainly Q&A. Occasionally, there’s info about the practicum or job hunting.

Formal Programming

  • Module difficulty: ⭐️⭐️⭐️⭐️⭐️
  • Exam difficulty: ⭐️⭐️⭐️⭐️

This module is very challenging, involving complex logical reasoning. Fortunately, the exam is still manageable.

How to pass:

  1. Attend every class, listen carefully, and try to follow the logic, formulas, and derivations.
  2. Complete the third week’s assignment (Event-B modeling) carefully.
  3. Don’t worry if you don’t understand everything in class—just make sure you get it during revision, especially the various Laws.
  4. Before the exam, do the past 3 years’ papers and make sure you understand everything you missed in class.

Concurrent Programming

  • Module difficulty: ⭐️⭐️⭐️
  • Exam difficulty: ⭐️⭐️⭐️⭐️⭐️

This module isn’t too hard, but covers a lot of content.

The exam requires a lot of memorization, code snippets, API usage, and design/prototyping.

How to pass:

  1. Complete all assignments carefully.
  2. For the exam, practice at least 5 years of past papers. Although you can choose 5 out of 6 questions, the topics vary, so revise all types rather than skipping any.
  3. Attend every class and try to remember all content, as anything covered could be examined.
  4. Since the exam involves a lot of memorization, check in class whether the current topic is examinable and remember it if so.
  5. Build a database of past questions and ask AI if a topic is likely to be examined. If yes, pay close attention in class.
  6. I highly recommend browsing past papers first to understand the exam focus. Ask AI about trends in the past 3 years. Since this module is mainly about memorization, class absorption is key.

Software Process Quality

  • Module difficulty: ⭐️⭐️
  • Exam difficulty: ⭐️⭐️⭐️

This module isn’t hard, but the exam covers a wide range of topics.

  1. When revising, focus first on topics that appear repeatedly in past papers, such as Karnaugh and Clause Coverage. Since the question types vary, even though you can choose 5 out of 6, I still recommend revising all types.
  2. You can attend classes or self-study.
  3. Assignments aren’t difficult—choose suitable topics and you can score well.
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy