With the focus on preparing students for conducting research on theoretical aspects of software development, including advanced algorithms and data structures, parallel algorithms, game theory, computational geometry, and learning algorithms. Department of Computer Engineering, Sharif University of Technology, Azadi Ave., Tehran, Iran