School of Computer Science BCS accreditation 2021 - 2026
[Home]
B.1 Programme data
Programme title | Computer Science BSc (Hons) |
Date programme first offered | 1968 |
Date programme revised | 2019 |
Mode(s) of study | FT |
Programme duration | 3 years |
Student intake to programme for current academic year | 203 students |
Names, positions and dates of appointments of external examiners | Iain Philips - Dr Iain Philips, Senior Lecturer (Loughborough University), 1st October 2019 - 31st December 2023 |
Accreditation sought | CITP, CEng (Partial) |
Accreditation period sought | 2021-2026 |
Programme also accredited by | None |
Responsible department | Department of Computer Science |
B.2.4 map of core course units to Computer Science BSc (Hons)
Table key= assessed mandatory learning outcome = assessed optional learning outcome = unassessed mandatory learning outcome = unassessed optional learning outcome = not relevant for accreditation | ⓘ COMP10120 View All Courses | ⓘ COMP11120 View All Courses | ⓘ COMP11212 View All Courses | ⓘ COMP12111 View All Courses | ⓘ COMP13212 View All Courses | ⓘ COMP15111 View All Courses | ⓘ COMP15212 View All Courses | ⓘ COMP16321 View All Courses | ⓘ COMP16412 View All Courses | ⓘ COMP23111 View All Courses | ⓘ COMP23311 View All Courses | ⓘ COMP23412 View All Courses | ⓘ COMP26020 View All Courses | ⓘ COMP26120 View All Courses | ⓘ COMP28112 View All Courses | ⓘ COMP30040 View All Courses | ⓘ COMP21111 View All Courses | ⓘ COMP22111 View All Courses | ⓘ COMP22712 View All Courses | ⓘ COMP24011 View All Courses | ⓘ COMP24112 View All Courses | ⓘ COMP24412 View All Courses | ⓘ COMP25212 View All Courses | ⓘ COMP27112 View All Courses | ⓘ COMP32211 View All Courses | ⓘ COMP32412 View All Courses | ⓘ COMP33511 View All Courses | ⓘ COMP33712 View All Courses | ⓘ COMP34120 View All Courses | ⓘ COMP34212 View All Courses | ⓘ COMP34412 View All Courses | ⓘ COMP35112 View All Courses | ⓘ COMP36111 View All Courses | ⓘ COMP36212 View All Courses | ⓘ COMP36511 View All Courses | ⓘ COMP37111 View All Courses | ⓘ COMP37212 View All Courses | ⓘ COMP38211 View All Courses | ⓘ COMP38411 View All Courses | |
2.1.1 Knowledge and understanding of facts, concepts, principles & theories ⓘ View All Criteria | ResponseEnquiry based learning topics related to development of web based applications and group work.AssesementIndividual coursework, Presentation, Lab work | ResponseIt teaches areas of mathematics required for various fields of computer science in the form of the concept of proof, formal logic, probability, recursion and induction, relations, and linear algebra.AssesementExamination, Individual coursework | ResponseThe unit consists of two halves. The first introduces regular expressions, automata and grammars with an emphasis on the relationships between the formalisms and their use to solve problems. The second half uses a simple WHILE language to introduce the topics of complexity, correctness and computability.AssesementExamination, Individual coursework | ResponseCovers basic logic design, combinatorial and sequential systems and processor design (memory, CPU and I.O.).AssesementExamination, Lab work | ResponseThis course is an introduction to data science, where data science refers to a set of concepts, techniques, and theories for extracting knowledge and information from data using computers.AssesementExamination, Lab work | ResponseThe course introduces the concepts involved in Fundamentals of Computer Architecture. Its aim is to enable the student to develop the skills required to comprehend Computer Systems, be they terminology, models, methodologies, structures (or topologies), timing, number representation and a general introduction to basic computer systems. Fundamental concepts are taught through lectures, example classes and labsAssesementExamination, Individual coursework | ResponseCovers the architecture of principles of modern operating systems, including memory, processes, security, virtualisation, file systems. High level concepts cover abstraction, caching, hashing. Introduces the C programming language as a vehicle for exploring these concepts at OS level.AssesementExamination, Individual coursework | ResponseThis course is an introduction to programming the fundamental concepts surrounding this.AssesementExamination, Individual coursework, Lab work | ResponseWe teach the general principles of object oriented programming including encapsulation, inheritance, polymorphism, abstraction, inner classes and interfaces, in addition to the particularities of the Java language such as the Java Collections Framework and JavaFX.AssesementExamination, Individual coursework, Lab work, Workshops | ResponseThis unit teaches the core principles of databases and topics in and around this area.AssesementExamination, Individual coursework, Lab work | ResponseBuilding and testing large open source systemsAssesementExamination, Individual coursework, Group coursework | ResponseStudents learn to build and maintain complex enterprise applications that follow established programming design patterns such as the Model View Controller (MVC). The theoretical principles of the MVC are put in practice on a widespread Web framework, ie Spring.AssesementExamination, Group coursework, Lab work | ResponseThe course unit covers essential knowledge, concepts, principles in relation to different aspects of programming languages, including different paradigms (eg, imperative vs declarative) as well as compilation techniques and current trends.AssesementExamination, Individual coursework, Lab work | ResponseThis course considers essential facts, concepts, principles and theories related to Algorithms and Data Structures, topics which are at the core of Computer Science. This includes theoretical tools include algorithmic complexity analysis and fundamental algorithmic design principles.AssesementExamination, Individual coursework, Lab work | ResponseFacts, concepts, principles and theories are taught and discussed in class. Knowledge about these are tested as formative assessment and via coursework as summative assessment.AssesementIndividual coursework, Lab work | ResponseThe knowledge gained during the programme is demonstrated by the student in executing the projectAssesementIndividual coursework | ResponseThis course teaches foundations of logic (propositional, QBF, LTL) with focus on reasoning algorithms (DPLL, tableaux, OBDDs) and applications to modelling and verification of state transition systems.AssesementExamination, Individual coursework | ResponseThe module aims to give a view of the role of a digital hardware designer, taking an idea and implementing it as a silicon chip. A processor is a representative example of logic used in today's chips, also giving further insight into how computers actually work. Students investigate leading edge approaches to processor design as well as being introduced to approaches current in the research domain.AssesementExamination, Lab work | ResponseThis course is fully lab-based, focussing on the use of microprocessors/microcontrollers for simple control and interfacing applications, and develops understanding of the programming and operation of the ARM processor including operating system aspects such as interprocess communication and security.AssesementLab work | ResponseStudents are given lectures and assigned reading on the theoretical basis of a range of commonly-used techniques in AI.AssesementExamination, Lab work | ResponseThis course has the following learning outcomes: (1) Describe essential and fundamental concepts in machine learning, including supervised and unsupervised learning, classification, regression and clustering, essential elements for building a machine learning system, and apply the knowledge to construct a machine learning task; (2) Explain different supervised learning models studied in the course unit, compare their differences, strengths and weaknesses, and apply the knowledge to decide which is appropriate for a particular application; (3) Explain clustering algorithms studied in the course unit and their applications; (4) Describe fundamental concepts in model evaluation and selection, explain the training, validation and testing processes, different methods for hyperparameter selection.AssesementExamination, Lab work | ResponseThis course covers artificial intelligence concepts that are knowledge-based, including representing knowledge using logical frameworks, acquiring such knowledge (e.g. semantic parsing or ILP), and reasoning with such knowledge. The course, therefore, introduces key fundamental concepts and theoretical frameworks for achieving the above.AssesementExamination, Individual coursework, Lab work | ResponseThe aims of this course are to introduce the most important system architecture approaches, and to give a wider understanding of how real systems operate and, from that understanding, the ability to optimise their use. Fundamental concepts are taught through lectures, example classes and labsAssesementExamination, Lab work | ResponseTeaches the fundamental principles of computer graphics and image processing, combining theory and practice. Students put the above into practice by writing their own computer graphics programs in three.js and image processing in C using OpenCV.AssesementExamination, Individual coursework, Lab work | ResponseThis course covers the translation of algorithms into a realisable hardware design. The practical part of the course develops higher level models into Verilog HDL and thence to an FPGA. In the lectures the process of mapping designs to ASICs is studied with emphasis on practicalities such as trading chip area, delays, power, etc. to meet a specification. Emphasis is also given to areas which are used extensively in the practical work, particularly simulation, debugging and verification.AssesementExamination, Individual coursework, Lab work | ResponseLecturesAssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test - But it is like an exam | ResponseThe unit covers the values and principles that underly agile approaches. Students are introduced to, and apply, common agile practices for requirements gathering, project planning and tracking, software estimation, design and testing.AssesementExamination | ResponseThis is a full-year course on game theory and computational game theory. It has a large practical component which consists of two substantial projects: one is to design and implement an agent which connects to a game engine and plays a particular board game against other agents. The second is to design an agent which predicts the price which will be set by another agent in order to optimize economic benefit. The theories of games, economic games, mechanism design, and solving such games, including the use of machine learning approaches, are presented in lectures and documents, and is assessed by examination. The practical implementation of these concepts are assessed through group project work. In each semester, the knowledge (the lectures) comes in the first half; the practical implementation comes in the second half.AssesementExamination, Lab work | ResponseThe unit builds students' knowledge and deep understanding of research-level issues in cognitive robotics and the latest machine learning approaches (e.g. deep learning).AssesementExamination | ResponseThe course unit covers key linguistic and algorithmic foundations of natural language processing, providing essential facts, concepts and theories.AssesementExamination, Individual coursework | ResponseLectures on these topics: how to construct a parallel computer, shared memory vs. distributed memory; how to program a parallel computer, data sharing vs. message passing (vs. functional programming); multithreading; cache coherence; synchronisation mechanisms; hardware support for synchronisation; lock-free data structures; OpenMP/MPI; thread-level speculation; transactional memory; memory consistency; attached accelerators and their programming; functional programming and dataflow.AssesementExamination, Lab work | ResponseThe course develops knowledge and understanding of mathematical systems and their relation to computation. Aspects of precision, computer arithmetic, numerical algorithms and applications are all explored to understand their impact on mathematical modelling and simulation.AssesementExamination, Individual coursework | ResponseThis course unit focuses on principles and techniques that underpin the web, and to investigate how these are applied to provide webs of documents and data. In so doing, the concepts and standards associated with resource identification, access, indexing, classification, publication and search are discussed, with specific focus on scalability.AssesementIndividual coursework, Lab work | 2.1.1 Knowledge and understanding of facts, concepts, principles & theories ⓘ View All Criteria | |||||
2.1.2 Use of such knowledge in modelling and design ⓘ View All Criteria | ResponseApplication of knowledge acquired through enquiry based learning to create a web-based application of the group's choice.AssesementPresentation, Lab work | ResponseIt provides a basis for reasoning about such systems and their properties, introduces notions that underpin the use of probabilities in modelling various situations, and gives the students additional abstract tools to apply when it comes to understanding the behaviour of such systems.AssesementExamination, Individual coursework | ResponseAddresses the design of logic elements through to the design of a complete, but basic, processor.AssesementExamination, Lab work | ResponseMost basic building blocks of a computer system are covered throughout the course. Different design objectives and trade-offs are explained.AssesementExamination, Individual coursework | ResponseStudents design, implement and analyse memory cachesAssesementIndividual coursework | ResponseStudents are tasked to design basic algorithms using flowcharts and pseudocode which can then be used to influence their own codeAssesementIndividual coursework, Lab work | ResponseWe teach the advantages and disadvantages of object oriented programming for software modeling. UML is embedded throughout the course in the examples, labs and courseworks whereby it is not only used to specify a software system, but students have to make their own designs given a domain, requirements and modeling problem.AssesementIndividual coursework, Lab work, Workshops | ResponseThe students are required to use their modelling and design skills throughout the course unit when creating logical models and schemaAssesementExamination, Individual coursework, Lab work | ResponseStudents have to understand git workflows to modify softwareAssesementExamination, Individual coursework, Group coursework | ResponseStudents experience the trade-offs of hiding complexities which involves reduced control over the development framework and the understandability of what is actually going on behind the scenes. There are also the tradeoffs of using external services (SaaS) that typically promise good documentation, flexibility and number of API calls against those who don't.AssesementExamination | ResponseThis is partly addressed through lectures and lab work where different paradigms are used to illustrate trade-offs between different programming languagesAssesementExamination, Lab work | ResponseThere is a focus on the trade-offs associated with the performance of various data structures and algorithmic paradigms. This is explored using theoretically using computational complexity and practically via experimentation.AssesementIndividual coursework, Lab work | ResponseSuch knowledge is discussed in class and tested as summative assessment.AssesementIndividual coursework, Lab work | ResponseStudents apply knowledge gained from other course units and personal research in the design and implementation of a substantial project.AssesementIndividual coursework | ResponseThe course teaches modelling, design and verification of computational systems, in particular state transition systems.AssesementExamination, Individual coursework | ResponseSimulation of hardware designs using commercial tools in laboratories. The use of testing as an important tool of the designer is discussed.AssesementExamination, Lab work | ResponsePractical development through to working implementation.AssesementLab work | ResponseThis course has the following learning outcomes: Apply knowledge on a few machine learning models identified in the course unit to design learning systems, and analyse results as well as implication.AssesementLab work | ResponseEmphasis is placed on the use of logical frameworks for the modelling of real world and computer-based systems. Different knowledge representation formalisms are explored and compared, considering the various trade-offs.AssesementExamination, Individual coursework, Lab work | ResponseMost exercises require high-level modelling of the systems. The lectures cover many aspects of computer design. The labs require modelling a few memory systems and understanding their tradeoffs.AssesementExamination, Lab work | ResponseExplores the roles that computer graphics plays in visualisation of data, modelling of systems, and communicating ideas.AssesementExamination, Individual coursework, Lab work | ResponsePractical development through to working implementationAssesementIndividual coursework, Lab work | ResponseDesign examples and model analysisAssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseUser stories are used to model the requirements for a computer system, with a focus on capturing the value that a software project is expected to deliver to the customer. Story points are used to describe the relative size of a piece of functionality, for the prediction of delivery times and effort. Evolutionary design techniques based on test-driven methods are introduced, as a means of adapting the design of a software system to the requirements are they are understood at each point in a project.AssesementExamination | ResponseIn each project, the students have to use the knowledge from the course to design and implement their solutions. They will not be able to succeed without that knowledge. Modelling the actions of other agents is essential.AssesementExamination, Lab work | ResponseStudents learn to design and carry out a deep learning simulation study, to practice the use of the theoretical knowledge to a practical implementation problem.AssesementIndividual coursework | ResponseThe course unit used that knowledge to build two computer-based systems as part of coursework.AssesementIndividual coursework | ResponseThis is investigated in the lab work. There are 3 exercises, each of which requires students to develop a multithreaded parallel data sharing program in Java to perform a given task (vector addition, sorting, partial differential equations solving). The focus is on measuring the resulting performance and demonstrating at least some degree of speedup. Trade-offs are inherent in this.AssesementLab work | ResponseThe use of this course knowledge in modelling and design is through the ability to apply the techniques taught in this course across different disciplines within and outside computer science. For example when designing numerical analysis software for engineering applications.AssesementExamination, Individual coursework | ResponseCoursework and labs provide experience of a new programming model for big data (MapReduce), as well as requiring design of systems for indexing and searching on the web for documents and data. Coursework specifically ask to discuss trade-offs between modelling decisionsAssesementIndividual coursework | 2.1.2 Use of such knowledge in modelling and design ⓘ View All Criteria | ||||||||
2.1.3 Problem solving strategies ⓘ View All Criteria | ResponseDesign of a web-based application to a specification created by the group.AssesementPresentation, Lab work | ResponseThe students practice problem solving by addressing exercises. Some of the exercises and the examples on this course particularly address the application of mathematical concepts and principles to problems from computer science.AssesementExamination, Individual coursework | ResponseThe course notes include a comprehensive set of exercises designed to develop students' abilities to work with the formalisms taught. Examples classes give face to face feedback on performance.AssesementExamination, Individual coursework | ResponseThis is addressed in laboratory work, supported by lectures.AssesementLab work | ResponseThe specific problems concern the use of data to address questions. A number of techniques are investigated. When their use is appropriate is part is the most important concept for the student to learn.AssesementExamination, Lab work | ResponseWide variety of exercises covered in the lectures and hands-on in both labs and example classes.AssesementExamination, Individual coursework | ResponseThe course emphasises an operating system as a series of problems that need to be solved, with solutions considering the trade-offs (typically between speed and size) of various solutions.AssesementExamination, Individual coursework | ResponseWe introduce problem solving through timetabled workshops and these principles are also used in coursework 02AssesementIndividual coursework, Lab work | ResponseWe teach how the use of data structures including Lists, ArrayLists, Sets, Stacks, Queues, Maps, HashMaps, HashSets and Binary trees can be used to solve computational problems. At the weekly workshops we give problems to be solved using whiteboard and marker to encourage the development of computational thinking strategies while not being distracted by the computer or code editor.AssesementExamination, Individual coursework, Lab work, Workshops | ResponseThe must use their problem solving skills to interpret the requirements of the "client" and then form a model ready for implementationAssesementIndividual coursework, Lab work | ResponseStudents use design patterns to refactor softwareAssesementExamination, Group coursework | ResponseThe problem solving strategies involve (i) learning how to use the documentation of existing Web frameworks to address the requirements; (ii) double checking with the customers whether the course of action is sensible; (iii) splitting the requirements into smaller chunks that have to be distributed among the team members; (iv) come up with an strategy to merge all the chunks and merge them.AssesementExamination, Group coursework | ResponseThe unit makes use of problems where the solutions require problem-solving skills to apply different programming principlesAssesementExamination, Individual coursework, Lab work | ResponseMaterial is placed within the context of real-world scenarios to demonstrate application to real-word problems. The course involves lab work that involves analysing a problem to develop an appropriate solution. Exam questions often involve an element of analysing a scenario to identify the most appropriate algorithmic solution.AssesementExamination, Lab work | ResponseDiscussed in class and tested as summative assessment.AssesementIndividual coursework, Lab work | ResponseThe project may involve students developing a solution to a specific problem suggested by a supervisor or the studentAssesementIndividual coursework | ResponseStudents solve a wide range of problems in weekly assessed exercises.AssesementExamination, Individual coursework | ResponseAddressed in laboratory work, supported by lectures.AssesementExamination, Lab work | ResponseStudents work in the lab to develop a full microprocessor-based system. Moreover, a final mini project challenge student's problem solving skills.AssesementIndividual coursework, Lab work | ResponseThis course has the following learning outcomes: Implement and apply a few machine learning models identified in the course unit to and solve real-world problems, and analyse results as well as implication.AssesementLab work | ResponseEmphasis is placed on selecting the most appropriate AI strategy for a particular scenario. More abstract problems are presented where the full task of modelling and reasoning needs to be designed.AssesementExamination, Lab work | ResponseLectures include a broad variety of exercises which promote development of problem-solving skills.AssesementExamination | ResponseThis is addressed in laboratory work, supported by lectures.AssesementIndividual coursework, Lab work | ResponseIn practical work students develop an FPGA-based system and troubleshoot the design as they proceed.AssesementIndividual coursework, Lab work | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Individual coursework | ResponseThe course covers the assumptions that underly sequential and agile processes for software development, and helps students to recognise when each is appropriate.AssesementNot Assessed | ResponseThe group project work is done largely from scratch. Particularly for the first project, there are multiple ways to do it.AssesementLab work | ResponseStudents learn to select, justify and apply AI and machine learning algorithms to specific robotics problems.AssesementExamination, Individual coursework | ResponseStudents are asked to solve a particular problem, so they need to analyse the requirements and criteria, and design a solution.AssesementIndividual coursework | ResponseInvestigated in the lab work.AssesementLab work | ResponseThe course explores engineering problem solving from the perspective of the computational modeller. Core concepts and analysis tools including finite precision computation, floating point arithmetic, mixed precision algorithms and numerical solution of differential equations, are used to solve a range of problems along with their impact on computer performance.AssesementExamination, Individual coursework | ResponseThe course unit discusses specific case studies - indexing a real-world set of documents and data. Students are asked to come up with specification to address the problem and plan how to solve it. For one of the tasks, students are asked to mostly focus on identification of design challenges and come up with a balanced strategy to address these.AssesementIndividual coursework | 2.1.3 Problem solving strategies ⓘ View All Criteria | |||||||
2.1.4 Analyse if/how a system meets current and future requirements ⓘ View All Criteria | ResponseAlthough the requirements are determined by the group, they reflect on these and future needs in the final presentation.AssesementPresentation | ResponseIt enables students to use logic to establish such criteria formally and it provides examples fo how to give proofs of such properties.AssesementExamination, Individual coursework | ResponseThe unit introduces the notion of computational correctness and the use of formal specifications to describe behaviour.AssesementExamination, Individual coursework | ResponseThe course covers the evolving needs of users compared with the affordances / cost of the technology; for example the change in ratio between the address size and cost/availability of physical memory and backing store.AssesementExamination | ResponseStudents learn testing through the provision of unit tests in the labs and coursework in order to make sure that their code meets the expectations set.AssesementGroup coursework, Lab work | ResponseWe go through step-by-step from the initial requirements to the ending database system and students will evaluate and assess the usefulness of their database throughout.AssesementIndividual coursework, Lab work | ResponseBugs are injected into the system and the course requires that students fix those bugsAssesementIndividual coursework, Group coursework | ResponseAs students build an enterprise web system over a period of ten weeks, students are given new requirement every week whereby the lecturers act as customers. Students are encouraged to check with the "customers" whether the requirements are met. In this way, students learn that requirements can be initially ambiguous and become more specific over time. They also learn that some requirements may disappear, some others will emerge unexpectedly and some other are open to interpretation.AssesementExamination, Group coursework | ResponseThere is one part of the course unit, which is dedicated to future trends in programming languages.AssesementExamination, Individual coursework | ResponseEmphasis is placed on being able to argue and/or demonstrate the correctness and complexity of an algorithmic solution.AssesementExamination, Lab work | ResponseCurrent and future requirements for distributed systems are taught and discussed in class, and tested as both formative and summative assessment.AssesementIndividual coursework, Lab work | ResponseThe student's work will be evaluated against requirements derived as part of the project.AssesementIndividual coursework | ResponseSpecification and verification of systems is a large part of this course unit.AssesementIndividual coursework | ResponseInvestigation of future approaches to computing.AssesementExamination | ResponseIntroduction of general concepts and how they are used in present and future systems.AssesementNot Assessed | ResponseThis course has the following learning outcomes: Discuss the differences (including limitations and advantages) between parametric and non-parametric, between deterministic and probabilistic models, and interpret their results.AssesementExamination | ResponseThe course includes coverage of current and future trends in systems architectureAssesementExamination, Lab work | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseThe unit covers agile approaches to software testing, including the use of acceptance tests to both specify and verify the requirements for a system. The unit touches upon the question of how we can decide whether a software system delivers the value initially hoped for from it.AssesementExamination | ResponseThe course unit discusses how to analyse the outcomes/outputs of computer-based systemsAssesementExamination, Individual coursework | ResponseIn the lectures we cover how some design points of multiprocessors (such as cache coherency) do not scale well with the increase in cores expected in future processors.AssesementExamination | ResponseThis course has been designed with the main objective of making available to students research questions in the field. Topics studied are intended to equip students with the analytical problem-solving skills required to handle and exploit future developments of computer-based systems.AssesementExamination, Individual coursework | ResponseStudents are asked to critically evaluate what their solution to a problem would support (e.g. what kind of queries), and how would any future requirements fit. They also need to understand and discuss the efficiency of proposed solutions - e.g. in the context of large number of documents to index.AssesementIndividual coursework | 2.1.4 Analyse if/how a system meets current and future requirements ⓘ View All Criteria | ||||||||||||||||
2.1.5 Deploy theory in design, implementation and evaluation of systems ⓘ View All Criteria | ResponseThe unit teaches the mathematics underpinning the formal side of specifying such systems.AssesementExamination, Individual coursework | ResponseUse of boolean algebra, gate level design, and HDL description of circuits in the design and implementation of systems.AssesementExamination, Lab work | ResponseStudents use the Perentie tool to write and evaluate assembly programs.AssesementIndividual coursework | ResponsePatterns, OO Design and UMLAssesementCoursework and examination | ResponseThe students spend a few weeks going through the design process of a database from requirements to end productAssesementIndividual coursework, Lab work | ResponseThe theoretical principles are put into practice in several ways: (i) the MVC in use is well-known Web framework used in industry; (ii) we use external APIs for mapping (ie Mapbox); (iii) we integrate into the MVC architecture APIs that are widely used (Twitter API); (iv) principles of testing in isolation are put in practice whereby students derive tests from requirements and learn to mock components of the Web system to facilitate testing.AssesementExamination, Group coursework | ResponseTheoretical properties related to algorithms and data structures are explored through the implementation and evaluation of algorithmic solutions to computational problems during lab exercises.AssesementLab work | ResponseDiscussed in class in the form of design of a solution, considering existing best practices and theory and tested as summative assessment.AssesementIndividual coursework, Lab work | ResponseStudents are expected to apply knowledge acquired during the programme and through their personal research.AssesementIndividual coursework | ResponseIn this course, theoretical aspects are linked to practical reasoning and verification algorithms.AssesementExamination, Individual coursework | ResponseDesign exercises in laboratories supported by the use of commercial design tools.AssesementExamination, Lab work | ResponseThe labwork is concerned with implementation of systems based on sound theoretical principles.AssesementIndividual coursework, Lab work | ResponseStudents are required to solve practical problems in four laboratory exercises: natural language inference, game-playing, fuzzy logic and vehicle odometry.AssesementLab work | ResponseThis course has the following learning outcomes: (1) Recognise general factors that affect the performance of a machine learning system, and be able to use these to analyse and learn from data; (2) Apply the knowledge to use data, design machine learning experiments, and make observations from results. Also implementation of designed learning system is required.AssesementLab work | ResponseThe course is about students to understand AI techniques, and about getting them to learn how to implement these techniques and how to judge when they are applicable.AssesementLab work | ResponseStudents develop and use several tools and benchmarks to evaluate computer systems.AssesementExamination, Lab work | ResponseWe discuss image processing solutions for appropriate problems.AssesementExamination, Lab work | ResponseThe labwork is concerned with implementation of systems based on sound theoretical principles.AssesementIndividual coursework, Lab work | ResponseLecturesAssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseKey agile practices associated with requirements gathering, project planning, software testing and evolutionary design are introduced in the course. Students have a chance to apply the practices in class, with students choosing one practice to apply in depth in their coursework. Tools made use of include Cucumber, JUnit and IDE-based refactoring.AssesementExamination | ResponseThe knowledge concerning how to solve games in the contexts of the two practical projects is highly theoretical. The students design and implement solutions based on that theory. The students will not achieve successful results without making use of the theory that they learned.AssesementLab work | ResponseStudents learn to use a set of libraries and tools to implement the selected machine learning methods.AssesementExamination, Individual coursework | ResponseAs above - the course unit focuses on specification, design, implementation and evaluation of natural language processing systems.AssesementExamination, Individual coursework | ResponseConcepts from the lectures are applied in the lab exercises in which the students are asked to design, implement, and evaluate parallel shared-memory programs.AssesementExamination, Lab work | ResponseThe course addresses the problem of deploying appropriate theory, practices and tools for the specification, design, implementation and evaluation of computer-based systems. For example, by developing numerically stable and accurate algorithms and applying them across a range of example problems.AssesementIndividual coursework | ResponseWe introduce different MapReduce patterns for developing the methods to implement indexing of documents and data. A variety of standard and emerging methods for evaluation of information retrieval are considered.AssesementIndividual coursework | 2.1.5 Deploy theory in design, implementation and evaluation of systems ⓘ View All Criteria | ||||||||||||
2.1.6 Recognise legal, social, ethical & professional issues ⓘ View All Criteria | ResponseStudents work on - group and individual tasks related to copyright and intellectual property. - the 'Killer Robot' case study (again as a group and individual), investigating ethical considerations. - a range of subjects related to data protection, licensing, ethical issues, etc that are relevant to their team's web project - the subject of unconscious bias and how it may effect their teamworkAssesementIndividual coursework, Presentation | ResponseThe ethical use of data, and the validity of the assumptions used to draw conclusions from data is covered briefly.AssesementExamination | ResponseCovers the concept that 'every line of code is an ethical decision', e.g. implications for OS security and performance (which in turn has implications for energy consumption)AssesementExamination | Responsewe briefly discuss database security and the ethical implications around thisAssesementLab work | ResponseStudents have to co-ordinate their work as a team, assign bugs to team members and work professionally togetherAssesementGroup coursework | ResponseDiscussed in class and tested as formative assessment.AssesementIndividual coursework, Lab work | ResponseStudents are expected to adhere to the relevant ethical guidelines during their project work.AssesementIndividual coursework | ResponseThis course has the following learning outcomes: Recognise and describe issues regarding ethics in machine learning.AssesementIndividual coursework | ResponseThe ethical issues of manipulating imagery are discussed.AssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseThe unit covers a number of professional issues: whole-team responsibility, issues of trust and openness between customer and development team, honesty in making commitments or dealing with unrealistic commitments made on the team's behalf, learning from team members, the management of technical debt and techniques for maintaining high software quality. We also touch on contracts for agile projects.AssesementExamination | ResponseGame theory can help in understanding the incentives for behaving in an unethical or antisocial manner. Computational game theory, and particularly mechanism design can provide incentives against dishonest behavior. These topics are part of the theoretical content of the course.AssesementExamination | ResponseThere is a lecture on ethics of AI and robotics, the students explicitly learn about AI-related ethics issues.AssesementExamination | ResponseA brief discussion on social and ethical issues when it comes to what data to index and how autonomous data representation models should be.AssesementNot Assessed | 2.1.6 Recognise legal, social, ethical & professional issues ⓘ View All Criteria | |||||||||||||||||||||||||
2.1.7 Knowledge and understanding of commercial and economic issues ⓘ View All Criteria | ResponseCovered indirectly through consideration of performance / cost of OS/hardware.AssesementNot Assessed | ResponseStudents estimate the cost (in time) of fixing bugs using Work Breakdown Structures (WBS) so they can justify the estimates they make when fixingAssesementExamination, Group coursework | ResponseWhen exploring the space of APIs that may help addressing the requirements, students learn the conditions of some services that are commercial and may constrain the ability of the system to scale (SaaS).AssesementExamination, Group coursework | ResponseDiscussed in class (impact of existing systems in businesses and society) and tested as both formative and summative assessment.AssesementIndividual coursework, Lab work | ResponseCommercial considerations may impact some projectsAssesementIndividual coursework | ResponseThis is addressed by discussing the importance of verified systems in safety-critical applications and how software and hardware bugs can adversely affect economy and companies.AssesementNot Assessed | ResponseUnderstanding design factors and their economical impact.AssesementNot Assessed | ResponseThis course has the following learning outcome: Discuss the differences (including commercial and economic concerns) between models of different complexity levels, and interpret their results.AssesementNot Assessed | ResponseThe last lectures cover current and future trends in systems architecture, part of this is discussed in a business contextAssesementExamination | ResponseDescribed through case studies in the courseAssesementNot Assessed | ResponseThe issue of contracts for agile projects is covered briefly by this unit, as is the importance of ensuring that software systems deliver real value to customers.AssesementExamination | ResponseThe second semester of the course is about economic application of games. The project is about setting prices to maximize profit by predicting the behavior of other players in the market.AssesementExamination, Lab work | ResponseThe course unit regularly features a guest lecture from industry.AssesementNot Assessed | ResponseLectures are explicit about the lack of accurate information about how commercial cache protocols and related hardware-level schemes actually work due to the commercial sensitivities.AssesementExamination | ResponseRegularly covered by a guest lecture from industry, discussing practical issues in maintaining search and indexing systems.AssesementNot Assessed | 2.1.7 Knowledge and understanding of commercial and economic issues ⓘ View All Criteria | ||||||||||||||||||||||||
2.1.8 Knowledge of management techniques to achieve objectives ⓘ View All Criteria | ResponseUse of source code management systems (Github), basics of project planning, task allocation, chairing meetings, use of project management systems.AssesementGroup coursework | ResponseStudents work as a team, they have to manage their workload and negotiate work between themAssesementGroup coursework | ResponseTime management, workload distribution in teams and leadership are key aspects students learn while they work in teams as new requirements are released every week so they are required to be up to date.AssesementNot Assessed | ResponseTime and data management in a computing context are discussed in the lab and tested as part of summative assessment.AssesementLab work | ResponseStudents are expected to use an appropriate planning tool to manage their work.AssesementIndividual coursework | ResponseA number of the practices covered by the course relate to project management: task boards are introduced as a lightweight means of planning and tracking the progress of software projects. Agile estimation techniques are also covered. We provide an overview of common agile management methodologies, e.g. Scrum, Kanban.AssesementExamination | ResponseOnly indirectly. The projects are substantial and are done in small groups. The students have to manage the projects themselves.AssesementLab work | ResponseThe labs and coursework requires the practice and development of project planning and monitoring skills.AssesementIndividual coursework | 2.1.8 Knowledge of management techniques to achieve objectives ⓘ View All Criteria | |||||||||||||||||||||||||||||||
2.1.9 Knowledge of information security issues ⓘ View All Criteria | ResponseAnalysis of security and privacy issues relating to group project.AssesementPresentation | ResponseSecurity is considered throughout, including as a specific topic on malware analysis.AssesementExamination | ResponseWe devote one week to secure programming involving a guest lecture from industry and the reading of scientific papers on the topic, which is assessed in the exam.AssesementExamination | Responsewe briefly discuss database security and the ethical implications around thisAssesementLab work | ResponseWe devote one week to secure programming involving Spring security basics and privacy design strategies.AssesementExamination, Group coursework | ResponseExamples from computer security are often used as examples to demonstrate key concepts. One topic involves the basic theory required to understand asymmetric key encryption, accompanied by a lab to explore the process in practice.AssesementLab work | ResponseDiscussed in class and tested as formative assessment.AssesementIndividual coursework | ResponseInformation security may be a concern in some projectsAssesementIndividual coursework | ResponseSecurity is briefly mentioned in relation to verification.AssesementNot Assessed | ResponseSome work covers software privileges and hardware security.AssesementLab work | ResponseSecurity and privacy concerns are explored during the virtualisation part of the course.AssesementExamination | ResponseSeveral lectures are dedicated to IoT securityAssesementExamination | 2.1.9 Knowledge of information security issues ⓘ View All Criteria | |||||||||||||||||||||||||||
2.2.1 Specify, design or construct computer-based systems ⓘ View All Criteria | ResponseDesign and implementation of a substantial, data-driven web application.AssesementPresentation | ResponseAddresses the design of simple processors and their interaction with memory and IO.AssesementExamination, Lab work | ResponseBy it's nature, the course only goes as far 'up' as operating systems, however the design of these is the core topic.AssesementExamination | ResponseDesign and implement simple Python based programsAssesementIndividual coursework, Lab work | ResponseStudents build and test a large open source software systemAssesementGroup coursework | ResponseThere is a set of exercises where specification is provided and different compute-based systems have to be implemented using different programming languagesAssesementExamination, Lab work | ResponseThe course is a practical course in which students build a variety of systems, from specification, through design to implementation.AssesementLab work | ResponseDiscussed in class and tested as summative assessment.AssesementIndividual coursework, Lab work | ResponseStudents may specify, design and implement a substantial computer-based system.AssesementIndividual coursework | ResponseSpecification and verification of systems is part of this course unit.AssesementIndividual coursework | ResponseThe students specify, build, and test working processor solutions.AssesementExamination, Lab work | ResponseThe practical work of the course is all about system building.AssesementIndividual coursework, Lab work | ResponseThis course requires learning outcome on design and implementation of machine learning systems, which are computer based.AssesementLab work | ResponseThe course involves constructing a reasoning-based system to explore the theoretical concepts introduced in lectures.AssesementLab work | ResponseThe main aim of the course is computer architecture, so system design is an important part thereof.AssesementExamination, Lab work | ResponseThe practical part of the course develops higher level models into Verilog HDL and thence to an FPGA. In the lectures the process of mapping designs to ASICs is studied with emphasis on practicalities such as trading chip area, delays, power, etc. to meet a specification.AssesementExamination, Individual coursework, Lab work | ResponseLecturesAssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseUser stories are covered as a means of gathering and documenting requirements in a lightweight form. Evolutionary design techniques are covered as a means of avoiding the need to design software systems up-front, while attempting to meet requirements over the long term. Test-driven development is covered as an approach to the implementation of high-quality, highly-maintainable code.AssesementExamination | ResponseIn doing the two projects, the students have to specify, design, and implement computer-based agents largely from scratch.AssesementLab work | ResponseStudents use libraries and dataset to build and test an AI (visual recognition and classification) system.AssesementIndividual coursework | ResponseNatural language processing systems are discussed - what they tasks are (specification), how to design them and how to construct them. The exam often asks students to discuss a specification, design and construction of a real-world processing system (e.g. for a case study).AssesementExamination, Individual coursework | ResponseLectures describe many important details of the construction of multiprocessors.AssesementExamination | ResponseThis course specifies, designs and constructs computer models capturing mathematical systems defining real-world problems. Model implementations are analysed from the perspective of accuracy, stability, and computational performance.AssesementExamination, Individual coursework | ResponseStudents are asked to design and construct two computer-based systems for indexing sets of documents and data. These are introduced in workshops.AssesementIndividual coursework | 2.2.1 Specify, design or construct computer-based systems ⓘ View All Criteria | ||||||||||||||
2.2.2 Evaluate systems in terms of quality and trade-offs ⓘ View All Criteria | ResponseStudents work through alternative designs and approaches to their system with their tutorAssesementGroup coursework, Presentation | ResponseThe unit lays the mathematical groundwork for the notions related to algorithmic complexity.AssesementExamination, Individual coursework | ResponseThe unit focuses on a number of equivalent formalisms (regular expressions and various flavours of automata). Trade-offs between these systems are discussed in terms of their usability, implementation and reasoning about their properties.AssesementNot Assessed | ResponseThe course covers topics relevant to objective evaluation of systems: concept and quantification of uncertainty in measured and experimental data, visualization of data, hypothesis generation and testing, and basic statistical tests. These topics constitute a substantial part of the course. One objective of the course is that on successful completion, the student should be able to design and carry out a valid experiment to test a hypothesis.AssesementExamination, Lab work | ResponseSome basic tradeoffs in terms of execution speed and storage are explainedAssesementIndividual coursework | ResponseExplicitly analyses different algorithms for various OS components, e.g. caching and scheduling strategiesAssesementExamination, Individual coursework | ResponsePros and cons of different algorithmic and design approachesAssesementExams, Coursework | ResponseThe quality of the system students build is assessed in using test code quality and test coverage tool, continuous integration and testing toolsAssesementGroup coursework | ResponseA range of trade-offs in terms of designing, building, compiling programs are discussed throughout the course unitAssesementExamination, Individual coursework | ResponseAnalysing and understanding performance trade-offs is a core component of lab work.AssesementLab work | ResponseDiscussed in class and tested as summative assessment.AssesementIndividual coursework, Lab work | ResponseStudents are expected to evaluate alternative solutions in their work and to reflect on their completed work.AssesementIndividual coursework | ResponseTrade-offs of different reasoning algorithms are discussedAssesementExamination, Individual coursework | ResponseOverview in lectures of trade-offs in hardware designAssesementExamination | ResponseStudents are encouraged to reflect on their solutions implemented in the lab.AssesementLab work | ResponseThis course requires learning outcome on discussing the differences (including limitations and advantages, quality and trade-offs) between different machine learning models.AssesementExamination | ResponseDifferent reasoning systems are evaluated for the appropriateness in different scenarios.AssesementLab work | ResponseMost exercises require high-level modelling of computer systems. The lectures cover many aspects of computer design. The labs require modelling a several memory systems and understanding their tradeoffs.AssesementExamination, Lab work | ResponseThere is extensive coverage of the trade-offs in acceptable quality necessary to create computer graphics imagery in real-time, and the requirements of real-time image processing.AssesementExamination | ResponseThe lab includes some test and verification work.AssesementIndividual coursework, Lab work | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseThe key focus of agile methods on delivering real value to the customer through the development of software is covered by the unit.AssesementExamination | ResponseAgain it is indirect. The students have procedures whereby they can test their solutions. This allows them to test the efficacy of the decisions they have made.AssesementLab work | ResponseLectures and exams focus on evaluation and selection of different methods and algorithms,AssesementExamination | ResponseCoursework asks students to discuss alternatives and trade-offs between decisions they made.AssesementIndividual coursework | ResponseSome lecture topics go into these issues. For example, early attempts to provide synchronisation instructions require a read-modify-write directly into memory, but modern pipelined processors cannot do this efficiently, so novel schemes have had to be invented.AssesementExamination | ResponseThis course provides students with a wide range of criteria to evaluate different types of systems, such as numerical precision, error, model convergence, and computer hardware requirements (e.g. memory, operations, energy).AssesementExamination, Individual coursework | ResponseAs above - this is a key request for the two coursework pieces: evaluate possible trade-offs in addressing the indexing problem, and illustrate that with real-world data.AssesementIndividual coursework | 2.2.2 Evaluate systems in terms of quality and trade-offs ⓘ View All Criteria | |||||||||||
2.2.3 Recognise risk/safety for safe operation of computing equipment ⓘ View All Criteria | ResponseInduction on using desktop and laptop computers, health and safety at workAssesementCoursework | ResponseCovered indirectly through the perspective of system security and the risks and costs associated with that.AssesementExamination | ResponseBasic risk management techniques are discussedAssesementExamination | ResponseDiscussed in class.AssesementNot Assessed | ResponseSafety issues may be a concern in some projectsAssesementIndividual coursework | ResponseThis is addressed as a part of specification and verification of safety properties.AssesementExamination, Individual coursework | ResponseSecurity and privacy concerns are explored during the virtualisation part of the course.AssesementExamination | ResponseLectures emphasise the importance of correct behaviour/implementation in data protection. The incorrect implementation of Transactional Memory extensions for the i86 ISA in Intel's Haskell processor is specifically mentioned.AssesementExamination | 2.2.3 Recognise risk/safety for safe operation of computing equipment ⓘ View All Criteria | |||||||||||||||||||||||||||||||
2.2.4 Deploy tools effectively ⓘ View All Criteria | ResponseEnquiry based learning of tools; the course does not prescribe a process or tool but leads students to gain experience in developing a substantial application in order to motivate the teaching of the software development process in the 2nd yearAssesementPresentation | ResponseUse of commercial CAD tools to design and simulate simple hardware.AssesementLab work | ResponseThe lab work of this course, as well as the demonstrated examples, are carried out in python using the following tools: Jupyter notebooks, matplotlib.pyplot, numpy, pandas, scikit-learn. The students cannot carry out the labs without effectively deploying these tools. This is only assessed in practical lab sessions; it is not examined.AssesementLab work | ResponseThe course uses MySQL and MongoDBAssesementLab work | ResponseStudents deploy their refactored softwareAssesementGroup coursework | ResponseThe deployment of enterprise Web systems in an inherent part of the course unit whereby there is a lifecycle for testing and building the Web application.AssesementGroup coursework | ResponseThroughout the course, students are using tools to build systems which are of practical use.AssesementLab work | ResponseDiscussed in class and tested as summative assessment.AssesementIndividual coursework, Lab work | ResponseWe encourage students to research and use appropriate tools for designing and implementing applications (if they exist)AssesementIndividual coursework | ResponseUse of commercial CAD toolsAssesementExamination, Lab work | ResponseThe students have to use proprietary and industry tools.AssesementLab work | ResponseThe lab works requires the use of machine learning and mathematical tools.AssesementLab work | ResponseExisting tools for knowledge representation and reasoning are used within the course.AssesementLab work | ResponsePractical covers hardware development in context with its driving software.Lectures cover some design alternatives.AssesementIndividual coursework, Lab work | ResponseThe unit covers the use of specification-by-example tools (FitNesse and Cucumber), and automated testing tools (JUnit). The use of refactoring tools provided by IDEs in evolutionary design is also covered.AssesementExamination | ResponseThe coursework report is an opportunity to reflect and evaluate the use of AI and robot vision tools.AssesementIndividual coursework, Lab work | ResponseThe goal of the course is to provide students with the skills to define mathematical systems via computational models, and assess their efficacy against target objectives. This requires a range of skills including: defining a problem and casting it in a computational model, implementing a model in software, and analysing the output to measure performance. This process is explored across a range of problems from mechanical engineering, physics, and neural networks.AssesementExamination, Individual coursework | ResponseThis course unit requires students to understand and implement their solutions in a Hadoop environment, so they need to be able to demonstrate effective deployment.AssesementLab work | 2.2.4 Deploy tools effectively ⓘ View All Criteria | |||||||||||||||||||||
2.3.1 Work as a member of a development team ⓘ View All Criteria | ResponseGroup design and implementation of a web-based application, regular reflection on how team works, both as individuals and as regular 'team health checks'.AssesementIndividual coursework | ResponseStudents work as part of a team of sixAssesementGroup coursework | ResponseThe teamwork project is a central part of the course unit. The customers (ie academics) release new requirements every week and each team has to break them into manageable issues that are allocated to the member of the team. These allocations is made through consensus and is made explicit on a distributed version control system (GitLab). When the number of weekly issues is less than team members students are encouraged to do pair programming within teams.AssesementNot Assessed | ResponseAddressed as collaboration between students testing functionality computer programmed solutions developed by colleagues.AssesementNot Assessed | ResponseStudents perform code reviews of other students.AssesementNot Assessed | ResponseSeveral team-based practices are covered by the course, including self-organising teams, team-based estimation through planning poker/rock-paper-scissors, and the Three Amigos approach to specification-by-example.AssesementExamination | ResponseThe students work in small groups to develop their agents.AssesementLab work | 2.3.1 Work as a member of a development team ⓘ View All Criteria | ||||||||||||||||||||||||||||||||
2.3.2 Development of general transferable skills ⓘ View All Criteria | ResponseProblem solving, group working, communication and presentation skills, self learning through enquiry based learning, reflection.AssesementIndividual coursework, Presentation | ResponseOn this unit the students learn to think abstractly. They have to write down their solutions to problems in such a way that another person may understand them.AssesementExamination, Individual coursework | ResponseThe outcomes of the assessed labs are reports in the form of Jupyter Notebooks. In producing these from the lab scripts (which are themselves Jupyter Notebooks), the students are "walked through" the act of producing a valid report.AssesementLab work | ResponseProblem solving is an important part of the course.AssesementExamination, Individual coursework | ResponseStudents report on their analysis of caching strategies.AssesementIndividual coursework | ResponseWe teach problem solving skills through a series of workshopsAssesementIndividual coursework, Lab work | ResponseEvery week, there is a workshop where we challenge our students to solve a set of problems, which is always related to the week's topic. The activities have to be conducted in teams of 5-6 students that are arranged on an ad-hoc basis. This involves collaboration and discussion with others, reaching agreements and delegating on others.AssesementWorkshop | ResponseStudents must use their problem solving skills throughout the course unit.AssesementIndividual coursework, Lab work | ResponseStudents have to communicate with other team members and the GTAs in marking interviews to explain what they have doneAssesementGroup coursework | ResponseThis course unit aims to simulate a software engineering team where the members of the team are given a set of requirements and then, apply the the theoretical principles taught. Teams are expected to self-learn of components involving development frameworks and external software services.AssesementNot Assessed | ResponseProblem solving is exercised throughout the course unit, time management is necessary when dealing with lab work.AssesementExamination, Lab work | ResponseStudents need to be able to communicate and engage with staff about systems they have built. Marking in laboratory session is via dialogue with students and students need to be able to explain their design, implementation and the correctness and performance of the systems.AssesementLab work | ResponseDevelopment of transferable skills are required in the form of problem solving, communication, self-learning and (software) functionality design, development and improvement. These skills are to be tested as both formative and summative assessment.AssesementIndividual coursework, Lab work | ResponseIndependent planning and working, self guided professional development, reporting via written work and a video,AssesementIndividual coursework, Presentation | ResponseStudents are expected to solve a wide range of problems via weekly assessed exercises and clearly explain solutions in writing. Students are encouraged to participate in discussions during lectures and labs.AssesementExamination, Individual coursework | ResponseDevelop a sense of importance of testing that applies beyond the boundaries of hardware design.AssesementExamination, Lab work | ResponseThe unit introduces general concepts and applies them to concrete examples. In a mini project these concepts will be applied in a new context.AssesementIndividual coursework, Lab work | ResponseStudents are shown by a series of examples how to develop theoretical solutions to practical problems in AI, and how to transform those solutions into practical implementations.AssesementExamination, Lab work | ResponseThis courses requires problem solving and numeracy skills, also communication skills required in marking session.AssesementLab work | ResponseProblem solving, numeracy and technical reporting are important part of the course.AssesementExamination, Lab work | ResponseProblem-solving is exercised in coursework, lab and exam.AssesementExamination, Individual coursework, Lab work | ResponseStudents are encouraged to take part in in-lecture discussions with their peers.AssesementNot Assessed | ResponseStudents are asked to work in teams and pairs in all classes. Communication skills are developed by this means, as well as through frequent whole-class discussion.AssesementNot Assessed | ResponseThe students are required to work in teams, so teamwork is reinforced through practice. Time management is reinforced by the requirement a rough plan by the second week, and by the requirement of a journal. Communication skills are reinforced by the requirement of a group presentation and a final report in the journal.AssesementLab work | ResponseWriting reports (two coursework discussion reports) and an essay as the final examination.AssesementExamination, Individual coursework | ResponseMainly by the problem-solving nature of the lab exercises and some parts of exam questions.AssesementExamination, Lab work | ResponseThis course develops general transferable skills through the advanced multi-disciplinarily nature of topics studied. The development of problem-solving skills is explained in Section 2.1.3. Communication skills are developed through high participation in class, with creative and critical thinking encouraged in all teaching sessions. Technical writing is also developed in written report assignments.AssesementExamination, Individual coursework | ResponseWritten reports are part of the coursework.AssesementIndividual coursework | 2.3.2 Development of general transferable skills ⓘ View All Criteria | |||||||||||
3.1.1 Deploy systems to meet business goals ⓘ View All Criteria | Responsestudents work on a team project where they create, scope, design, and implement a  substantial, dynamic, data-dependent web-based application of their choice. They decide on the application’s functionality and work towards implementing their goals as a team.  The project is marked via a mixture of assessed reports and presentations.ÂAssesementWritten reports and group presentations | ResponseAll the practical work in labs and coursework are goal driven. The goals are defined in the lab specification and the coursework criteria. In the labs, each week, the students are given a business problem that requires them to apply appropriate problem-solving skills and then to code their solution. Examples include creating encryption and decryption algorithms, design and writing a sudoku problem solving application, word search puzzles, and later in the course explore more advanced goals such as writing applications with animation, object movement and collision detection.AssesementThe coursework consists of the student having to design and write a text based spell checker application that detects incorrectly spelt words and also makes recommendations of the correct spelling for that word. The second assessment consists of the student needing to problem solve and write a retro game (such as snake). | ResponseAll the practical work in workshops, labs and coursework is goal driven. The goals are defined using formal specifications, natural language and UML diagrammes and they are checked using automated testing and acceptance testing.Assesementformative assessment in labs, workshops and coursework; summative assessment in coursework and exam | ResponseBusiness goals come in the form of small and large scale changes to the underlying software system. Groups are assigned industrial mentors who explain how business requirements work in practiceAssesementExamination, Group coursework | ResponseThe weekly requirements simulate the goals set by the customer which involve deploying and running an enterprise Web application.AssesementGroup coursework | ResponseNot applicable.AssesementNot Assessed | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | 3.1.1 Deploy systems to meet business goals ⓘ View All Criteria | ||||||||||||||||||||||||||||||||
3.1.2 Methods, techniques and tools for information modelling, management and security ⓘ View All Criteria | ResponseEnquiry based learning of simple relational database and web application design; just enough to allow the construction of the project.AssesementGroup presentation | ResponseThe units teaches the mathematical underpinnings for some of that modelling, for example in the form of probability theory and logic.AssesementExamination, Individual coursework | ResponseA substantial part of the course is about modelling data to extract information from it. Model techniques include probabilistic models of data, Bayesian reasoning, and rudimentary machine learning models, such as linear models, polynomial models, and Bayesian models.AssesementExamination, Lab work | ResponseStudents are taught the security risks of programming including those about using online resources for debugging purposes which involve using bad practices, and adding bugs to the codebase inadvertently.AssesementExamination | Responsestudents have to model the system they are working onAssesementExamination, Individual coursework, Group coursework | ResponseStudents are taught the security and privacy risks of enterprise Web applications in general, and those principles applicable to the Web framework in use, ie Spring.AssesementExamination, Group coursework | ResponseTaught and discussed in class.AssesementIndividual coursework, Lab work | ResponseLogic-based modelling is central to this course.AssesementExamination, Individual coursework | ResponseThis course's main topic is machine learning, which contribute the major methods/tools in information modelling.AssesementExamination, Lab work | ResponseLecturesAssesementExamination | ResponseInformation modelling for natural language data is considered, including various statistical, machine learning and knowledge-based approaches.AssesementExamination, Individual coursework | 3.1.2 Methods, techniques and tools for information modelling, management and security ⓘ View All Criteria | ||||||||||||||||||||||||||||
3.1.3 Knowledge of systems architecture ⓘ View All Criteria | ResponseBasic understanding of web-stack and database architecture.AssesementGroup presentation | ResponseDetailed exploration of low-level systems architectureAssesementExamination, Lab work | ResponseMany fundamental concepts of architecture are discussed in this course.AssesementExamination, Individual coursework | ResponseThe core topic of this course is the architecture of operating systems.AssesementExamination, Individual coursework | ResponseIn the final coursework students are required to design and implement a game which must meet minimum business requirements, for example; the use and manipulation of images and shapes, movement of objects, a simple form of collision detection, various user inputs such as the ability to pause/resume the application as well as other inputs such as codes to make the game easier or more difficult (as well as other aspects you would expect to find in a retro style game). All these components need to be modelled and structured in a fashion that allows the correct representation of systems and the structures.AssesementFormative and summative assessment for coursework. | ResponseArchitecture of modern software systems using gitlab, jenkins, JUnit, client server architecture etcAssesementExamination, Individual coursework, Group coursework | ResponseThrough coursework students build a chess video game and a system that simulates maze solving. While these are rudimentary systems, the architecture of the systems are indicative of architectural choices in simulation and games.ÂAssesementCoursework | ResponseThe course unit requires a good understanding of the software stack as it deals with programming languages and compilersAssesementLab work | ResponseThe performance of algorithms and data structures is placed within the broader context of systems architecture e.g. caching effects.AssesementNot Assessed | ResponseTaught and discussed in class.AssesementIndividual coursework, Lab work | ResponseStudents learn algorithms behind state-of-the-art reasoning methods.AssesementExamination, Individual coursework | ResponseFocus on the microarchitecture of processors and develop a fundamental understanding of the essential building blocks of processor designs.AssesementExamination, Lab work | ResponseDeep low-level programming of systems.AssesementLab work | ResponseThis is the main focus of the course.AssesementExamination, Lab work | ResponseThis is fundamental to this course and is exercised throughout.AssesementExamination, Individual coursework, Lab work | ResponseExamples and case studiesAssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseInherent in the nature of the material covered. The course unit is part of the School's Architecture Theme.AssesementExamination, Lab work | ResponseStudents are introduced to Hadoop and related architectures and technologies for distributed computing.AssesementNot Assessed | 3.1.3 Knowledge of systems architecture ⓘ View All Criteria | ||||||||||||||||||||
3.1.4 Knowledge and understanding of mathematical and/or statistical principles ⓘ View All Criteria | ResponseThe course consists of teaching such mathematical principles.AssesementExamination, Individual coursework | ResponseThe course exposes students to mathematical treatments of basic topics such as computability and complexity. It also gives experience in defining and using formal systems and notations (e.g. grammars), and reasoning about such systems.AssesementExamination, Individual coursework | ResponseBasic Boolean logic and binary arithmetic and the application to the design of digital systems.AssesementExamination, Lab work | ResponseThe course covers statistical principles, including quantification of uncertainty and hypothesis testing. Probabilistic reasoning including Bayesian reasoning is covered.AssesementExamination, Lab work | ResponseTheoretical analysis, algebra and statistics is fundamental to the course.AssesementExamination, Lab work | ResponseSome mathematical formalism in relation to languages and compilers is introduced to illustrate key conceptsAssesementExamination | ResponseThe course relies on considerable mathematical foundations, for performance analysis and correctness arguments.AssesementExamination, Individual coursework | ResponseNot applicable.AssesementNot Assessed | ResponseEvaluation of some projects may require robust statistical analysis. Some projects require significant amounts of applied maths and logic.AssesementIndividual coursework | ResponseThe course teaches mathematical aspects behind logical methods: syntax and semantics of propositional logic, QBF, logic of finite domains and LTL; formal reasoning methods and methods for formal verification.AssesementExamination, Individual coursework | ResponseMaterial and exercises on automated diagnosis and vehicle odeometry develop knowledge and understanding of probabilitistic reasoning. Material and exercises on natural language inference and planning develop knowledge and understanding of the application of logic in reasoning.AssesementExamination, Lab work | ResponseThis course requires applying mathematical and statistical principles in understanding and design of machine learning models.AssesementExamination, Lab work | ResponseThe course investigates a range of logical frameworks and their properties.AssesementExamination, Individual coursework | ResponseTheoretical analysis and statistics is fundamental to the course.AssesementExamination, Lab work | ResponseMathematics underpins much of synthetic computer graphics and image processing. Statistical methods are used for creating classifiers that make use of image data.AssesementExamination, Lab work | ResponseProblem solvingAssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementNot Assessed | ResponseGame theory is a mathematical subject. Students must understand it and put it into practice.AssesementExamination, Lab work | ResponseThe machine learning component requires the consideration of the underlying maths models.AssesementExamination, Individual coursework | ResponseThe course develops knowledge and understanding of mathematical systems and their solution through computational modelling. This includes aspects of numerical precision and accuracy on digital hardware, the use of numerical algorithms to approximate solutions to computationally hard problems, and exploration of these concepts under a range of engineering and science applications.AssesementExamination, Individual coursework | 3.1.4 Knowledge and understanding of mathematical and/or statistical principles ⓘ View All Criteria | |||||||||||||||||||
3.2.1 Specify, deploy, verify and maintain information systems ⓘ View All Criteria | Responsestudents create, scope, design, and implement a  substantial, dynamic, data-dependent web-based application of their choice.ÂAssesementWritten reports and presentations | ResponseThe unit provides tools for these processes, for example in the form of logic and probability theory.AssesementExamination, Individual coursework | ResponseIn the first coursework, the students are required to implement various modules to retrieve data (such as text documents), store that data in some structured fashion and then process that data to validate erroneous data.Assesementformative and summative assessment for coursework. | ResponseBy using a continuous integration server, students are involved in deploying and testing software and receive feedback about whether the specifications are met.AssesementCoursework | ResponseRequirements are underspecified and require that tests are written to understand bugsAssesementExamination, Individual coursework, Group coursework | ResponsePractical processes for testing and deploying an enterprise Web application involve following test driven principles whereby tests are often written before production code.AssesementExamination, Group coursework | ResponseAddressed as design, implementation, testing, and evaluation of computer programmed solutions in the lab.AssesementLab work | ResponseMethods for specification, verification and reasoning are at the core of the course.AssesementExamination, Individual coursework | ResponseUser stories are covered as a means of gathering and documenting system requirements in a lightweight way. Agile approaches to software testing are covered in some depth, being the focus of a half of the course unit. Evolutionary design techniques are introduced and practiced by students, with an emphasis on producing code that is easy to change in the long term (as requirements change).AssesementExamination | 3.2.1 Specify, deploy, verify and maintain information systems ⓘ View All Criteria | ||||||||||||||||||||||||||||||
3.2.2 Defining problems, managing design process and evaluating outcomes ⓘ View All Criteria | ResponseThe group gain experience of this, though more by way of setting the scene for proper understanding given in the 2nd year software engineering course, through their web application team work.AssesementPresentation | ResponseAs stated earlier, the course gives background in the experimental evaluation of outcomes. The course material embodies the "Data Science process" which has some overlaps with the process described above, but specific to the use of data to address a problem. It is: Define the problem, get data to address the problem, clean the data, visualize the data, build a model to address the problem, evaluate the validity of the assumptions being used, evaluate the outcomes of the model quantitatively, and report on the work. No time is spend on customer or user needs, not on cost drivers.AssesementExamination, Lab work | ResponseStudents design and implement a strategy for analysing the performance of various caching algorithms.AssesementIndividual coursework | ResponseCustomer and user needs come from a real live open source codebaseAssesementExamination, Group coursework | ResponseUnderstanding customer needs is crucial to develop an enterprise Web application. We teach specification by example as a way of establishing a dialogue between the software engineering team (students) and customers (academics).AssesementExamination, Group coursework | ResponseThe course provides mechanisms to evaluate fitness for purpose through theoretical and practical tools for performance analysis.AssesementLab work | ResponseAddressed as design, implementation, testing, and evaluation of computer programmed solutions in the lab.AssesementLab work | ResponseThe project requires students to define the problem they are tackling, attempt to solve it and evaluate the outcome.AssesementIndividual coursework | ResponseThese are addressed in the letcures and practical work.AssesementExamination, Individual coursework, Lab work | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Individual coursework, Test | ResponseMany students do a lot of research in order to design the agent used in the first project. There are many ways to create an agent to play two-player games, and also a literature on the particular game. The students are highly motivated to create the best agent which beats the other agents, and succeed by finding appropriate literature.AssesementLab work | ResponseIn this course students define problems, manage design processes and evaluate outcomes in the written assignments exploring accuracy and precision and solution of differential equations. The encourage students to consider not just the ‘correct’ answer, but to define and justify a solution which fulfils all problem requirements.AssesementIndividual coursework | 3.2.2 Defining problems, managing design process and evaluating outcomes ⓘ View All Criteria | |||||||||||||||||||||||||||
3.2.3 System Design ⓘ View All Criteria | ResponseBasic design of web-based system driven by GUI and Database designAssesementReports and group presentations | ResponseStudents learn to design systems using UML class diagrams that include object oriented features. During workshops students model parts of the tree of life to design systems that use inheritance and interfaces. In another practical workshop they reverse engineer the hierarchical components of a JavaFX application to extract its design from a snapshot.Assesementformative assessment in labs, workshops and coursework; summative assessment in coursework and exam | ResponseDesign of digital systems and system architecture.AssesementExamination, Lab work | ResponseDesign of computer systems at the level of their hardware architectureAssesementExamination | ResponseStudents learn to design systems using flowcharts, pseudo code and the three problem solving constructs. They are also exposed to UML class diagrams when coving the final stage of the course with an introduction to Object Oriented Programming.Assesementformative assessment in labs, workshops and coursework; summative assessment in coursework and exam. | ResponseStudents design and implement a database systemAssesementLab work | Responsebusiness needs are to deploy quality software as smoothly as possibleAssesementExamination, Individual coursework, Group coursework | ResponseThe weekly requirements simulate the design goals set by the customer which involve deploying and running an enterprise Web application. This includes creating user interface mock-ups that are aligned with requirements and follow user interface design guidelines.AssesementExamination, Individual coursework | ResponseAddressed in the form of the design of a solution to an application that is relevant in a business context. Part of summative assessment.AssesementLab work | ResponseThe students are encouraged to design and implement a reasoning system based on algorithms presented in the lectures.AssesementNot Assessed | ResponseDesign if digital systems using HDLs (Verilog) from ISA through to implementation on target hardware.AssesementExamination, Lab work | ResponseThe course unit is mostly ablout embedded systems.AssesementIndividual coursework | ResponseThe course covers system design and has a great emphasis on co-designAssesementExamination | ResponseThrough teaching a design methodologyAssesementExamination | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Test | ResponseUser stories are covered as a lightweight means to gather and document the user requirements, and the value that is expected to result from the new or modified software. Specification-by-example/acceptance test driven development is taught as a means of ensuring that the final system delivers the functionality described by the user stories, with a minimum of additional (unwanted) functionality.AssesementExamination | ResponseDesign of parallel systems.AssesementExamination, Lab work | 3.2.3 System Design ⓘ View All Criteria | ||||||||||||||||||||||
4.1.1 Knowledge and understanding of scientific and engineering principles ⓘ View All Criteria | ResponseThe course teaches relevant principles of mathematics that are the basis for such principles.AssesementExamination, Individual coursework | ResponseTop-down design and simulation of digital systems via the use of the Verilog HDL.AssesementExamination, Lab work | ResponseThe understanding of uncertainty in experimental measurements and sampled data, how uncertainty is quantified, how it propagated through computations, and how it affects the comparative evaluation between systems is covered. How to make statistically sound comparisons is covered.AssesementExamination, Lab work | ResponseMany computer engineering principles apply to this course.AssesementExamination, Individual coursework | ResponseRefactoring of softwareAssesementExamination, Group coursework | ResponseScientific and Engineering principles are deployed throughout the course unit to solve practical problems.AssesementExamination, Lab work | ResponseScientific and engineering principles are deployed throughout the course unit.AssesementLab work | ResponseAddressed as design, implementation, testing, and evaluation of computer programmed solutions in the lab.AssesementIndividual coursework, Lab work | ResponseSuch knowledge is required in a small number of projectsAssesementIndividual coursework | ResponseThis is addressed by exposing students to different reasoning algorithms.AssesementNot Assessed | ResponseExtensive practical use of commercial CAD tools supported by lectures.AssesementExamination, Lab work | ResponseAddressed in the practical work.AssesementLab work | ResponseThis course is about knowledge and understanding of machine learning models, which belongs to scientific and engineering principles.AssesementExamination, Lab work | ResponseThis course involves the design of experiments to explore the properties of existing systems.AssesementLab work | ResponseComputer architecture feeds on computer engineering so many of its principles still apply here.AssesementExamination, Lab work | ResponseScientific/engineering principles underpin the basic image processing techniques.AssesementExamination, Lab work | ResponseThe students are encouraged to evaluate their solutions in order to improve them.AssesementLab work | ResponseWe consider specific scientific principles in computational linguistics (e.g. morphology) as a basis for creation of natural language processing systems and solving problems.AssesementExamination | ResponseInherent in the lab work.AssesementExamination, Lab work | ResponseThe course develops knowledge and understanding of scientific and engineering principles for the solution of practical problems: e.g. by developing numerically stable and accurate algorithms, and through assessing the impact of computational modelling choices on mathematical models. A wide variety of examples are provided to ground theory in real-world problems.AssesementExamination, Individual coursework | 4.1.1 Knowledge and understanding of scientific and engineering principles ⓘ View All Criteria | |||||||||||||||||||
4.1.2 Knowledge and understanding of mathematical principles ⓘ View All Criteria | ResponseThe course consists of teaching such mathematical principles.AssesementExamination, Individual coursework | ResponseThe course exposes students to mathematical treatments of basic topics such as computability and complexity. It also gives experience in defining and using formal systems and notations (e.g. grammars), and reasoning about such systemAssesementExamination, Individual coursework | ResponseBoolean algebra and binary arithmeticAssesementExamination, Lab work | ResponseThe course covers statistical principles, including quantification of uncertainty and hypothesis testing. Probabilistic reasoning including Bayesian reasoning is covered.AssesementExamination, Lab work | ResponseBoolean algebra is an important part of the course.AssesementExamination, Individual coursework | ResponseThere is some light use of mathematical notation in relation to programming, compilation, concurrencyAssesementExamination | ResponseMathematical principles are core to the course and are applied directly to the design of solutions.AssesementExamination, Individual coursework, Lab work | ResponseNot applicable.AssesementNot Assessed | ResponseSuch knowledge is required in a small number of projectsAssesementIndividual coursework | ResponseThe course is based on mathematical logic and teaches fundamental mathematical principles of formal reasoning and correctness.AssesementExamination, Individual coursework | ResponseMaterial and exercises on automated diagnosis and vehicle odeometry develop knowledge and understanding of probabilitistic reasoning. Material and exercises on natural language inference and planning develop knowledge and understanding of the application of logic in reasoning.AssesementExamination, Lab work | ResponseThis courses requires understanding of the mathematical principles that support the design and derivation of machine learning algorithms.AssesementExamination | ResponseThis course addresses a range of issues from mathematical logic, and students are expected to understand the trade-offs between expressive power and computational complexity that these involve.AssesementExamination, Individual coursework, Lab work | ResponseMathematics and statistics are fundamental to the course.AssesementExamination, Lab work | ResponseMaths/statistics are used throughout the course.AssesementExamination, Lab work | ResponseThrough examples and specific problemsAssesementExamination | ResponseThe students must understand the mathematical principles of game theory and also a bit of machine learning prediction to succeed with the projects.AssesementLab work | ResponseThe course develops knowledge and understanding of a range of mathematical principles commonly employed in computational modelling. For example, the numerical solution of systems described by differential equations, optimisation algorithms, and the use of bio-inspired systems such as neural networks. Application of these methods on computers is explored to understand and evaluate the interaction and optimisation of techniques and underlying hardware.AssesementExamination, Individual coursework | 4.1.2 Knowledge and understanding of mathematical principles ⓘ View All Criteria | |||||||||||||||||||||
4.1.3 Knowledge and understanding of computational modelling ⓘ View All Criteria | ResponseThe group gain experience of this, though more by way of setting the scene for proper understanding given in the 2nd year software engineering course, through their web application team work.AssesementNot Assessed | ResponseThe course teaches in particular probability theory which is relevant to such modelling.AssesementExamination, Individual coursework | ResponseComputational modelling of data is covered. The statistical bootstrap and simulation which both use computational modelling to address statistical questions are covered.AssesementExamination, Lab work | ResponseModelling via data structures and algorithms is the central concern of the course.AssesementExamination, Individual coursework, Lab work | ResponseAddressed as design, implementation, testing, and evaluation of computer programmed solutions in the lab.AssesementLab work | ResponseSuch knowledge is required in a small number of projectsAssesementIndividual coursework | ResponseLogic-based modelling is central to this course.AssesementExamination, Individual coursework | ResponseThis course's focus in machine learning models, which is a main group of computational modelling techniques.AssesementExamination, Lab work | ResponseSystem modelling is covered in the labsAssesementLab work | ResponseLectures and labs address simple modelling of the light/matter effects.AssesementExamination, Lab work | ResponsePracticals rely heavily on logic simulation.AssesementIndividual coursework, Lab work | ResponseComputational game theory, which is what this course is about, is intrinsically about computational modelling.AssesementExamination, Lab work | ResponseThe whole units covers a variety of computational modelling methods in robotics and AIAssesementExamination, Individual coursework | ResponseLanguage modelling (statistical, machine learning) are considered and discussed.AssesementExamination | ResponseThe course develops knowledge and understanding of scientific and engineering principles for the solution of practical problems: e.g. by developing numerically stable and accurate algorithms, and through assessing the impact of computational modelling choices on mathematical models. A wide variety of examples are provided to ground theory in real-world problems.AssesementExamination, Individual coursework | ResponseWe introduce different computational models for information retrieval, including language modelling.AssesementIndividual coursework | 4.1.3 Knowledge and understanding of computational modelling ⓘ View All Criteria | |||||||||||||||||||||||
4.2.1 Specify, deploy, verify and maintain computer-based systems ⓘ View All Criteria | ResponseThe course teaches logic and probability theory, both of which are ingredients for these processes.AssesementExamination, Individual coursework | ResponseStudents deploy changes to a live systemAssesementExamination, Group coursework | ResponseThe course is based on the use of theoretical and practical processes for the design and implementation of computer-based systems.AssesementLab work | ResponseAddressed as design, implementation, testing, and evaluation of engineering solutions in the lab.AssesementLab work | ResponseSpecification and verification of systems are a large part of this course.AssesementExamination, Individual coursework | ResponseWork through the whole design cycle, from specification (ISA) through to implementation in hardware. Implementation using commercially used design tools and HDLs (Verilog).AssesementExamination, Lab work | ResponseStudents spend a substantial time on debugging systems.AssesementLab work | ResponseThe course covers a range of agile practices designed to help us specify, design, implement and verify software systems in a lightweight, efficient manner. The management of technical uncertainty is covered through several routes: techniques for choosing which features to implement in what order are taught, based on risk and the need to acquire information that will help to reduce risk; and the use of learning spikes to reduce estimation and technical uncertainty.AssesementExamination | 4.2.1 Specify, deploy, verify and maintain computer-based systems ⓘ View All Criteria | |||||||||||||||||||||||||||||||
4.2.2 Defining problems, managing design process and evaluating outcomes ⓘ View All Criteria | ResponseThe group gain experience of this, though more by way of setting the scene for proper understanding given in the 2nd year software engineering course, through their web application team work.AssesementPresentation | ResponseAs stated earlier, the course gives background in the experimental evaluation of outcomes. The course material embodies the "Data Science process" which has some overlaps with the process described above, but specific to the use of data to address a problem. It is: Define the problem, get data to address the problem, clean the data, visualize the data, build a model to address the problem, evaluate the validity of the assumptions being used, evaluate the outcomes of the model quantitatively, and report on the work. No time is spend on customer or user needs, not on cost drivers.AssesementExamination, Lab work | ResponseStudents design and implement a strategy for analysing the performance of various caching algorithms.AssesementIndividual coursework | ResponseCustomer and user needs come from a real live open source codebaseAssesementExamination, Group coursework | ResponseUnderstanding customer needs is crucial to develop an enterprise Web application. We teach specification by example as a way of establishing a dialogue between the software engineering team (students) and customers (academics).AssesementExamination, Group coursework | ResponseThe course provides mechanisms to evaluate fitness for purpose through theoretical and practical tools for performance analysis.AssesementLab work | ResponseAddressed as design, implementation, testing, and evaluation of computer programmed solutions in the lab.AssesementLab work | ResponseThe project requires students to define the problem they are tackling, attempt to solve it and evaluate the outcome.AssesementIndividual coursework | ResponseThese are addressed in the letcures and practical work.AssesementExamination, Individual coursework, Lab work | ResponseThese are addressed in lecture notes, slides, and videoed lectures.AssesementExamination, Individual coursework, Test | ResponseMany students do a lot of research in order to design the agent used in the first project. There are many ways to create an agent to play two-player games, and also a literature on the particular game. The students are highly motivated to create the best agent which beats the other agents, and succeed by finding appropriate literature.AssesementLab work | ResponseIn this course students define problems, manage design processes and evaluate outcomes in the written assignments exploring accuracy and precision and solution of differential equations. The encourage students to consider not just the ‘correct’ answer, but to define and justify a solution which fulfils all problem requirements.AssesementIndividual coursework | 4.2.2 Defining problems, managing design process and evaluating outcomes ⓘ View All Criteria | |||||||||||||||||||||||||||
4.2.3 Principles of appropriate supporting engineering and scientific disciplines ⓘ View All Criteria | ResponseTop-down design and simulation of digital systems via Verilog. Importance of testing.AssesementExamination, Lab work | ResponseDeployed changes have to pass tests and meet minimum criteria specifiedAssesementExamination, Individual coursework, Group coursework | ResponseAddressed as design, implementation, testing, and evaluation of solutions to computer programmed solutions in the lab.AssesementLab work | ResponseDraws on prior course units that cover the basic engineering of computer hardware and architecture.AssesementExamination | ResponseIn every part the course applies the principles of appropriate supporting engineering and scientific disciplines: machine learning and statistics, mathematics and theoretical computer science, and control theory, applied mathematics.AssesementExamination, Individual coursework | 4.2.3 Principles of appropriate supporting engineering and scientific disciplines ⓘ View All Criteria | ||||||||||||||||||||||||||||||||||
5.1 Additional criteria for integrated Masters ⓘ View All Criteria | 5.1 Additional criteria for integrated Masters ⓘ View All Criteria |
B.8 Graduation
CS | CS with IE | MENG CS | MENG CS IE | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Entry routes | 2017/18 | 2016/17 | 2016/17 | 2015/16 | 2016/17 | 2015/16 | 2015/16 | 2014/15 | |||
Initial entry | 53 | 49 | 42 | 55 | 10 | 1 | 4 | 9 | |||
Transfer into programme | 33 | 47 | 20 | 19 | 4 | 3 | 0 | 1 | |||
Fail during programme | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
Withdrawal during programme | 3 | 8 | 2 | 3 | 1 | 1 | 0 | 0 | |||
Other (tranf within School/repeat) | 3 | 2 | 1 | 2 | 1 | 1 | 0 | 0 | |||
Total sitting finals | 80 | 86 | 59 | 69 | 12 | 3 | 4 | 8 | |||
Awards | 2019/20 | 2018/19 | 2019/20 | 2018/19 | 2019/20 | 2018/19 | 2019/20 | 2018/19 | |||
Awarded I | 47 | 38 | 49 | 52 | 9 | 2 | 3 | 6 | |||
Awarded IIi | 15 | 33 | 9 | 14 | 3 | 1 | 1 | 2 | |||
Awarded IIii | 10 | 5 | 0 | 1 | 0 | 0 | 0 | 0 | |||
Awarded III | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | |||
Awarded Pass | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
DipHE (exit) | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | |||
Fail | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
Other (Cert HE) | 4 | 5 | 1 | 2 | 0 | 0 | 0 | 0 |