• 2018/2019 Semester 2: CS3243 - Introduction to Artificial Intelligence

    Course Description

    The course is aimed at mid-advanced undergraduate students, as well as beginner graduate students. The objective of this class is to offer students a comprehensive introduction to the emerging field of artificial intelligence, with an emphasis on its computational, mathematical and economic foundations. In more detail, we will study the following topics

    • What is AI?
    • The design of rational agents.
    • Search problems (in particular, uninformed, informed and adversarial search)
    • Constraint Satisfaction Problems
    • Logical agents, first order logic and inference
    • Uncertainty modeling and Bayesian networks
    • An introduction to machine learning
    • Advanced topics
    We will cover key chapters from Russel and Norvig's "Artificial Intelligence - A Modern Approach" (3rd Edition). The course will take a theoretical and mathematical perspective; as such, students are expected to have a solid understanding of algorithms (CS2010 or equivalent) and discrete mathematics (CS1231 or equivalent). A good knowledge of probability and statistics is recommended as well.

    Slides

  • 2018/2019 Semester 1: CS4261 - Algorithmic Mechanism Design

    Course Description

    Recent years have seen a dramatic rise in the use of algorithms for solving problems involving strategic decision makers. Deployed algorithms now assist in a variety of economic interactions: assigning medical residents to schools, allocating students to courses, allocating security resources in airports, allocating computational resources and dividing rent. We will explore foundational topics at the intersection of economics and computation, starting with the foundations of game theory: Nash equilibria, the theory of cooperative games, before proceeding to covering more advanced topics: matching algorithms, allocation of indivisible goods, and mechanism design.

  • 2017/2018 Semester 2: CS3243 - Introduction to Artificial Intelligence

    Course Description

    The course is aimed at mid-advanced undergraduate students, as well as beginner graduate students. The objective of this class is to offer students a comprehensive introduction to the emerging field of artificial intelligence, with an emphasis on its computational, mathematical and economic foundations. In more detail, we will study the following topics

    • What is AI?
    • The design of rational agents.
    • Search problems (in particular, uninformed, informed and adversarial search)
    • Constraint Satisfaction Problems
    • Logical agents, first order logic and inference
    • Uncertainty modeling and Bayesian networks
    • An introduction to machine learning
    • Advanced topics
    We will cover key chapters from Russel and Norvig's "Artificial Intelligence - A Modern Approach" (3rd Edition). The course will take a theoretical and mathematical perspective; as such, students are expected to have a solid understanding of algorithms (CS2010 or equivalent) and discrete mathematics (CS1231 or equivalent). A good knowledge of probability and statistics is recommended as well.

    Slides

  • 2017/2018 Semester 1: CS6234 Advanced Algorithms

    Course Description

    This module is aimed at graduate students who are doing or intend to do advanced research in algorithms design and analysis in all areas of computer science. The module covers advanced material on combinatorial algorithms, with emphasis on efficient algorithms, and explores their use in a variety of application areas. Topics covered include, but are not restricted to, linear programming, graph matching and network congestion, approximation algorithms, randomized algorithms, online algorithms, and learning algorithms. The module will be a seminar-based module that will expose students to current research in these areas. By the end of the course students will be able to:

    • Independently explore and understand advanced topics in algorithms.
    • Understand and write formal mathematical proofs.
    • Employ fundamental concepts from theoretical computer science in their own research.

  • 2016/2017 Semester 2: CS6283 Topics in Computational Social Choice

    Course Description

    Recent years have seen a dramatic rise in the use of algorithms for solving problems involving strategic decision makers. Deployed algorithms now assist in a variety of economic interactions, from kidney exchange and airport security, to allocating computational resources and dividing rent. We will explore foundational topics in computational social choice. Our exploration will begin from seemingly simple group decision making problems: selling items at an auction, dividing rent among roommates, allocating computational resources and more. These problems all require an interdisciplinary approach, combining ideas from economics, game theory and algorithmic analysis.

    Slides