CSCI 364 Syllabus

Contact Information

Instructor:           Adam Eck                  adam.eck [AT] oberlin [DOT] edu
Office Hours:      T 11:00 AM - 12:00 PM (King 223D)       F 4:00 - 5:00 PM (King 223D)

Meeting Time and Location

Time: MWF 2:30 - 3:20 PM
Location: King 306

Course Overview

Computational devices are increasingly provided capabilities that resemble human reasoning and intelligence in order to solve complex and real-world problems. This course explores a range of topics related to artificial intelligence, including search, planning, reasoning under uncertainty, intelligent agents, and multiagent systems. Algorithms and frameworks for producing intelligent behavior will be discussed, as well as real-world applications of artificial intelligence.

Course Objectives

  1. Exposure to a breadth of topics related to artificial intelligence
  2. Gain an understanding of the advantages and disadvantages of different algorithms and frameworks so that students can choose appropriate solutions given a problem description
  3. Hand-on experience with commonly used algorithms and software tools within artificial intelligence.
  4. Practice implementing algorithms described in pseudocode.
  5. Consideration of the potential impact of artificial intelligence on society and real-world applications.
  6. Training identifying problems of interest, developing solutions, and working in teams on a substantial student-driven project.

Topics

Intelligent agents and multiagent systems; decision theory; search; heuristics; local search and genetic algorithms; constraint satisfaction problems; reasoning under uncertainty; Markov decision problems; reinforcement learning; game theory; applications of AI for real-world problems; ethics of AI

Course Prerequisites

  • CSCI 241 (Required)

Textbook, Clickers, and Course Website

There is no required textbook for the class. For those who learn best from reading along with a class, readings will be posted on the class website. Unless otherwise noted, these readings will be from the recommended textbook:

Russell, Stuart & Norvig, Peter. Artificial Intelligence: A Modern Approach, 3rd Edition. Prentice Hall, Upper Saddle River, New Jersey. 2010.

Textbook website: http://aima.cs.berkeley.edu/

Other additions are similarly useful (including the most recent 4th edition)

Two additional recommended textbooks are:

Sutton, Richard S. & Barto, Andrew G.. Reinforcement Learning: An Introduction. Second Edition. MIT Press, Cambridge, MA. 2018.

Textbook Website: http://incompleteideas.net/book/the-book.html

Shoham, Yoav & Leyton-Brown, Kevin. Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations. Cambridge University Press, New York City, New York. 2009.

Textbook Website: http://www.masfoundations.org/

We will be using the i<Clicker+ system as part of class participation. Questions will be asked most class periods, and students are expected to participate by responding with their best guesses as to the correct answers. You will not be graded based on the correctness of your responses, so please just provide your best guess as to the correct answer. Students are responsible for their own participation and may not respond for other students. Clickers should be registered through Blackboard.

Information will be primarily communicated through the course website: http://cs.oberlin.edu/~aeck/Fall2021/CSCI364/index.html. Please check the website regularly for the class schedule, assignments, etc. Announcements and grades will be posted to the class Blackboard page

Assignments

Throughout the semester, you will have the opportunity to practice the course material through hands on homework assignments. These will be programming assignments, where you will implement an algorithm or methodology to solve a given problem, then test and evaluate your implementation.

Reflection Journal and Class Discussions

Most of the content of this class will focus on decision-making: how artificially intelligent agents model their worlds and the algorithms they employ to make decisions to accomplish tasks and goals. To help us think about decision-making, each student will maintain a reflection journal throughout the semester where they record their own thinking about decision-making. The better we understand our own thought processes, the more inspiration we will have to endow computer software and hardware with the similar abilities.

We will have three types of entries in our reflection journals:

  1. At the beginning of most key topics, we will do individual and group exercises trying to make decisions in example real-world problems. You will record your own thoughts reflecting on how you solved the problem, which we will later compare with how existing algorithms for decision-making operate.
  2. Periodically, we will reflect on our learning throughout the semester, addressing (1) what you've learned, (2) what you would like to know more about, and (3) what connections you can make between something from class and your daily life.
  3. A few times during the semester, we will have class discussion days where we will first read a few articles before class about AI as it relates to the real-world (e.g., AI in pop culture, the ethics of AI, the implications of superintelligence, etc.). You will be asked to reflect on your thoughts related to the articles after our class discussions (giving everyone a voice, including those who are uncomfortable speaking up during class).

Exams

There will be no exams in this course. Instead, there is only a short questionnaire the first week of the course that gives you an opportunity to reflect on your initial thoughts about artificial intelligence and this course, as well as to help me get to know each one of you. The questionnaire will be graded based on participation -- if you turn it in on time with every question answered, you will automatically receive full credit. There are no right or wrong answers to many of these questions, so please do not stress out while answering!

Final Project

