Recent Courses at LUMS:


  • CS 5312 - Big Data Analytics

    Big_Data_Analytics

    This course introduces the essential mathematical concepts and computational methods to retrieve, process, and analyze data sets that are too large, complex, and heterogeneous for conventional methods. The course covers data preprocessing, data visualization, text analytics, graph analytics, recommendation systems, clustering, classification, regression, spectral clustering, dimensionality reduction, matrix factorization, locality-sensitive hashing, and streaming algorithm.

  • CS 510 - Advanced Algorithms

    Algorithms_Design

    This is a graduate-level course on the design and analysis of algorithms. After a quick review of basic algorithm design techniques such as divide-and-conquer, greedy algorithms, and dynamic programming, the course covers introductory complexity theory and advanced topics in algorithms such as network flows, randomized algorithms, approximation algorithms, NP-hardness, NP-complete problems, local search and linear programming.

  • CS 310 - Algorithms

    Algorithms_Design

    This is an undergraduate-level course on the design and analysis of algorithms. We will cover basic algorithm design techniques such as divide-and-conquer, greedy algorithms, and dynamic programming. The course also covers basic graph algorithms (Single Source Shortest Path, Prim's Algorithm, Kruskal's Algorithm), introductory complexity theory, network flows, Sequence Alignment, Polynomial Time Reduction of Problems and NP-Complete Problems.

  • CS 210 - Discrete Mathematics

    Discrete_Mathematics

    This course covers the mathematical foundations of computer science. It provides an introduction to logic, sets, functions, sequences, relations, proofs, combinatorics, graphs, trees, number theory, and discrete probability. It also shows how these topics are applied to algorithms, data structures, databases, networks, and complexity theory. Students learn how to formulate, model, and solve computational problems with various discrete structures.

  • CS 315 - Theory of Computation

    Theory of Computation

    This is an introductory course on the theory of computation. The course provides a comprehensive introduction to four broad areas in theoretical computer sciences: the theory of automata, computability theory, complexity theory, and advanced models of computation. This course covers the basic ideas of computation, state machines like DFA and NFA, Turing Machines as well as streaming computation, randomized computation and approximate computation.