Teaching · 1991 – Present

Courses

Three and a half decades of teaching at the School of Computer Engineering, Iran University of Science and Technology — spanning graduate seminars, undergraduate foundations, and professional workshops.

  • 35+ Years teaching
  • 21 Distinct courses
  • 12 Graduate
  • 2 Active

Graduate

12
Teaching now

Large Scale Systems of Systems (SoS)

Architectures, models, and engineering principles for large-scale interconnected systems.

2026 – Present
Teaching now

Distributed Systems

Foundations, models, algorithms, and system-level engineering of distributed computation.

2006 – Present
Concluded

Cluster and Grid Computing

Job scheduling, resource management, and runtime systems for cluster and grid environments.

2008 – 2025
Concluded

Cloud Computing

Virtualization, VM scheduling, QoS, elasticity, and cloud service delivery models.

2017 – 2020
Concluded

Advanced Operating Systems

Kernel internals, scheduling, memory management, and distributed OS concepts.

1995 – 2006
Concluded

Software Project Management

Planning, estimation, risk, team organization, and delivery of complex software projects.

2000 – 2017
Concluded

System of Systems (SoS)

Engineering principles for systems composed of independently operating constituent systems.

2010 – 2018
Concluded

Advanced Software Engineering

Advanced design methods, architectural patterns, and software process models.

1995 – 2010
Concluded

Real-Time Systems

Scheduling theory, timing constraints, and dependable real-time system design.

2003 – 2010
Concluded

Software Fault-Tolerance

Replication, recovery, checkpointing, and fault-tolerant software architectures.

2003 – 2006
Concluded

Computer Software Security

Threats, access control, cryptography, and secure system design principles.

2000 – 2005
Concluded

Performance Modelling & Evaluation

Queuing models, simulation, benchmarking, and workload characterization.

1994 – 2004

Undergraduate

6
Concluded

Operating Systems Design & Implementation

Processes, memory, file systems, concurrency, and hands-on kernel implementation.

1993 – 2021
Concluded

Operating Systems Laboratory

Practical kernel programming, system calls, and OS experiments.

1993 – 2019
Concluded

Systems Analysis and Design

Structured analysis, modeling techniques, and information system design methods.

1991 – 2006
Concluded

Software Engineering

Lifecycle models, requirements, design, testing, and team software practices.

1991 – 2000
Concluded

Compiler Design and Implementation

Lexing, parsing, semantic analysis, optimization, and code generation.

1991 – 1993
Concluded

Artificial Intelligence

Search, knowledge representation, inference, and intelligent system design.

1991 – 1993

Vocational

3
Concluded

Software Development Program & Project Management

Professional workshops on managing software development programs and projects.

From 1995
Concluded

Software and Web Engineering

Modern practices for building web-based software systems.

2006 – 2008
Concluded

Enterprise Architecture

Business–IT alignment, architectural frameworks, and enterprise transformation.

1998 – 2004