(CIS 315) Intermediate Algorithms
This course focuses on graph algorithms, algorithm design patterns, and complexity analysis. The first part of the course is on graph representation, graph search, topological sort, minimum spanning trees, shortest paths, and network flows. The second part includes recursion, dynamic programming, divide-and-conquer, and greedy algorithms. The third part talks about entropy, time complexity, reductions, and NP-completeness. The course involves designing, implementing, and analyzing algorithms.
(CIS 410/510) Selected Topics on Optimization
This course examines some fundamental theories of optimization. The course starts with a review of prerequisite mathematics, proceeds with the convex optimization theory such as convexity, duality, and optimality conditions, and further expands to distributed, primal-dual, and approximate optimization algorithms. It also covers online convex optimization and competitive analysis. This is a theoretical course with intensive mathematics, and requires knowledge of differential calculus, linear algebra, and probabilities.
(CIS 445/545) Modeling and Simulation
This course provides both practical and theoretical experiences on system modeling and simulation, with emphasis on queueing systems and networks. On the practical side, the course introduces concepts, principles, and empirical guidelines for designing, implementing, and debugging discrete-event simulations, and analyzing the simulation inputs and results. On the theoretical side, it focuses on statistics, queueing theory, and Markov chains. The course involves programming simulations and solving math problems.