Undergrad Intro AI Course

From Quantitative Analysis Software Courses
Jump to navigation Jump to search


Introduction to Artificial Intelligence (CS 3600) is a three-credit undergraduate course emphasizing the building of agents, environments, and systems that can be considered as acting intelligently. In particular, you will learn about the methods and tools that will allow you to build complete systems that can interact intelligently with their environment by learning and reasoning about the world.


There are three primary objectives for the course: To provide a broad survey of AI; To develop a deeper understanding of several major topics in AI; To develop the design and programming skills that will help you to build intelligent artifacts.

In practice, you should develop enough basic skills and background that you can pursue any desire you have to learn more about specific areas in IS, whether those areas are planning, knowledge representation, machine learning, vision, robotics or whatever. In particular, this class provides a useful foundation for a number of courses involving intelligence systems, including Machine Learning (CS4641), Machine Learning for Trading (CS4646), Knowledge-Based AI (CS4634), Computer Vision (CS4495), Robotics and Perception (CS4632), Natural Language Understanding (CS4650) and Game AI (CS4731).

Instructor information

David Byrd
Research Scientist, Interactive Media Technology Center, Georgia Tech

Syllabi and schedule for specific semesters

Textbooks, Software & Other Resources

Required Text: Artificial Intelligence: A Modern Approach, Third Edition (the blue book) by Russell & Norvig, 2010. There are significant differences between it and the first two editions, so be sure to have the right edition.

Web: We will use the this wiki page for the syllabus, schedule, and policies. We will use Canvas for project submission and critical announcements. We will use a course management site called Piazza for general questions and discussions.


Prior to enrolling in the class, you should understand basic data structures and algorithms (tree, graph, search, etc). Familiarity with basic probability theory will also be useful, although we will spend some limited time refreshing this in lecture.

You should be able to program comfortably in Python, the target language for all coding projects in this class. The projects can be complex and are heavily weighted in your course grade, so please do not dismiss this requirement lightly. We do not teach any programming in the course, nor will the TAs be able to provide extensive assistance with basic programming issues.


  • A: 90.0% and above
  • B: 80.0% and above
  • C: 70.0% and above
  • D: 60.0% and above
  • F: below 60.0%

Students taking the course Pass/Fail must earn at least a 75% to pass.

In recent history, this course has a high average GPA. You should expect no curve. You should expect no rounding (i.e. 89.99% == B). Please understand this from the start.

See semester syllabus for assignment weights.


You must abide by the academic honor code of Georgia Tech.

You must not collaborate, copy, or even glance at another student's work during exams.

You may collaborate without limitation on any ungraded homework assignments.

All code, images, and write-ups for graded projects must be yours alone. Project collaboration is liited to the "whiteboard level". You may discuss general approaches and algorithms, including high-level pseudocode. You should not share code or line-by-line pseudocode with other students. Giving and receiving code are equal violations of the honor code. Both will be referred to OSI.

DO go to the TAs for help on the programming projects. The TAs will know the limits of acceptable help, so you can safely collaborate with them without concern.

Do not store your programming assignment solutions on any public source repository (e.g. github.com). If another student finds and submits your published code, you are also guilty of an academic violation.

Do not turn in code you found on the web. I also use GitHub and StackOverflow...

There are no group projects in this class.

Class Policies

  • I reserve the right to modify the syllabus as necessary during the course. Changes will be minimized and you will be notified as early as possible.
  • For Pass/Fail students: Your overall grade must be 75% or higher to get a passing grade.
  • Official communication will come in lecture or by email. We use piazza for discussions, but it is not an official communications channel. If you have an important issue to discuss with the instructor or a TA, send it via Ga Tech e-mail or come to office hours.
  • Student responsibilities: Be aware of the deadlines posted on the schedule. Read your GT email every day. Start work on projects when they become available.
  • Grade contest period: After a project grade is released you have 7 days to contest the grade by e-mailing the grading TA. After that time projects will not be reevaluated. You must have a very specific issue with a compelling argument as to why your grade is incorrect. Example compelling argument: "The TA took 10 points off because I was missing a chart, but the chart is visible on page 5." Example not compelling argument: "I think I should have gotten more points, please regrade my project." Your assignment will be completely re-evaluated and your revised grade could be higher or lower.
  • Note on grade contests: For all projects, the complete autograder is available to you alongside the project. Points will not be awarded if your code fails during grading, even for a "simple" mistake. You have the autograder. Use it and code carefully.
  • Late policy: Assignments are due at 11:55PM Eastern Time on the assignment due date. Assignments turned in after 11:55PM ET are considered late. Assignments will be accepted up to one day late at a -10 penalty. To be clear: assignments submitted from one second to 24 hours after the due date are "late". After one day, late assignments are not accepted without prior instructor approval.
  • Exam scheduling: Exams will be held on specific days at specific times. If there is an emergency or other issue that requires changing the date of an exam for you, you will need to have it approved by the Dean of Students. You can apply for that here: http://www.deanofstudents.gatech.edu (under Resources -> Class Absences)