CS580 - Introduction to AI (Spring 2016)


  • Instructor: Amarda Shehu amarda\AT\gmu.edu
    TA: Xiaosheng Li xli22\AT\gmu.edu
    Class Place and Time: Innovation Hall 204, W 4:30-7:10 pm
    TA Office Hours: ENGR #5321, R 3:00-5:00 pm
    Instructor Office Hours: ENGR #4422, W 2:30-4:30 pm


  • This is a foundational course in Artificial Intelligence (AI), which is the discipline of designing intelligent computer systems. The undercurrent of the topics covered in this course is how to design and analyze autonomous agents that process information, plan, and execute actions in the presence of constraints, limited information, and limited computational resources. Central questions will be addressed:

    (1) How can agents effectively make decisions in fully/partially observable, adversarial environments?

    (2) How can agents adapt their actions by learning from experience in changing environments?

    The set of topics covered in this course will closely follow the chapters in the Russell & Norvig textbook. They include uninformed, informed, heuristic, and adversarial search, constraint satisfaction (chapters 3-6), knowledge representation and first-order logic (chapters 7-9), planning and knowledge representation(chapters 10-12), reasoning in the presence of uncertainty (chapters 13-17), learning (chapters 18-21), and natural language processing (chapters 22-25). Not all topics will be covered at the same level of detail and depth. An attempt will be made to study topics in the context of interesting, current examples from various sub-domains of modeling of intelligent agents, such as self-driving cars, face and handwriting recognizers, game playing programs, package delivery robots, schedulers, spam detectors, named-entity recognizers, and speech recognition systems.

    The course draws on material from computer science, probability theory, decision theory, and game theory. Good knowledge of algorithms, discrete mathematics, linear algebra, probability and statistics is assumed. Usage of functional languages, such as LISP and Prolog is encouraged. Matlab, expert system programming languages, and other languages may be employed on relevant topics during the course. Students have some flexibility in the programming language they select for homeworks upon prior approval from the instructor.


  • Material will be disseminated in the form of lectures. Students are advised to read the corresponding material in the textbook before class. Additional reading material may be disseminated on specific topics to provide more depth. Students will be tested on the comprehension of the basic material through homeworks and exams. Homeworks may include programming. No programming is involved in the exam, only pseudocode. No late homeworks or project deliverables will be accepted.

Grade Breakdown

  • Homeworks (3): 30%
    Midterm Exam: 15%
    Final Exam: 30%
    Project: 25%