CSC261 Artificial Intelligence

Spring 2018

Synopsis: This class introduces the fundamentals of automated intelligence. Through the "eyes" of an intelligent agent, we will learn about searching for problem solutions, exhibiting rational behavior, handling uncertainty, and learning from experience.
Instructor: Jerod Weinman
Office: Noyce 3825
Phone: x9812
E-mail: [weinman]
Mentors: Reilly Grant (Section 1)
Prabir Pradhan (Section 2)
Class meetings:
MTWF
Course web page:
http://www.cs.grinnell.edu/~weinman/courses/CSC261/2018S
Piazza:
https://piazza.com/grinnell/spring2018/csc261/home

Contents

1  Accommodations
2  Overview
3  Textbook
4  Class attendance
5  Electronic Devices
6  Schedule of topics
7  Assignments and activities
    7.1  Reading
        7.1.1  Preparation
        7.1.2  Reading journal
    7.2  Participation
    7.3  Lab assignments
    7.4  Exams
8  Partner responsibilities
9  Grading
10  Academic honesty
11  Deadlines
12  Getting Help
    12.1  Discussion with Piazza
    12.2  Office Hours
    12.3  Email

1  Accommodations

If you have any disability that requires accommodations, please meet with me right away so that we can work together to find accommodations that meet your learning needs. You will also need to provide documentation of your disability to the Coordinator of Disability Services, John Hirschman, located on the 3rd floor of the Rosenfield Center (x3124).
Please also note that I require your accommodations. The synthetic fragrances found in deodorants, lotions, after shave, body sprays, laundry products, perfume, cologne, etc. make many people who suffer with asthma, allergies, environmental sensitivities, cancer, and migraines much sicker. I am sensitive to many such chemicals you may not even notice, so please try to avoid using such scented products before coming to class and especially if you visit my office.

2  Overview

What is intelligence? Can it be automated? These are deep questions whose algorithmic roots go back thousands of years. In this course, we will examine computational approaches to problem solving, rational behavior, and learning. The field of artificial intelligence (AI) has gone through many ups and downs. AI has branched into many sub-areas that are beginning to be reunified with great success for many practical applications. We will study the foundations and theories behind the "big ideas" in AI, and spend some time exploring and implementing some real models for real problems.
Our major objectives for this course include:
*  Why take it?
Rational, learning, computer-based agents are being used to solve more, bigger, and often very important problems. If you have any interest in how this increasingly visible sub-field of computer science operates, this course is for you. Even if your occupation is not typically thought of as "AI work," exposure to these ideas may influence how you approach problem-solving and will definitely influence how you interpret future developments in the field of AI that you may learn about.
*  What do I need to know?
This course assumes you have experience with functional programming in Scheme and imperative programming in C. You should also be fluent in important computational ideas like encapsulation and code re-use with procedures and recursion. Familiarity with data organization principles (i.e., linear and recursive data structures) are also necessary. Mathematical maturity (e.g., formal logic, proof-writing, multivariable calculus, combinatorics, ) is also expected.

3  Textbook

Our course will be based on the following text:
Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach, Third Edition. Prentice Hall, 2010. ISBN: 978-0-13-604259-4.
The authors have updated this text on average only every 6.5 years. Thus, you should expect meaningful differences that represent significant improvements between editions. You should not attempt to use a previous edition.
Our programming exercises will be (mostly) done in Scheme. An excellent Scheme reference/textbook is available free online, but a print edition is also available (you may also find an older copy in the CS Learning Center/MathLAN Library). We'll be using R5RS for this course.
R. Kent Dyvbig. The Scheme Programming Language, Third Edition. MIT Press, 2003. ISBN: 978-0262541480. http://www.scheme.com/tspl3
Some additional programming exercises will be conducted in C. You may wish to refer to the following free online or print reference manuals.
Eric Huss, The C Library Reference Guide, University of Illinois Student Chapter, 1997. http://www.acm.uiuc.edu/webmonkeys/book/c_guide
Samuel P. Harbison and Guy L. Steel. C: A Reference Manual, Fifth Edition. Prentice Hall, 2002. ISBN 0-13-08952-X
Brian W. Kernighan and Dennis M. Ritchie. The C Programming Languag, Second Edition, Prentice Hall, 1988. ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).
K. N. King, C Programming: A Modern Approach, Second Edition, W. W. Norton, 2008, ISBN 978-0393979503.

4  Class attendance

