The Tables of Courses of Computer Science are as follows:
Table No. 11: Compulsory courses in logic and formal methods branches:
No 
Course 
Units 
1 
Computational data mining 
3 
2 
Advanced algorithms 
3 
3 
Model checker 
3 
Table No. 12: Specialized – optional courses of official languages branch and formal methods:
No 
Course 
Units 
Hours/ theory 
Hours/applied 
Total hours 
Prerequisites or simultaneous courses 
1 
Model checker 
3 
48 

48 

2 
Automatic proof 
3 
48 

48 

3 
Logic programming 
3 
48 

48 

4 
Formal semantics 
3 
48 

48 

5 
Formal description of software 
3 
48 

48 

6 
Software authentication 
3 
48 

48 

7 
Special topics in formal methods 
3 
48 

48 
Lecturer permission 
The student is required to take at least 6 units of the courses in Table 21.
The student must take two of the courses in Tables 11 to71 or 12 to72 or one of the related master's degree courses according to the group advice.
Table No21: Compulsory courses in the field of scientific computing:
No 
Course 
Units 
1 
Computational data 
3 
2 
Advanced algorithms 
3 
3 
Matrix computations 
3 
Table 22: Specialized – optional courses of scientific computations.
No 
Course 
Units 
Hours / theory 
Hours/ applied 
Total hours 
Prerequisites or simultaneous courses 
1 
Advanced math software 
3 
48 

48 
Numerical analysis 1 
2 
Linear numerical programming 
3 
48 

48 
Linear algebra 
3 
Nonlinearnumerical optimization 
3 
48 

48 
Numerical linear algebra or numerical analysis 1 or matrix computations 
4 
Advanced linear programming 
3 
48 

48 
Linear numerical programming or instructor permission 
5 
Advanced nonlinear optimization 
3 
48 

48 
Numerical linear algebra or numerical analysis 1 or matrix calculations or group permission

6 
Numerical Integral and differential equations 
3 
48 

48 
Numerical analysis 1 
7 
Numerical partial differential equations 
3 
48 

48 
Numerical analysis 1 
8 
Sparse matrices technology 
3 
48 

48 
Numerical linear algebra or matrix calculations or instructor permission 
91 
Modeling and geometric design 
3 
48 

48 
Numerical linear algebra or matrix calculations or instructor permission 
11 
Integer programing and networking 
3 
48 

48 
Numerical algebra, or numerical linear programming, or instructor permission 
12 
Combinatory optimization 
3 
48 

48 
Numerical algebra, or numerical linear programming, or instructor permission 
13 
Parallel algorithms for scientific computing 
3 
48 

48 
Numerical analysis 1 or instructor permission 
14 
Numerical stochastic differential equations 
3 
48 

48 
Numerical analysis 1 or instructor permission 
15 
Numerical stochastic partial differential equations 
3 
48 

48 
Ordinary stochastic differential equations, Simulation 
16 
Simulation 
3 
48 

48 
Probability theory and stochastic processes, statistics 
17 
Special topics in scientific computing

3 
48 

48 
Instructor permission 
The student is required to take at least 6 units of the courses in Table 22.
The student must take two of the courses in Tables 11 to 71 or 12 to 72 or one of the related master's degree courses according to the group advice.
Table No. 31: Compulsory courses in Algorithm branch and theory of computations:
No 
Course 
Units 
1 
Computational data 
3 
2 
Advanced algorithms 
3 
3 
Advanced theory of computation 
3 
Table No. 32: Specializedoptional courses in computational theory:
Course code 
Course 
Units 
Hours/ theory 
Hours/ applied 
Total hours 
Prerequisites or simultaneous courses 
1 
Recursion theory and computability 
3 
48 

48 
Instructor permission 
2 
Computation complexity 
3 
48 

48 

3 
Advanced computation complexity 
3 
48 

48 

4 
Parallel algorithms 
3 
48 

48 

5 
Stochastic algorithms 
3 
48 

48 

6 
Design and analysis of algorithms 
3 
48 

48 

7 
Fundamentals of cryptography theory 
3 
48 

48 

8 
Games theory 
3 
48 

48 

9 
Advanced graph theory 
3 
48 

48 
Graphs and algorithms 
10 
Combinatorial algorithms 
3 
48 

48 

11 
Graphs and algorithms 
3 
48 

48 

12 
Approximate algorithms 
3 
48 

48 

13 
Computational geometry 
3 
48 

48 

14 
combinatorics 
3 
48 

48 
Combinatorial analysis 1 
15 
Structural compounds 
3 
48 

48 

16 
Computational analysis 
3 
48 

48 
Mathematical logic, Mathematical analysis 
17 
Special Topics in computational theory 
3 
48 

48 
Instructor permission 
The student is must take at least 6 units of the courses from Table 23
The student must take two of the courses in Tables 11 to 71 or 21 to 72 or one of the related master's degree courses, depending on the group advice.
Table 41: Compulsory courses in soft computing and artificial intelligence.
No 
Course 
Units 
1 
Computational data 
3 
2 
Advanced algorithms 
3 
3 
Advanced artificial intelligence 3 
3 
Table No. 42: Specialized optional courses  Soft computing and artificial intelligence:
Course code 
Course 
Units 
Hours/ theory 
Hours/applied 
Total hours 
Prerequisites or simultaneous courses 
1 
Soft computing 
3 
48 

48 
 
2 
Advanced artificial intelligence 
3 
48 

