The Software Engineering Programme provides advanced education in the methods, principles, tools, and techniques connected with both Software Engineering, and Software and Systems Security.
Software Engineering is the use of engineering methods and scientific principles in the development of software systems. It's an interesting and challenging field of study: the methods are constantly evolving, and many of the principles start to make sense only when seen in the context of professional practice. It's an interdisciplinary endeavour, bringing together aspects of computer science, engineering, and management. It's about: developing software with other people for other people; using appropriate tools and technologies, and allocating appropriate time and effort, at every stage of development; building systems that meet requirements and expectations of users, even when those requirements—or our understanding of them—may change.
Software and Systems Security
The systems of modern life are centred at the interface of physical, social, and technological domains. Ensuring their security requires strong technical measures, as well as an understanding of the behaviour of their users, together with an idea of the motives and methods of attackers. This field is variously called Cyber Security and Security Engineering: it aspires to be an engineering discipline, but necessarily incorporates theories, tools, and techniques which are still maturing. A central theme is the reduction of risk—through inhibiting unwanted outcomes or through lessening the impact of security events. This is often achieved through the careful design of hardware and software, but also depends on the construction of suitable procedures, training, and frameworks for regulation.
Most students are actively involved in systems development, in procurement or as system architects, developers, or project managers, or are actively taking leading and strategic roles in the operational management of systems. There are others whose involvement may be less obvious, but whose interest is equally strong: security consultants, business analysts, intellectual property lawyers, finance officers, educators and trainers. Students who are experienced, full-time professionals are likely to be well informed and highly motivated; they will often be able to make significant contributions to course delivery, adding to the learning experience of others and providing valuable information and feedback to the academics involved. They are likely also to have significant personal and professional commitments—a fact that has had a profound influence upon the design of the Programme.
The Programme currently offers two postgraduate qualifications: Master of Science (MSc) degrees in Software Engineering and in Software and Systems Security. The MSc in SE is a generalist degree, and students have free choice across the whole portfolio of modules. The MSc in S&SS is more specialist, and students have to choose a programme of study focussed on the specialism to merit the degree.
For either MSc, students take ten modules, and complete the corresponding assignments. For students on the MSc in S&SS, at least six of these ten modules have to be chosen from the security theme. Students also undertake a project and write a dissertation about it; for students on the MSc in S&SS, this project must be on a security-related topic.
In the past, the Programme has also offered Postgraduate Certificates and Postgraduate Diplomas in SE and in S&SS. These entail four and eight modules, respectively, and no project. We are not currently offering these lesser qualifications as an award aim; every registered student is registered for one of the MScs. However, the PGCerts and PGDips are still present in the regulations, and are available as exit awards for students whose circumstances change and who as a consequence cannot complete the MSc.
- Students can choose freely from a wide range of subjects within the software engineering and security curricula; there are no mandatory subjects, and dependencies are kept to a minimum. Students are able to choose, and continually refine, an individual programme of study that best reflects their own interests and experience.
- Each subject is taught as a single, separate module, delivered once, twice, or three times a year, according to demand. Students can book a place on a specific module up to 18 months in advance, allowing them to plan their studies around other commitments. They can cancel bookings without penalty, allowing them to update their plans as their requirements, intentions, or commitments change.
- At the core of each module is a single, intensive teaching week, requiring the same period of absence from the workplace as a typical training course, yet affording the opportunity for intensive study focussed upon a single subject. Small class sizes, and a flexible, varied approach to module design, help students to make significant progress, which can then be reinforced and assessed through a subsequent assignment.
- An assignment is set after each module, for which a report must be submitted within six weeks. Should a student miss this deadline, then they have the opportunity of taking a subsequent assignment in the same subject, without needing to attend the module in question. This allows for unforeseen changes in circumstance and additional, unexpected commitments.
- Suspensions of status allow students time out to deal with other commitments. They may also request an extension to their registration, if circumstances have meant that they have not been able to complete their modules as expected. A typical student will spend three or four years working towards an MSc, but up to six years is allowed.
- Students can attend modules before deciding to apply for postgraduate study, and still use these modules as credit towards a subsequent qualification, allowing them to determine, in advance, whether the programme is a good match for their requirements, experience, and circumstances.
- Applications for study are assessed on the basis of professional experience as well as previous higher education. An undergraduate qualification in computing is not required. Students on the Programme have been awarded a distinction in the final examination for the MSc despite having no previous higher education.
- The academic staff of the Programme are all active researchers in the field; many of the students have extensive experience, and hold positions of significant responsibility. Module development and delivery is informed both by leading-edge research and by the latest professional practice.
- The modular structure means that new subjects may be easily added to the curriculum, and others may be merged or updated to take account of advances in theory and practice. This helps to ensure that the programme remains accessible, effective, and relevant.
The Department of Computer Science
The Programme is based in the Department of Computer Science at the University of Oxford. The Department was formerly called the Oxford University Computing Laboratory, and you will still often hear it referred to as "the Lab", "Comlab", or "OUCL". The lecturers have appointments within the Department, which has strong research groups in a number of areas related to software engineering and security. Except in exceptional circumstances, all the teaching activity of the Programme takes place in the Department.
As a student on the Programme, you are welcome to attend research seminars and special lectures. If you wish to attend a seminar organised by one of the research groups, you should contact the organiser of that seminar in advance, out of courtesy. Details of seminar series and research groups can be found on the Department's website: