PhD in Computer Science

Department of Computer Science and Engineering, University of Colorado Denver


Applied Graph Theory

Introduces discrete structures applications of graph theory to computer science, engineering and operations research. Topics include connectivity, coloring, trees, Euler and Hamiltonian paths and circuits. Matching and covering problems, shortest route and network flows.
Technologies & languages: Wolfram Mathematica

Advanced Computer Architecture

Important concepts in the structural design of computer systems are covered. Topics include memory hierarchy, super pipelining and super scalar techniques, dynamic execution, vector computers and multiprocessors.
Course Project: Cache Coherence Simulator Technologies & languages: C#, C++

Dowlonad presentation slides:

Theory of Automata

Studies the relationships between classes of formal languages (regular, context-free, context-sensitive, phrase-structure) and classes of automata (finite-state, pushdown, Turing machines). Additional topics include decidability and computability issues.

Computational Complexity and Algorithms

A solid, in-depth theoretical foundations in computing, computational complexity, and algorithmics. Various algorithms, including both discrete and non-discrete problem domains. NP-complete and other complete classes of problems/languages.
Course Project: Closed Itemset Mining, ECLAT vs. dECLAT Technologies & languages: C#, LINQ

Dowlonad presentation slides:

Introduction To Mathematical Statistics

Sampling distributions, maximum likelihood and method of moments estimation, properties of estimators, classical methods for confidence intervals and hypothesis testing, simple linear regression.
Technologies & languages: R, R Studio

Practical Bioinformatics for Large-Scale Genomics Data Mining

This course introduces basic concepts of bioinformatics needed to perform large-scale genomic data mining. A computer workshop will provide students with the relevant and minimal skills to analyze, access and visualize high-throughput data using open source programs and public databases
Course Project: COPD Progress Prediction Technologies & languages: C#, Microsoft SQL Server, Perl, Machine Learning, Classification, R, AffyMatrix, Unix, Java TreeView, Cluster 3.0, GSEA, ...

Dowlonad presenatation slides:

Masters of Science in Computer Science

Viterbi School of Engineering, University of Southern California (USC)

Database Systems

Database system architecture, conceptual database models, semantic, object-oriented, logic-based, and relational databases, user and program interfaces; database system implementation, integrity, security, concurrency and recovery.
Technologies & languages: Oracle Database (Spatial), XML, XQuery, Java

Software Architectures

Study of concepts, principles and scope of software system architectures, including architectural styles, languages, connectors, middleware, dynamism, analysis, testing and domain-specific approaches.
Technologies & languages: Java, Regular Expressions

Directed Research: iWatch (Jenus)

With the Janus Project we envision developing more intelligent surveillance system for a variety of applications, such as security surveillance, public health surveillance, traffic surveillance, etc., with a large amount of videos, texts, and sensor data.
Technologies & languages: Java, Oracle Database, Microsoft SQL Server, JavaScript, Web Services, ...
Roles: Server Side Programming, DBA, Data Integration, Research

Read More

Web Technologies

HTML, CSS, XML, JavaScripts, DOM, Forms & CGI Mechanism, HTTP, Server Sid Scripts in PHP, JSON, Ajax, Web Services

Read More

Analysis of Algorithms

Explores fundamental techniques such as recursion, Fourier transform ordering, dynamic programming for efficient algorithm construction. Examples include arithmetic, algebraic, graph, pattern matching, sorting, searching algorithms.

Specification and Design of User Interface

Interface technologies: human capabilities, computer IO devices || Interface design principles and methods: interaction styles, design principles and rules, user-centered design, and prototyping || Interface evaluations: qualitative evaluation, testing with users, quantitative evaluation || More: augmented reality, information visualization and interaction
Technologies & languages: JavaScript, Microsoft Sketch Flow

Foundations of Artificial Intelligence

foundations of symbolic intelligent systems, search, logic, knowledgerepresentation, planning, learning
Technologies & languages: Python, LISP

Directed Research: CiSoft

Implemented an application using Microsoft StreamInsight to receive streaming sensor data from Chevron followed by error detection and data cleansing.
Technologies & languages: Microsoft StreamInsight (SI), Microsoft SQL Server, C#, LINQ, SQL
Roles: Graduate Research Assistant, Programming, Testing

Read More

Compiler Design

Formal grammars, parsing methods and lexical analysis, code generation, local and global code optimization, and dynamic allocation
Technologies & languages: Linux, Yac, Lex, C#

Bachelors of Science in Software Engineering

Azad University of Tehran North

Computer Science / Software Engineering

  • ● Thesis: Resource Allocation Mechanism in Cloud Computing
  • ● Fundamentals of Computer Programming (C)
  • ● Advanced Programming (C++)
  • ● Data Structures
  • ● Assembly Language and Computer Organization
  • ● Information Storage and Retrieval
  • ● Programming Languages (Design and Implementation)
  • ● Theory of Automata and Languages
  • ● Database System Concepts
  • ● Database System Concepts Lab
  • ● Software Engineering 1
  • ● Software Engineering 2
  • ● Compiler Design
  • ● Algorithms
  • ● Operating Systems
  • ● Operating Systems Lab
  • ● Computer Networks
  • ● Artificial Intelligence
  • ● Internet Engineering
  • ● Computer and Network Security
  • ● Neural Networks

Computer Hardware / Electrical Engineering

  • ● Electric Circuits
  • ● Electric Circuits Lab
  • ● Electronic Circuits
  • ● Electronic Circuits Lab
  • ● Logic Design
  • ● Logic Design Lab
  • ● Computer Architecture
  • ● Computer Architecture Lab
  • ● Microprocessors
  • ● Microprocessors Lab


  • ● Pre-Calculus 1
  • ● Calculus I
  • ● Calculus II
  • ● Differential Equations
  • ● Discrete Structures
  • ● Engineering Probability and Statistics
  • ● Engineering Mathematics
  • ● Numerical Methods

Elective / Other

  • ● Physics 1
  • ● Physics 1 Lab
  • ● Physics 2
  • ● Physics 2 Lab
  • ● Trending Topics in Information Technology (e-commerce)