48 
 
3 
Expert systems 
3 
48 

48 
 
4 
Machine learning 
3 
48 

48 
 
5 
Natural languages processing 
3 
48 

48 
 
6 
Statistical Machine learning 
3 
48 

48 
Machine learning 
7 
Discrete dynamic systems 
3 
48 

48 
 
8 
Intelligent algorithms 
3 
48 

48 
 
9 
Multi agent systems 
3 
48 

48 
 
10 
Deep learning 
3 
48 

48 
Machine learning 
11 
Data mining 
3 
48 

48 
 
12 
Advanced network optimization 
3 
48 

48 
 
13 
Special Topics in Artificial Intelligence 
3 
48 

48 
Instructor permission 
14 
Special Topics in Soft Computing 
3 
48 

48 
Instructor permission 
The student is required to take at least 6 units of the courses in Table 42.
The student must take two of the courses in Tables 11to 71 or 12 to 71, or one of the related master's degree courses according to the group advice.
Table 51: Compulsory courses in systems theory:
No 
Course 
Units 
1 
Computational data mining 
3 
2 
Advanced algorithms 
3 
3 
Advanced software design 
3 
Table No. 52: Specializedoptional courses in systems theory:
Course code 
Course 
Units 
Hours/theory 
Hours/ applied 
Total hours 
Prerequisites or simultaneous courses 
1 
Advanced software design 
3 
48 

48 
 
2 
Advanced agent system 
3 
48 

48 
 
3 
Advanced data base 
3 
48 

48 
 
4 
Real time systems 
3 
48 

48 
 
5 
Decision support systems 
3 
48 

48 
 
6 
Advanced compiler 
3 
48 

48 
 
7 
Distributed systems 
3 
48 

48 
Artificial intelligence 
8 
Advanced computer networks 
3 
48 

48 
 
9 
Special Topics in Systems Theory 
3 
48 

48 
Instructor permission 
The student is required to take at least 6 units of the courses in Table 52. advice.
Table No. 61: Compulsory courses in Decision Science and Knowledge:
No 
Course 
Units 
1 
Computational data mining 
3 
2 
Advanced algorithms 
3 
3 
Convex optimization

3 
Table No 62: Specializedoptional Courses in Decision Science and Knowledge:
Course code 
Course 
Units 
Hours/theory 
Hours/applied 
Total hours 
Prerequisites or simultaneous courses 
1 
Decision with multiple criteria 
3 
48 

48 
Operations Research 
2 
Soft computing 
3 
48 

48 
 
3 
Machine learning 
3 
48 

48 
 
4 
Information and uncertainty 
3 
48 

48 
 
5 
Fuzzy decision systems 
3 
48 

48 
Decision with multiple criteria 
6 
Learning mathematics 
3 
48 

48 
 
7 
Combinatorial optimization 
3 
48 

48 
 
8 
Stochastic processes 
3 
48 

48 
 
9 
Probability and fuzzy statistics 
3 
48 

48 
Soft computing 
10 
Games theory 
3 
48 

48 
 
11 
Transcendental optimization 
3 
48 

48 
Operational research 
12 
Data mining 
3 
48 

48 
 
13 
Advanced data mining 
3 
48 

48 
Data mining 
14 
Text mining & web mining 
3 
48 

48 
Data mining 
15 
Artificial Neural Networks 
3 
48 

48 
Mathematical optimization or Instructor permission 
16 
Multi agent systems 
3 
48 

48 
 
17 
Special topics in decision science and knowledge 
3 
48 

48 
Instructor permission 
The student is required to take at least 6 units of the courses in Table 26.
The student must take two of the courses in Tables 11 to 71 or 12to 71, or one of the related master's degree courses, depending on the group permission.
Table 71: Compulsory courses of Data Mining branch:
No 
Course 
units 
1 
Computational data mining 
3 
2 
Advanced algorithms 
3 
3 
Data mining 
3 
Table 72: Specializedoptional courses in data mining branch:
Course code 
Course 
Units 
Hours/ theory 
Hours/applied 
Total hours 
Prerequisites or simultaneous courses 
1 
Learning mathematics 
3 
48 

48 
 
2 
Convex optimization 
3 
48 

48 
 
3 
Combinatorial optimization 
3 
48 

48 
 
4 
Machine learning 
3 
48 

48 
 
5 
Statistical machine learning 
3 
48 

48 
Machine learning 
6 
Advanced data mining 
3 
48 

48 
Data mining 
7 
Text mining and web mining

3 
48 

48 
Data mining 
8 
Feature selection and feature extraction 
3 
48 

48 
Data mining or Instructor permission 
9 
Graph mining 
3 
48 

48 
Data mining or Instructor permission 
10 
Probabilistic graph models 
3 
48 

48 
Data mining or Instructor permission 
11 
Complex Networks 
3 
48 

48 
Data mining or Instructor permission 
12 
Data visualization 
3 
48 

48 
Data mining or Instructor permission 
13 
Outlier detection 
3 
48 

48 
Data mining or Instructor permission 
14 
Modeling and data processing 
3 
48 

48 
Data mining 
15 
Deep learning 
3 
48 

48 
Machine learning 
16 
Special topics in data mining 
3 
48 

48 
Instructor decision 
The student is required to take at least 6 units of the courses in Table 72.
The student must take two of the courses in Tables 11to 71 or 12to 72, or one of the related master's degree courses, depending on the group permission.