Start a new search?
MSci Hons Software Engineering (with Industrial Experience)
|Mode of Study: Full Time||Department: Computing and Communications (School of)|
|UCAS Code: G601||Duration/Length: 4 Year(s)|
|QAA Subject Benchmark: Computing||Director of Studies: Professor JND Whittle|
|Total Credit Points: 480||Credit Points Year 2: 120|
|Credit Points Year 3: 120||Credit Points Year 4: 120|
- Compulsory Modules
- Educational Aims
- Learning Outcomes
- Learning and Teaching Strategies
- Assessment Strategy and Skills
Syllabus Rules and Pre-requisites
- The student must take the following modules:
- PartII (Year 2)
- The student must take the following modules:
- PartII (Year 3)
- The student must take the following modules:
- PartII (Year 4)
- The student must take the following modules:
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.
This four year programme shares its first three years with the B.Sc. Hons Software Engineering programme. As such, it also shares many of the programme’s general and subject-specific educational aims. However, students are expected to reach a higher level of expertise and maturity in many of these aims, in particular those related to the practical application of knowledge and skills through industrial engagement. This programme is also designed to develop the transferable skills necessary for working within team-based professional environments. It aims at creating wider career prospects for students by broadening their personal horizons and cultural awareness.
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, and can demonstrate a high degree of scholarship and investigative practice in that domain.
Ensure students have mature understanding of software engineering methodologies, strategies and platforms.
Impart cutting edge knowledge and experience of the most significant contemporary developments in practice and technology.
Help students advance the skills they will need in order to respond positively to the evolution of the discipline throughout the course of their career.
Develop advanced critical, analytical and problem-solving skills needed by a practising software engineer.
Equip students with solid transferable skills necessary for working within team-based, professional environments.
Provide practical experience of the challenges associates with working in an industry led environment, and to educate on how these challenges should be met by a practicing computer science professional.
Help students strengthen the knowledge for a range of areas of advanced Computer Science
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 and sophisticated understanding of the practice of software development.
Understand, apply and interpret the fundamentals of computer system and network architectures.
Understand, apply and critique the fundamentals of data and knowledge management, and associated techniques.
Demonstrate deep understanding of key professional issues, and their relevance in industry setting.
Apply and reflect on good programming practice to the development of applications and systems software solutions.
Analyse, model, specify, evaluate and reflect on technological solutions to real-world problems.
Design, validate, verify and document software solutions to address real world inspired problems.
Apply and reflect on fundamental computing principles to the selection and application of appropriate programming paradigms, algorithms, data structures, data and knowledge management techniques.
Apply and examine knowledge of computer and network architectures to the selection and application of appropriate techniques and technologies to system-level design and development.
Apply and critique principles, theories and methods of human computer interaction to computer systems and software design.
Deepen awareness of emerging technology and practice and cutting edge research.
Demonstrate solid 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 in different settings.
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.
Strengthen 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.
Understand process of innovation and commercialisation of innovative computer-related products.
Develop knowledge and skills of project management through guided practical project based placements, i.e. defining project plans.
Develop deeper understanding of advanced specialist studies in Professional and research methodology, Advanced human computer interaction, and Data mining, to a level sufficient to prepare the student for advanced projects in that field.
Demonstrate knowledge and skills of academic writing through authoring and reviewing academic publications at a level commensurate with international research workshops in the field.
Develop and demonstrate skills of reflecting on their learning practice and to communicate effectively with a professional working in industry.
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 the fourth year, the students study purely four masters modules, i.e., SCC400-403. These taught modules cover the basic master level computer science subjects in the areas of Systems, People and Big Data according to which all computer science based master level programmes are organised. As for all of computer science MSc programmes, there will not be any options. The fourth year consists of two specific industry-based modules ensuring intensive engagement with the industrial side of the programme, i.e. SCC 419 and SCC421. SCC.419 Industry Placement consists of ten-week placement in industry, and SCC.421 Fourth Year Project.
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, oral presentation of technical material and reflection 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.
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.