Skip to main content

/EDUCATION

Education

I study Computer Science with Artificial Intelligence on the integrated MEng programme at the University of Southampton. I am currently preparing to enter my 4th year and expect to graduate with a first class honours (currently averaging ~80%).

First Year, 2023/24 Year average 84.4% Award: Netcraft Prize — top 10 Computer Science students

Semester 1

An introduction to programming using Java, covering OOP principles and good programming practices.

Object-Oriented ProgrammingTesting and DebuggingVersion ControlJavaGitIntelliJ

An introduction to computer hardware and low-level programming, with assembly labs on a Raspberry Pi.

Computer ArchitectureLow-level ProgrammingOperating SystemsAssemblyRaspberry PiUnix

Research, academic writing, and presenting technical information through a literature review and group presentation.

Professional PracticesAcademic WritingResearch SkillsTeXZotero

Semester 2

Algorithm design and complexity analysis, with a focus on choosing and implementing suitable data structures.

Problem SolvingTime Complexity AnalysisData StructuresTheory

Relational database design, SQL, and practical data management in a Unix environment.

Database DesignOperating SystemsSQLSQLiteUnixDocker

Event-driven Java applications, testing, and software design, with a JavaFX game project and an introduction to C.

Object-Oriented ProgrammingTesting and DebuggingVersion ControlGUI ProgrammingUnit TestingSoftware Design PatternsJavaJavaFXMavenJUnitGitC

Requirements analysis, UML, and formal modelling with Event-B, applied to a dental appointment system.

Software ModellingRequirements GatheringFormal MethodsUMLEvent-BLaTeX

Second Year, 2024/25 Year average 79.6% Award: Netcraft Prize — top 10 Computer Science students

Semester 1

AI problem-solving through search, planning, constraint satisfaction, and probabilistic reasoning.

Search AlgorithmsProblem FormulationConstraint SatisfactionProbabilistic ReasoningTheory

Functional programming in Haskell, including higher-order functions, lambda calculus, and property-based testing.

Functional ProgrammingProperty-Based TestingParsingPerformance ProfilingHaskellGHCHUnitQuickCheck

Formal languages, automata, computability, and the time and space complexity of computational problems.

Formal ReasoningAutomata TheoryComplexity AnalysisProof TechniquesTheory

User-centred design through research, prototyping, and evaluation, applied to household energy management.

User ResearchThematic AnalysisPrototypingUsability EvaluationCollaborative DesignFigma

Semester 2

Computer networks and distributed coordination, applied to a replicated file-storage system in Java.

Network ProgrammingConcurrencyDistributed CoordinationProtocol DesignJavaTCPSockets

Building an advertising analytics dashboard in a team, from requirements and sprint planning to testing and delivery.

Agile DevelopmentTeam CollaborationSoftware DesignData VisualisationSoftware TestingJavaJavaFXMavenJUnitMockitoGit

Language syntax, type systems, and semantics, with a team project building a CSV query language and interpreter.

Language DesignLexing and ParsingInterpreter DevelopmentType SystemsHaskellAlexHappyStack

Security principles, attacker behaviour, and defensive controls, with a structured analysis of a multi-stage attack scenario.

Threat AnalysisSecurity ReasoningAttack ModellingTechnical WritingCyber Kill Chain

Third Year, 2025/26 Year average 81.3%

Full year

An independent comparison of classical and deep learning segmentation for cell microscopy, with a modular framework and desktop app.

Research DesignImage SegmentationDeep LearningDataset AnnotationExperimental EvaluationSoftware ArchitecturePythonPyTorchOpenCVNumPyPyQt5

Semester 1

Image processing, feature extraction, and recognition, with coursework on hybrid images and scene classification.

Image ProcessingFeature EngineeringImage ClassificationNumerical ProgrammingModel EvaluationPythonNumPyOpenCVscikit-learn

Machine learning models and experimental evaluation, with a study of ensemble classifiers on categorical data.

Machine LearningEnsemble MethodsExperimental DesignStatistical EvaluationClassifier ImplementationPythonNumPyscikit-learnSciPyaeon

Web architecture, HTTP, and hypertext, with coursework exploring, critiquing, and extending a university REST API.

Web ArchitectureAPI DesignHTTP AnalysisTechnical DocumentationHTMLCSSJavaScriptFetch APIJSONXML

Semester 2

Database internals, query optimisation, and transaction processing, with a Java query-plan optimiser.

Query OptimisationRelational AlgebraCost EstimationTransaction ProcessingJavaSQLSJDB

Linear and nonlinear optimisation, with a group study of electricity dispatch, resource limits, and emissions constraints.

Mathematical ModellingLinear ProgrammingConvex OptimisationSensitivity AnalysisJuliaJuMPHiGHSGurobiJupyter