Start a new search?


BSc Hons Software Engineering


Mode of Study: Full Time Department: Computing and Communications (School of)
UCAS Code: G602 Duration/Length: 3 Year(s)
QAA Subject Benchmark: Computing Director of Studies: Professor JND Whittle
Total Credit Points: 360 Credit Points Year 2: 120
Credit Points Year 3: 120

Educational Aims: Knowledge, Understanding and Skills

  • The overall aim of this programme is to provide students with a broad but rigorous course of teaching and learning in the discipline of Software Engineering, and to provide a supportive learning environment within which students have the opportunity to reach their full academic potential within this discipline. We also aim to provide students with the knowledge and skills required by and expected of a professional software engineer. In particular, the programme aims to produce graduates equipped to work effectively in a professional software and systems development environment and at all stages of the product life-cycle.

    In sum, the programme aims to:

    Ensure students have knowledge of the fundamental principles underpinning the field of Computer Science and in particular Software Engineering.

    Ensure student have knowledge and experience of software engineering methodologies, strategies and platforms.

    Impart knowledge and experience of the most significant contemporary developments in practice and technology.

    Help students develop the skills they will need in order to respond positively to the evolution of the discipline throughout the course of their career.

    Develop the critical, analytical and problem-solving skills needed by a practising Computing professional.

    Equip students with transferable skills necessary for working within team-based, professional environments.

    Satisfy the requirements for accreditation by the British Computer Society.

Learning Outcomes: Knowledge, Understanding and Skills

  • Graduates with Honours will be able to:

    Demonstrate rigorous understanding of the practice of software development.

    Recognise the fundamentals of computer system and network architectures.

    Understand and apply the fundamentals of data and knowledge management, and associated techniques.

    Demonstrate awareness of the key professional issues.

    Apply good programming practice to the development of applications and systems software solutions.

    Analyse, model and specify technological solutions to real-world problems.

    Design, validate and verify and document software solutions to address real world inspired problems.

    Apply fundamental computing principles to the selection and application of appropriate programming paradigms, algorithms, data structures, data and knowledge management techniques.

    Apply knowledge of computer and network architectures to the selection and application of appropriate techniques and technologies to system-level design and development.

    Apply principles, theories and methods of human computer interaction to computer systems and software design.

    Maintain an awareness of emerging technology and practice and cutting edge research.

    Demonstrate knowledge and skills in programming languages, techniques, and testing, design of software systems, use of technical documentation, develop networked applications, use of databases, employ software engineering methods, develop web-based solution, evaluate computer applications from a user centric perspective.

    Work effectively as part of a project team for developing applications and systems software solutions.

    Communicate effectively through written, oral and other forms of technical presentation.

    Demonstrate ability to plan for future career development.

    Develop awareness of the social, legal and professional issues to ensure ethical and professional conduct expected of a professional in this area.

    Develop software engineering specific knowledge and skills through three specialised studio modules focusing on hands-on practical experience in the development of individual software modules in small size group project, integration of software modules in medium size projects, and integration in larger, industrial size, real life projects.

Learning and Teaching Strategies and Methods: Knowledge, Understanding, Skills

  • The general teaching and learning strategy is to provide closely linked theory and practice components to ensure that knowledge is consolidated and matched to the appropriate skill-based elements of Computer Science. Teaching is hierarchical with a broad first year, becoming progressively deeper and more specialised in years two and three.

    Lectures coupled with practicals are the principal mechanisms used to deliver key concepts and learning guidance. A range of laboratory space is provided all with 24-hour access. There is a dedicated 1st year laboratory, whereas for later years of study the laboratory space is organised according to subjects. Apart from the main Computer Science laboratory there are laboratories for engineering focused modules (e.g. communications and embedded systems), for media, HCI and design related modules, and a dedicated design studio for Software Engineering. The different laboratories are also used for practical laboratory sessions for some modules. They are equipped with a variety of platforms to ensure that students have adequate access to technology for their projects and course work.

    Part II uses a method for teaching software engineering knowledge known as the ‘software design studio’. The Software Design Studio is a novel approach to teaching software engineering founded on the principle that software engineering is a practical, team-oriented discipline, and that, therefore, teaching should be mainly focused on problem-based learning in a lab environment rather than formal lectures. The Software Design Studio is both a lab for students engaged in conceiving, designing and developing software products as well as an approach for teaching software engineering in the lab which emphasizes practical hands-on work and experimentation with a variety of software engineering techniques.

    There is effective support for student learning and development of practical skills through laboratory-based work. In the 1st year there is also additional tutorial support in a small group setting. Feedback is provided informally in laboratory sessions and formally through mark sheets.

    In Part II, students have their own dedicated Software Design Studio lab space for the purpose. Contact time with teaching staff will no longer be through formal lectures but will be in the form of workshops that emphasise problem solving, practical skills grounded in theory, peer critique, and mentoring.

    In the third year students design and complete two software engineering projects under specialised supervision, expertise and equipment in design studios.

    In summary, the following teaching methods apply:

    The theoretical underpinnings of computer science are communicated through a combination of lectures supported by tutorials and written coursework.

    Formal grammars and the compilation process are developed through a combination of lectures, workshops/seminars and written coursework

    Social, legal and professional issues are developed through lectures with in-class quizzes and coursework.

    Fundamentals of computer systems architecture, computer systems software, abstraction and virtualization in computer science, efficient structuring, storage and retrieval of information, information and network security, and system risk, Human-computer interaction, and specialised studies in computer science  are developed through lectures supported by tutorials and coursework, including both written and practical assignments.

    Programming languages and paradigms and the architecture of the internet are developed through lectures supported by coursework, consisting mostly of supervised practical assignments.

    Software Engineering skills and knowledge are developed through close mentoring from academic staff and practical workshops within group-based projects in design studio modules.

    Documentation skills are supported by seminars, workshops and regular meetings with academics when aligned with project work deliverables.

    Awareness of emerging technology and practice and general problem solving skills are instilled implicitly through the philosophy of the programme.

    Programming language proficiency, use of appropriate programming techniques, systematic program testing and debugging, development of networked distributed applications, development of database centric applications, implementation of practical Web-based systems, evaluation of computer systems and applications are developed through practical and project work.

    Design and documentation of large software systems, software engineering best practice for small and large scale projects are developed on the basis of the design studios supported by close mentoring from academic staff and practical workshops.

    Interpretation and authoring of technical documentation, effective use of information sources, technical report writing, fundamental research skills, and oral presentation of technical material are developed through seminars, workshops, and individual and group projects/assignments.

    Participation in software group projects, group working and team management are developed through group projects and assignments, and poster presentations, and studios supported by close mentoring from academic staff and practical workshops

    Skills for the execution of individual projects are developed as part of studio projects, studio plan, individual portfolio, with individual feedback

    Career planning skills are developed through lectures including CV development, ‘mock’ interviews, etc. Additionally, the University has a Careers Service and there is a Faculty placements programmes.  