In place of a final exam, students will be required to work in groups for a Final Project assignment. Each group of students will be required to: (1) choose a project, (2) write a proposal identifying the problem of interest along with a proposed solution, (3) develop a solution, (4) report on the outcomes of their project and future work, and (5) present their project (during the final weeks of the semester).

The goal of this project is to provide students with an opportunity to explore their own interests related to artificial intelligence, beyond what is covered by class lectures and readings or completed in the homework assignments. For example, some students might choose to explore designing an AI to demonstrate creativity (e.g., creating new art, music, or writing), while others might choose to apply an AI approach to solve a known real-world problem. Another group might work on developing an AI agent to play a card/board/video game. Each project will be chosen by the group's members to reflect the member's own interests.

This project will require substantial participation by the members of each group, so it will be assigned sufficiently early in the semester so that students have time to successfully complete the project. It will be due at the same time that the final exam would have finished: Sunday January 23 at 4:00 PM

Grading

Final grades will be determined based on your scores on the assignments, project, and class participation as follows:

Component %
Initial Questionnaire 2%
Attendance and Participation 10%
Reflection Journal 15%
Assignments 53%
Final Project 20%

Late Homework Policy

When permitted by the Oberlin calendar (e.g., before the reading period), late submissions of programming assignments will be accepted but will be subject to a percent deduction penalty:

1 second to 1 hour late: up to 5% deduction
1 hour, 1 second to 24 hours late: up to 10% deduction
24 hours, 1 second to 48 hours late: up to 20% deduction
Each additional 24 hour period late: up to an additional 10% deduction

For example, assume an assignment is due at 11:59 PM Monday, November 1. Student X turns in the assignment at 12:15 AM Tuesday, November 2, subject to up to 5% deduction penalty (for a maximum possible score of 95%) due to turning in the assignment late, but less than one hour late.

Student Y later turns in the same assignment at 5:00 PM on Tuesday, November 2, subject to up to 10% deduction penalty (for a maximum possible score of 90%) due to being more than 1 hour but less that 24 hours late.

Finally, Student Z turns in the same assignment at 12:00 PM on Friday, November 5, subject to up to a 40% deduction penalty (for a maximum possible score of 60%) for being more than 72 hours but less than 96 hours late.

Accessibility

I am committed to making this class accessible to all students. If you have accessibility needs, please email me or come discuss them with me. Things you might want to discuss accomodations for include physical and mental disabilities, both permanent and temporary, any situation that is causing you to not be able to attend class or spend as much time on this class as you would like (illness, stress, family situations, work hours, just going through a rough time), not having access to computers, anything that is keeping you from doing your best in this course. Let me know, and together we will figure something out.

Code of Conduct

Both Oberlin College and I personally value the diversity of perspective that each of you bring to this classroom and our study of Computer Science together. In this class, we must all commit to fostering a safe, inclusive and welcoming environment which will allow all of us to learn. Please respect the competance and hard work of your colleagues in this classroom. If you are made to feel uncomfortable in class or while working on class material, please notify me so we can take steps to address the situation. Students who are disruptive to class and our learning community will face consequences, including potentially being removed from the course.

Fair Warning

This is not a lecture-oriented class, or one in which mimicking prefabricated examples will lead you to success. You will be expected to work actively to construct your own understanding of the topics at hand, with the readily available help of the professor and your classmates. Many of the concepts you learn and problems you work will be new to you and ask you to stretch your thinking. It is completely natural and common to experience frustration and failure before you experience understanding. This is part of the normal learning process. Your viability as a professional in the modern workforce depends on your ability to embrace this learning process and make it work for you. You are supported on all sides by the professor and your classmates. But no student is exempt from the process and the hard work that it entails.

Academic Dishonesty

Students are expected to adhere to the Oberlin College Honor Code. Any violations will be reported to the Honor Code Committee.

Different assignments in this course will have different expectations with respect to the Honor Code, which will be clearly explained in the assignment instructions (in case of confusion, please contact me). For example, the final project is a group excerise and students are required to closely collaborate with other students (within their groups) to successfully complete their projects. Students are encouraged to discuss the homework assignments with their peers, but (1) students must acknowledge with whom they discussed their assignment in a README file, and (2) students are not allowed to share or show their code to one another, nor discuss implementation details (discussions should be done at a higher level about the algorithms, program design, etc. and not about source code). Please note: looking at source code from existing AI libraries or other sources is strictly forbidden for the homework assignments. However, use of pre-existing software and libraries might be acceptable for the final group projects, provided the students receive explicit permission from the professor.

If you have any questions about what is permitted and what is not, please feel free to ask.

For every assignment, students must indicate whether they followed the Honor Code in completing the assignment. If so, students should include in a README file the following:

I have adhered to the Honor Code in this assignment.