About
Teaching Fellow @ Degree Apprenticeship in Software Engineering
Teaching Fellow @ Degree Apprenticeship in Software Engineering
Computational thinking refers to a collection of problem-solving techniques which software developers use to understand problems, break them down, and express their solutions in a step-by-step manner suited to programming on a computer. Whilst crucial for computer scientists and engineers, these problem-solving techniques are general: computational thinking is a fundamental skill, and its techniques are useful for general everyday problem solving. This module will explore the tools and techniques for reasoning about problems in a computational thinking way, using them to solve a wide variety of riddles, puzzles, and more practical problems.
Ever wondered how an aeroplane is tested? How do software testers and developers know they can trust the software they have produced to not fail mid-flight? Software Testing is the process of systematically experimenting with an object (the SUT = System Under Test) in order to establish its quality, where quality means the degree of accordance to the intention or specification. This module will cover various test types and methods that learners will be able to apply to a variety of scenarios; e.g. Boundary value analysis, path coverage, decision tables, and more. The methods and techniques covered also appear in the International Software Testing Qualifications Board (ISTQB) tester certification which is widely recognised.
In today¿s interconnected world, technology and computer science play a pivotal role in shaping our society. This module explores the critical importance of understanding the professional, societal, ethical, and legal issues associated with these fields. From professional responsibility and legal frameworks to understanding how technology influences society improving quality of life and addressing global challenges; students will learn to appreciate the impact of technology and the ethical dilemmas arising from it.
This module explores the main professional, societal and ethical issues associated with software development and computer science.
This module considers the work-based portfolios submitted across all modules in Year 1. The work-based portfolios enable students to demonstrate the application of knowledge gained from the co-requisite modules to their workplace. Although this module carries no credit, the pass/fail assessment is based on the student¿s achievements in the work-based portfolios. The module must be passed to progress to the next year of study.
This module introduces students to theoretical tools and techniques important in software development. The first half of the module is concerned with automata in the form of labelled transition systems and will enable the student to understand their role in modelling computing systems. The second half of the module is concerned with algorithms and data structures and will enable the student to understand how the selection of different algorithms and data structures affects the performance and efficiency of a program.
Algorithms and automata form the theoretical foundation of computer science, providing concepts and principles that underpin many areas of computing from software development to artificial intelligence. Automata can be used to model the behaviour of systems, assisting with understanding and verifying the correctness of them. Algorithms are essential for breaking down problems into manageable steps. This module will enable the student to understand how the selection of different algorithms and data structures can impact the performance and efficiency of a program.
This module forms the second part of the capstone project for the BSc in Applied Software Engineering project (together with CSF301). It consists of the implementation of a software system; a substantial written dissertation; and a video demonstration of the system.
This module is the capstone project for the BSc in Applied Software Engineering. It consists of the implementation of a software system with the following submissions: project proposal, presentation, progress report, a substantial written dissertation and a video demonstration of the system. Software projects have long had a reputation for cost and time overruns - but they need not, and there are well-established, and emerging, techniques and processes to manage them well and effectively. Projects have many significant legal, social, ethical and professional consequences that a practitioner needs to be aware of and sensitive to. As well as the major project development, this module develops the fundamental skills of successfully managing building complex software systems, and the implications, including on wider society, of doing so. It will also prepare students for work on any project by equipping them with the skills to successfully plan them, and to commence that planning process as well as evaluating them at the project¿s completion.
This module forms the first part of the capstone project for the BSc in Applied Software Engineering (together with CSF300). It consists of the project proposal, presentation, progress report and development of a software system.
Software projects have long had a reputation for cost and time overruns - but they need not, and there are well-established, and emerging, techniques and processes to manage them well and effectively: for example, agile methodologies like Scrum which are becoming a de-facto standard in the industry. Also, many projects have significant legal, social, ethical and professional consequences that a practitioner needs to be aware of and sensitive to. This module develops the fundamental skills of successfully building complex software systems, and the implications, including on wider society, of doing so. It will also prepare students for work on any project by equipping them with the skills to successfully plan them, and to commence that planning process.