Introduction
Software Engineering
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.
Our Programme
The Software Engineering Programme at Oxford teaches methods, principles, tools, and techniques in a professional context. Most students are actively involved in software development: as system architects, software developers, or project managers. 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.
Key Features
- Students can choose freely from a wide range of subjects within the software engineering curriculum; 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 chances in circumstance and additional, unexpected commitments.
- Intermissions and 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 software engineering or computer science is not required. More than one student on the Programme has 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 Computing Laboratory
The Programme is based at Oxford University Computing Laboratory, more often referred to as "the Lab", "Comlab", or "OUCL". The lecturers have appointments within the Lab, and there is an associated, 50-strong, research group in software engineering, led by the Programme Director. Most of the teaching activity of the Programme takes place in the Lab.
As a student on the Programme, you are welcome to attend research seminars and special lectures. The software engineering group hold seminars every Friday afternoon during University terms (January to March, April to June, and October to December). If you wish to attend a seminar organised by another group, you should contact the organiser of that seminar in advance. Details of seminars, and organisers, can be found on the Lab's website: