Petrovska, O., Clift, L., Moller, F., & Pearsall, R. (2024). Incorporating Generative AI into Software Development Education. In CEP '24: Proceedings of 8th Conference on Computing Education PracticeAssociation for Computing Machinery, New York, NY, United States.
Berger, U. & Petrovska, O.(2018). Optimized Program Extraction for Induction and Coinduction. Sailing Routes in the World of Computation (pp. 70-80). Springer International Publishing
Petrovska, O., Berger, U., Petrovska, O., & Tsuiki, H. (2020). Prawf: An Interactive Proof System for Program Extraction. In Lecture Notes in Computer Science (pp. 137-148). Springer International Publishing.
Petrovska, O., Clift, L., & Moller, F. (2023). Generative AI in Software Development Education: Insights from a Degree Apprenticeship Programme. In Troy Astarte, Faron Moller, Keith Quille, Seán Russell (Ed.),UKICER '23: Proceedings of the 2023 Conference on United Kingdom & Ireland Computing EducationACM.
Berger, U. & Petrovska, O.(2018). Optimized Program Extraction for Induction and Coinduction. Sailing Routes in the World of Computation (pp. 70-80). Springer International Publishing
Petrovska, O., Clift, L., Moller, F., & Pearsall, R. (2024). Incorporating Generative AI into Software Development Education. In CEP '24: Proceedings of 8th Conference on Computing Education PracticeAssociation for Computing Machinery, New York, NY, United States.
Petrovska, O., Clift, L., & Moller, F. (2023). Generative AI in Software Development Education: Insights from a Degree Apprenticeship Programme. In Troy Astarte, Faron Moller, Keith Quille, Seán Russell (Ed.),UKICER '23: Proceedings of the 2023 Conference on United Kingdom & Ireland Computing EducationACM.
Petrovska, O., Berger, U., Petrovska, O., & Tsuiki, H. (2020). Prawf: An Interactive Proof System for Program Extraction. In Lecture Notes in Computer Science (pp. 137-148). Springer International Publishing.
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.
CSF107
Professional Issues of Software Engineering
This module explores the main professional, societal and ethical issues associated with software development and computer science.
CSF206
Algorithms and Automata
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.
CSF300
Project Implementation and Dissertation
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.
CSF301
Project Specification and Development
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.
CSF302
Project Planning and Management
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.