COM7010

Computer Science Overview

Module Reflection  ยท  MSc Computer Science (Conversion)  ยท  Author: Orville Fernandes

What I Brought In

I came into this module with real industry experience behind me. Before starting the MSc, I worked as a Cloud Engineer, spending a significant amount of time with Kubernetes, Docker, CI/CD pipelines, and Linux infrastructure. I also hold a First Class degree in BSc Psychology with Applied Computing, so I was not starting from zero on the computing side. But my experience was practical and relatively narrow. Whilst I knew how to deploy and manage systems, I felt I had much less grounding in the theoretical underpinnings of what I was actually working with. COM7010 was always going to be a module I engaged with differently to someone without that background, and I think that shaped both what I got out of it and where I found it wanting.

What The Module Covered

The module was deliberately broad. It was a survey of the entire discipline of computer science in a single term. It spanned software engineering, data storage and manipulation, computer architecture, operating systems, networking, database systems, artificial intelligence, and the theory of computation. The breadth is both its strength and its limitation, and I will come back to that.

The topics on Computer architecture and machine language - the relationship between high-level programming and what happens at the instruction set level - was what I found most interesting, however I felt it was covered in more depth during my BSc. The software engineering content was familiar territory in practice, but the module formalised it to some extent.

The Coursework

The coursework asked us to design a safety-critical system and document it in a professional report, specifically an ICU patient monitoring system. The scenario required engaging with real considerations around reliability, fault tolerance, system failure consequences, and the ethical responsibilities of software engineers working in life-critical contexts.

This was my first postgraduate report, and I was unsure of what exactly the expectation was for the report. I had to research contradicting literature on safety-critical system design and use it to justify design decisions. Writing for both a specialist and a general audience in the same document also required a level of communication discipline I had to consciously develop. The process of working through those competing demands was useful preparation for the rest of the programme.

Critical Reflection

The breadth of COM7010 meant that genuinely deep content was hard to deliver. I understand the rationale: this is a conversion course, and the overview module exists to give everyone a shared vocabulary before the specialist modules begin. But I did leave COM7010 hungry for more depth in almost every area it introduced.

There was also some ambiguity in what the coursework expected. A sample piece of work was provided as a reference point, and I structured my submission accordingly. Despite following that model, I felt my work was marked down on grounds that had not been signalled in the sample, the assignment brief, or the marking criteria. That experience left me uncertain about how to calibrate my work going forward and raised a broader question about whether the assessment expectations had been communicated as clearly as they could have been.

I also wish there had been more opportunity to connect theoretical content to practical implementation early on. Computer architecture and machine language were taught conceptually, but the hands-on work โ€“ the Cisco Packet Tracer practical, the database implementation โ€“ came in later modules. Some early lab work tying theory to practice would have helped the foundational content land more concretely.

Learning Outcomes

LO1 - Software Engineering underpinned by CS disciplines: Achieved through the ICU monitoring system design. I had to understand how theoretical CS disciplines like system architecture, process management, and reliability engineering, underpin practical software design decisions in a safety-critical context.

LO2 - Critical evaluation and judgement: Achieved through researching conflicting literature on safety-critical design and making justified, evidenced design choices. This was my first real experience of postgraduate-level critical evaluation, and the process of weighing contradicting sources to reach a reasoned position was something I carried into every module that followed.

LO3 - Professional communication: Achieved through the report itself. Writing to both a specialist and a general audience in the same document and communicating the design decisions clearly enough to be evaluated, required deliberate attention to structure, tone, and audience throughout.

References

Knight, J.C. (2002) 'Safety critical systems: challenges and directions', Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), Orlando, FL, 19โ€“25 May. New York: ACM Press, pp. 547โ€“550.

Pressman, R.S. and Maxim, B.R. (2020) Software Engineering: A Practitioner's Approach. 9th edn. New York: McGraw-Hill Education.

Sommerville, I. (2016) Software Engineering. 10th edn. Boston: Pearson Education.

Turing, A.M. (1936) 'On computable numbers, with an application to the Entscheidungsproblem', Proceedings of the London Mathematical Society, Series 2, 42(1), pp. 230โ€“265.

Wallace, M. and Wray, A. (2021) Critical Reading and Writing for Postgraduates. 4th edn. London: SAGE Publications.

Marks

Coursework 1 โ€“ Research Report
Designing a Life Critical System
65 / 100
Overall 65%