Assessment Strategy and Methods: Knowledge, Understanding and Skills

  • Both assessment and yearly progression follow the official university regulations laid down for undergraduate programmes; however, additional accreditation requirements layer on top of the university’s academic regulations.

    Within the overall programme the department aims to provide assessment that is more holistic than traditional module-based assessment techniques. This better serves the learning outcomes of not only individual modules but also of their encompassing components and the programme as a whole. In order to achieve this, assessment will be based upon:

    Purely coursework assessment for the project and Software Design module. The group project serves as the assessment for these elements.

    Innovative mechanisms such as formative assessment or quizzes for monitoring progress within individual modules. These elements may be self-assessed or marked in the labs.

    Assessment for each module designed to provide more in-depth evaluation of student knowledge in a particular subject area. At the same time, students will benefit from a more holistic piece of assessment in the subject area.

    The assessment strategy uses a mixture of exam and coursework assessment.

    The nature of the module determines the adopted assessment scheme in Part II. This is specified in the Module Specifications. Coursework takes various different forms and can include in-lecture quizzes, programming exercises, lab-based experiments, essay style coursework, etc. Project based modules are entirely assessed by coursework.

    In summary, the following methods apply:

    Theoretical underpinnings of computer science and formal grammars and the compilation process are assessed through written assignments and exercises, followed by formal examination.

    Social, legal and professional issues knowledge is assessed through quizzes during lectures.

    Fundamentals of computer systems architecture, computer systems software, abstraction and virtualization in computer science, efficient structuring, storage and retrieval of information, information and network security, and system risk, Human-computer interaction, specialised studies in computer science are assessed through a combination of written and practical (lab.-based) assignments, and sometimes in-class quizzes, followed by formal examination.

    The architecture of the internet is assessed mainly by practical (lab.-based) assignments, followed by formal examination.

    Documentation knowledge is assessed through group and individual project reports and holistic assessment of software documentation.

    Programming languages and paradigms knowledge and skills are assessed through lab.-based practical work, marked either during the laboratory session or later.

    Software engineering knowledge is assessed through a combination of written and practical assignments, in-lecture quizzes, and extensive group-based work, followed by formal examination.

    Innovation and commercialisation of innovative products are assessed through a combination of written and practical assignments, in-lecture quizzes, and extensive group-based work, written coursework, and formal examination.

    Skills for the development of database centric applications are assessed though a combination of written and practical (lab.-based) assignments, followed by formal examination.

    Programming language proficiency, use of appropriate programming techniques, systematic program testing and debugging, development of networked distributed applications, evaluation of computer systems and applications are assessed through lab-based practical work, marked either during the laboratory session or later.

    Design and documentation of large software systems is assessed through reports and presentations.

    Interpretation and authoring of technical documentation, technical report writing are assessed through project proposal, group and individual project reports, and holistic assessment of software documentation.

    Software engineering best practice, implementation of practical Web-based systems are assessed through reports and presentations related to design and implementation of a substantial system, and extensive group-based work in studio modules

    Participation in software group projects, group working and team management, effective use of information sources, fundamental research skills, and oral presentation of technical material are assessed through group reports, peer assessment, and presentations related to a group assignment.

    Awareness of emerging technology and practice, execution of individual projects are assessed through the final year project.

    General problem solving skills are assessed through the challenging nature of many of our assessment exercises indirectly tests problem-solving skills.

    Formative assessment through practical work assignments is used to consolidate taught material and stimulate learning through practice. Formative assessment is always complemented by a summative assessment component; this is provided by examination in most elements of the programme, except those that are project-based.

Contact Information

If you encounter any difficulties accessing Online Courses Handbook information please contact the Student Registry:


If you require further details in relation to academic content please contact the appropriate academic department directly.

Related Pages