Teaching & supervision

Understanding through
building and investigation.

I connect computer science and engineering principles with implementation, helping students develop the knowledge, practical skills and critical judgement needed for independent work.

University of Hertfordshire

Current teaching & responsibilities.

I teach undergraduate and postgraduate computer science, supervise BSc and MSc projects, and contribute to project coordination and assessment.

Module leader & lecturer · MSc

Programming & Program Design

I lead and teach this MSc module, connecting programming concepts with software design, implementation and testing, including practical work in Kotlin.

Concepts · code · evaluation
Module leadership

Cloud Computing

Combining cloud-computing principles with practical investigation of infrastructure, virtualisation and deployed services.

Systems · infrastructure · practice
Module leader · BSc

Software Engineering Project

I lead this BSc module, supporting project planning, literature-informed software development, implementation and evaluation.

Research · development · reflection

My wider responsibilities include BSc/MSc project supervision and the coordination of final-year software engineering projects.

Teaching philosophy

Explain the principle.
Build the system.
Question the result.

My aim is to help students move from following an example to making and explaining their own decisions.

Structured explanation and active learning

I combine clear explanations with programming tasks, interactive computing tools and opportunities to put concepts into practice.

Research-informed investigation

Examples from software engineering, systems and scientific computing connect classroom principles with the design and analysis of working systems.

Feedback and critical evaluation

I use feedback to support development, encouraging students to explain their choices, assess their results and recognise the limitations of their work.

BSc & MSc projects

From a question
to an evaluated contribution.

My supervision spans software engineering, high-performance computing, machine learning and cybersecurity. I support students in connecting a clear question with an appropriate method and evidence.

  1. Question

    Define the problem and the scope of the investigation.

  2. Literature

    Use existing work to motivate and position the project.

  3. Design

    Choose a method and justify the technical decisions.

  4. Implementation

    Develop the software, model or experimental workflow.

  5. Evaluation

    Test the work and examine results and limitations.

  6. Communication

    Explain the contribution and reflect on what was learned.

Potential research-connected projects

Possible directions include scientific-software development, numerical modelling, simulation and visualisation connected to GTG Cell Studio, Pentarnion Studio and computational physiology. Potential topics and supervision arrangements are discussed individually.

Discuss a student project
Teaching experience

Across institutions.
Across levels and disciplines.

My teaching history includes lecturing and teaching-assistant roles in computing and engineering. Earlier courses are listed separately from my current Hertfordshire responsibilities.

Appointments

2023–PRESENT

University of Hertfordshire

Lecturer · Department of Computer Science
Hatfield, United Kingdom

2020–2023

Ulster University

Teaching Assistant · School of Computing
Londonderry, United Kingdom

2015–2017

Azad University of Shahr-e Rey

Lecturer · Electrical and Computer Engineering
Tehran, Iran

2014–2015

Azad University of Buin Zahra

Lecturer · Computer Engineering
Buin Zahra, Iran

2013–2014

Sharif University of Technology

Lecturer · Computer Engineering
Tehran, Iran

2012–2017

Shahed University

Lecturer · Computer Engineering
Tehran, Iran

Selected courses across my teaching career

Courses taught as a lecturer, grouped by subject rather than assigned to a single institution.

Programming, algorithms & software

Parallel algorithms; advanced algorithms; advanced programming in C, C++, C# and Java; Linux systems programming; Internet engineering; web design and development; team research and project management; Software Engineering Project.

Systems, networks & simulation

Operating systems; cloud computing; parallel and distributed simulation; modelling and performance evaluation of computer systems; computer networks laboratory; operating systems laboratory.

Engineering & cross-disciplinary teaching

Hardware/software co-design; embedded systems; computer architecture; logic circuits; circuit theory; advanced programming in C/C++; applications of computers in dentistry.

Teaching-assistant experience

Computer hardware; concurrent and distributed systems; networked operating systems; Software Development I & II; object-oriented programming in C++; web and mobile application development; Internet technologies; cybersecurity; introduction to renewable energy.

Workshops & research training

Making advanced
computation accessible.

Alongside degree teaching, I have delivered workshops in mathematical modelling, numerical methods and high-performance computation.

  • 2024

    Mathematical and Computational Models in Biology

    University of Hertfordshire · Autumn 2024

  • 2023

    Numerical Solution of Differential Equations

    Ulster University · Spring 2023

  • 2017

    HPC Fundamentals and Parallel Programming

    Shahed University · Spring 2017

  • 2015–16

    Fundamentals and Applications of Parallel Discrete Event Simulation

    Sharif University of Technology · Spring 2015 and 2016

Cover of Implementing Parallel and Distributed Systems, CRC Press, 2023
A book for hands-on learning

Learn the principles.
Implement the systems.

Implementing Parallel and Distributed Systems connects parallel programming and distributed-system concepts with worked examples and native C++ implementation.

Many of its chapters have been taught to undergraduate and postgraduate students. Companion source code supports practical exploration of concurrency, networking and high-performance computing.

CRC Press · 2023

Curiosity becomes capability.

I welcome conversations about student projects, research-informed teaching and training in scientific computing.

Start a conversation