Over my time at Durham University, I undertook a number of academic projects as part of my BSc in Software Engineering. The list below details the various modules and projects I undertook as part of this degree programme, along with links to submissions where appropriate. I have not posted these files here so that future students can cheat! The material below represents a lot of effort on my behalf, and hopefully people may find it interesting to read my take on various subjects, and reference where appropriate.
Advanced Software Engineering
Learning about different styles of Software Engineering, how to evaluate these styles, and also looking at new advances in the field.
Software Engineering Project (Dissertation)
My final year project formed my disseration, details of which can be viewed on this page
Advanced Artificial Intelligence
Module contents included Multi-Agent Systems and Automated Reasoning. You can read my assignment on Multi-Agent Systems here.
Computer Systems II
- Advanced Databases
- Distributed Systems & Networking
- AI Search
Learning about various search algorithms, including notation for selection of an appropriate algorithm given certain circumstances. Final assignment was to program 2 algorithms to solve a travelling salesperson problem. You can view my writeup here
- Digital Imaging
The basics of imaging, including learning the principles of Java3D. My report on creating a wind turbine in Java3D here
- Visualization Principles & Practice
Further work with Java3D, learning about how best to display data. My report on visualising data is available here
Programming & Reasoning
- Specification & Verification
Extension of the Formal Aspects module from Year 1, final assignment relating to automated problem solvers can be viewed here
- SEG Project
A year-long group project to design and build a piece of software to plan new wind turbine infrastructure in the UK, following a simulated real-world systems lifecycle and delivery timetable. My reflective report is available to read here
- Phoenix Project
Also undertaken in the same groups as with SEG, an additional project for a real customer, a local charity. Information also included in the reflective report.
Formal Aspects of Computer Science
Introduction to formal first-order logic
Programming and Data Structures
Introduction to programming in Java, moving on to identifying, analysing and implementing data structures
Introduction to Management
Optional module from the Economics department, giving an introduction to management styles and techniques.
Technology for the Modern World
Optional module from the Engineering department, detailing recent advances in all areas of technology, and speculative work on future advances
Introduction to databases, through data definition languages and SQL.
Basics of computer networking
- The premise of the final assignment was to demonstrate our knowledge of networking after the first term. The questions are not included in the report, but it should be fairly obvious what I’m talking about!
- Download report (PDF)
- Operating Systems
Background knowledge on OS development and underlying functionality