Class meetings will involve a mix of discussions, collaborative activities, labs, elaborations, and the occasional mini-lecture. In short: You are expected to attend and actively participate in class. I am expected to make class worth attending.
Because is a collaborative, discussion-based course, your presence is integral to your learning. Thus, 1.5% (0.06 grade points) will be deducted from your overall grade for each absence. I know that sometimes "things happen." Therefore, you will be granted one unexcused absence from class without penalty. However, this rebate is cancelled upon a second absence.
If you are absent, you must send a written explanation (email is appropriate) before class except in the (rare) case of dire emergency. (Consider the analogy for phoning in sick for work; you wouldn't do it at 4 PM.)
Because I do not wish you to risk harm to yourself or others, I typically moderate penalties in case of illness.
If you know in advance that you will be absent for any reason, you must notify me in writing (again, email is fine) at least 7 days in advance to make arrangements for considering your absence excused.
Our discussions benefit from your contributions. If you do miss a class, you must first talk to a classmate about any material that you may have missed. After that, you may follow up with the instructor about any further questions or concerns.

5  Electronic Devices

With the exception of collaborative computer-based lab activities that use the existing MathLAN computers, the use of electronic devices (smartwatches, phones, tablets, or laptops) will be prohibited during class.
Why? When class begins, please put your electronic devices away until after the conclusion of the class hour.
Exceptions to this policy can be made as an accomodation for those with documented disabilities.

6  Schedule of topics

The following is an approximate schedule of topics to be discussed during the course. See the web page schedule for daily details.
Week Topic Week Topic
1 Intelligent Agents 8 Bayesian Networks
2 Search 9 Learning
3 Heuristic Search 10 Decision Trees
4 Adversarial Search 11 Decision Theory
5 Propositional Logic 12 Markov Decision Processes
6 First-Order Logic 13 Reinforcement Learning
7 Probability 14 Philosophy of AI

7  Assignments and activities

Grinnell College defines a 4 credit class as an expected minimum of 12 hours of academic work per week (including class time). With 4 hours of class and lab per week, you should plan to spend approximately one hour preparing for each regular class (reading 7.1.1 and completing your journal 7.1.2), 30 minutes preparing for lab (by reading the assignment 7.3), and using the remaining time (at least 4.5 hours) to complete your lab assignment. Of course, there will be daily and weekly variations in these workloads. You should let me know if you find any of these activities consistently take you substantially longer.

7.1  Reading

Our class meetings will be heavily discussion-based, and this will require a significant amount of preparation on your part. Most of this will consist of careful reading and reflection on the material through the use of a reading journal.

7.1.1  Preparation

You should check the class schedule for updates and read any material that has been assigned before coming to class. Reading the textbook entails the following:
Overview
You should quickly skim through the reading once to get an overview of the material to be covered, paying particular attention to subject headings and topic introductions. This first "reading" can (and should) be very quick. (Expected time: 5 minutes.)
In-Depth
Next, read the material closely. Try to understand what individual steps of algorithms or mathematical proofs are accomplishing. Not everything will make sense at this point, but hopefully many things will. (Expected time: 40 minutes.)
Final Notes
After carefully reading the material, mentally review and try making a few notes to yourself about what you think are the most important concepts being covered, as well as any questions you have. Practicing this mental retrieval without consulting the text will help improve your long term recall. (Expected time: 5 minutes.)
Many of the readings are fairly short (about 13±6 pages, or roughly 30-40 pages per week), but can contain mathematics or algorithms that require a moderate amount of study. Make your best effort to understand the material and come to class with any questions you may have. Then we can proceed with discussion, examples, and exercises that enhance and clarify the material in class.

7.1.2  Reading journal

To help focus your efforts and give us a basis for discussion, you will be provided short a list of questions to answer for each day's reading. Reflecting upon your responses to the questions will help to give you a deeper understanding of the most important concepts surrounding each topic. See the accompanying "Reading Journal" document on the course web page.
Your responses are due by 11:59 p.m. the night before class. No late responses will be accepted. You will submit your responses electronically to a private journal via our PioneerWeb course page, where I will be able to give you feedback on your writing.
While these low-stakes writing assignments are technically "informal," they must reflect a certain level of engagement and evidence of thinking seriously about the material.
Responses will be graded using the following ternary scale:
PLUS Exhibits exceptional clarity, insight and/or creativity.
CHECK Exhibits evidence of processing and studying concepts.
MINUS Superficial response or insufficient evidence of engagement.
Because I expect most entries will receive a check, I will comment on your journal to report a plus or minus. You should expect to discuss the issues raised in your reading journal entries during class.
When the class sections are large, I may only grade 50% of your reading journal entries (to be sampled randomly).

7.2  Participation

Because much of our work in this course involves collaboration and discussion, you will be evaluated on your participation.
Participating in class involves: Students who regularly meet these criteria can expect to earn a 3.33 (i.e., a B+) for their participation grade. I will reward students who regularly provide significant insights or guide discussion in productive ways with a higher participation score. Students who fail to participate regularly or who participate in counterproductive ways (e.g., by dominating the conversation or making inappropriate comments) can expect to earn a lower score. Note that participation also encompasses activities on Piazza (see §12.1), such as asking good questions or answering them.

7.3  Lab assignments

Lab-based programming assignments use algorithms from our reading to address interesting problems.
Your reading for each lab is the lab assignment itself. It is imperative that you come to lab prepared, having read the assignment and readied any questions you may have. Bring a printed copy of the lab assignment with you.
We will launch our lab assignments with in-class warm-up lab exercises. If you do not complete these exercises in class, you are strongly encouraged to finish them before beginning the assignment itself.
Instructions regarding collaboration will be given with each assignment. While you are welcome to discuss course concepts with others, solutions and any work you do and submit should be that of you and your group alone. (See Academic honesty, section 10 below.)
Most work is required to be done with partners, which will be assigned. Working with a partner will help ensure you can take some advantage of the principle that "Given enough eyeballs, all bugs are shallow."4 Working with an assigned partner will increase the chances of being exposed to different ways of thinking and problem-solving as well as help you practice the skills you'll need in the real world, where you typically do not get to choose your coworkers.
Working collaboratively means everyone whose name appears on a submission has contributed to and understands all parts of the work. I reserve the right to briefly interview you to ask questions about your work. The kinds of questions I would ask will be easy for anyone who contributed to and understands their submission.
All group members are jointly responsible for ensuring a submission is made. (For example, if your partner told you he/she/they would submit a lab but forgets to, you will both receive the late penalties.) For this reason, I recommend submitting collaborative labs while you are sitting together. Moreover, pair submission helps prevent incorrect files from being uploaded.
You will use Piazza (see Section 12.1) for questions related to the course. If a post is related to an assignment, it must adhere to the standards of collaboration for that particular assignment.

7.4  Exams

As opportunities for you to demonstrate your agent design prowess and grasp of artificial intelligence principles, there will be three hour exams and a cumulative final exam.
Hour Exam 1 Friday 23 February
Hour Exam 2 Friday 16 March
Hour Exam 3 Friday 20 April
Final Exam TBD
Do not make travel reservations that will conflict with your final exam schedule. No rescheduling will be allowed.

8  Partner responsibilities

Work on labs and projects in this course is often done collaboratively (in pairs, occasionally in a group of three). Many studies suggest substantial benefits to learning with this type of group work. However, to be successful, collaboration requires partners to participate actively .
As noted above, partners should actively participate throughout class sessions and make arrangements to meet in the lab outside of class to finish labs or projects, as needed. Each partner has an obligation to attend and contribute during planned out-of-class sessions.
Failure to meet one's responsibilities to a group negatively impacts the individual and impedes the partner's education. Thus, except in exceptional circumstances (e.g., illness, family emergencies, serious injury), failure to follow through with one's responsibilities as a partner may have a significant impact on one's course grade and/or one's standing in the course.

9  Grading

My goal is for everyone taking this course to be able to demonstrate familiarity and fluency with the course concepts. I would be very happy if you all met the goals above and received "A"s. The following weighting will provide a basis for evaluation
Programming Assignments 35%
Participation 10%
Reading Journal 15%
Exams 30%
Final Exam 10%
with the caveat that you must pass the final exam to pass the course.
Grading will be based on the College's Grading System with the following brackets:
Average at least Receives Grade Points Definition
3.75 A 4.00 Excellent
3.50 A- 3.67 Excellent
3.16 B+ 3.33 Good
2.83 B 3.00 Good
2.50 B- 2.67 Good
2.16 C+ 2.33 Satisfactory
1.50 C 2.00 Satisfactory
0.50 D 1.00 Passing
0.00 F 0.00 Failing
To compensate for the unpredictability of learning exercises' outcomes, the brackets (left column) may be adjusted downward (but not upward).

10  Academic honesty

You, as students, are members of the academic community. Both the College and I expect the highest standards of academic honesty. (See the Grinnell College Student Handbook, e.g.,
http://catalog.grinnell.edu/content.php?catoid=12&navoid=2537\#Honesty_in_Academic_Work). Among other things, this means clearly distinguishing between work and ideas that are your own, and those that should be attributed to others. I expect you to follow the collaboration policies given in this syllabus and on particular assignments. In particular: As an instructor, I will meet my obligation to bring any work suspected to be in violation of the College's Academic Honesty Policy to the attention of the Committee on Academic Standing, after which there is no recourse with me.

11  Deadlines

Assignments are due at the specified time and date. Assignments due on days for which you have a prior excused absence must still be submitted by the deadline.
Absolute deadline: All work (except the final) must be submitted by Sunday 13 May at 5 p.m. (Note that this is earlier than the institutional deadline).
A late penalty of one letter grade (one grade point) will be deducted in each subsequent twenty-four hour period after the deadline.
While these late penalties may seem extreme, we make two contradictory observations:
  1. In the software production world, missing critical release deadlines can have significant consequences for individuals, teams, or even entire companies. Planning carefully with deadlines in mind is a good habit to develop. After all, in the academic world, missing assignment deadlines has consequences not only for your grade, but impacts your time available for other coursework and can negatively affect your overall, general wellness.
  2. With each assignment being worth approximately [40%/(12assignments)]=3.33% of your grade, a one day late penalty amounts to a [3.33%/4]=0.83% reduction in your overall grade, which is 4 grade points×0.83%=0.033 grade points overall. Using the grade brackets above, in most cases it would take ten days of penalties to lower your letter grade. Hardly extreme.
The deadline of 11:59 PM for laboratory work and reading journals is not arbitrary. It is intentionally 9 hours before a typical class day starts at 9 AM. When deadlines were the start of our class, I got submissions at extremely unhealthy hours and comatose students the next day, likely because many people are unable to stop working until something functional (or nicely polished) results. Therefore, I establish this deadline to promote your ability to wind down, get eight hours of sleep, and eat breakfast before going to class.
Exception: Deadlines for MathLAN computer-based assignments will automatically be extended by at least one twenty-four hour period if MathLAN is down for an unscheduled period of three or more hours during the two days preceding the assignment due date.

12  Getting Help

12.1  Discussion with Piazza

For class discussion, we will use Piazza, which is designed to get you help fast and efficiently from your classmates and myself. Rather than emailing questions to me, please to post your questions on Piazza, which is linked directly from the course web, P-Web, or at https://piazza.com/grinnell/spring2018/csc261/home.
If you ask me a homework-related question before or after class, I'll likely respond, "Ask on Piazza." Here's why (in order of increasing importance):
  1. You get the opportunity to write a precise question.
  2. At that time, I'm usually mentally invested in getting ready for class or clearing out for the next class.
  3. I use the opportunity to think carefully and review any related material (e.g., assignment, code, textbook), so that I can give the most complete and accurate answer I am able.
  4. Everyone in the class gets the benefit of my answer.
In short, it's not because I don't like you or want to frustrate you. I really do try to answer Piazza questions as quickly as possible.

12.2  Office Hours

Please come by during my office hours to discuss the course content, get any extra assistance, or just talk about how the course is going. Note that if multiple students have similar questions or issues, we may work together as a group. If you cannot attend a scheduled office hour, you may also email me to schedule an appointment; please include 3-4 possible meeting times so that I can pick one that works for me.
Half of my office hours are open, drop-in times for students with quick or unplanned questions. If there is anyone waiting, I try to will limit our time to ten minutes to respect others' time. The other half may be reserved by signing up for a 15 minute slot on the bulletin board outside my office.
I enjoy getting to know my students, but I prefer to reserve office hours for academic matters. If you would like to have a more informal conversation, I would be delighted to accept an invitation to eat lunch with you at the Marketplace.

12.3  Email

Email is also a reliable way to contact me, but please allow 24 hours for a response (except on weekends, when I do not regularly read email). You may also call me in my office (x9812) for more urgent matters (e.g., you will be missing a lab due to illness).
With thanks to Janet Davis for the "Reading Suggestions" and other key policies. Henry Walker wrote partner responsibilities (8) in CSC 161: Imperative Problem Solving and Data Structures under a Creative Commons Attribution-NonCommercial-Share Alike 4.0 International License.
Copyright © 2011, 2013, 2015, 2018 Jerod Weinman.
ccbyncsa.png
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 4.0 International License.

Footnotes:

1Mueller, P. A., & Oppenheimer, D. M. (2014). The pen is mightier than the keyboard: Advantages of longhand over laptop note taking. Psychological science, 25(6), 1159-1168.
2Carter, S. P., Greenberg, K., & Walker, M. S. (2017). The impact of computer usage on academic performance: Evidence from a randomized trial at the United States Military Academy. Economics of Education Review, 56, 118-132.
3Sana, F., Weston, T., & Cepeda, N. J. (2013). Laptop multitasking hinders classroom learning for both users and nearby peers. Computers & Education, 62, 24-31.
4This principle is dubbed Linus's Law by Eric S. Raymond in The Cathedral and the Bazaar, O'Reilly Media, 1999, p. 30.