Teaching

  • CS 462/562 Collective Decision Making In Multi-agent Systems

This course provides an overview of collective decision making within multiagent systems and its main concepts, theories, and algorithms. It covers utility theory, preference aggregation, voting methods, principles of automated negotiation, and group recommender systems.

  • CS 451/561 Introduction to Artificial Intelligence

The aim of this course is to introduce students main concepts and techniques of Artificial Intelligence (AI). The course targets equipping the students with the ability of building intelligent computational systems. Major topics of the course include: intelligent agents, heuristic search, game playing, constraint satisfaction, uncertain knowledge and reasoning, decision making and machine learning.

  • CS 101 Computer Programming

This course introduces the student to the fundamental concepts of computers, computer programming, and algorithm design and implementation using a modern programming language (e.g. Java). It covers computer organization, hardware and software terminology, programming environments and tools, Java programming syntax, control statements (if-else, loops, break, continue), methods, parameters, classes, and principal software engineering guidelines.

  • CS 202 Database Management Systems

This course covers fundamental concepts in database management systems (DBMS). Topics include schemas, functional relations and normalization in relational databases, data storage medium, and file systems. In addition, new and emerging types DBMS that support object-oriented, semi-structured XML data models are discussed. Students learn to implement SQL queries and optimize them over open-source and/or commercial databases. They also develop applications using databases.

  • CS 333 Algorithm Analysis

This course aims to equip students with the skills of designing algorithms for a range of computational problems (graph theoretic, number theoretic and general data processing) and analyzing the time efficiency and correctness of algorithms. It covers the following topics: Greedy/Dynamic Programming/ Divide and Conquer Algorithm Design Paradigms, Graph algorithms (minimum path, spanning tree, max flow), and intractability (NP & NP-complete problem classes).

Recent Posts