Published using Google Docs
2016 Fall 380 Syllabus Guerin
Updated automatically every 5 minutes

Computer Science 380

Artificial Intelligence

Course Description:

History, intelligent agents, classical search, game-playing, declarative programming, reasoning under uncertainty, and planning.  Programming assignments will incorporate techniques covered in lecture and programming languages appropriate to A.I.

Textbook:

  1. Required: Artificial Intelligence: A Modern Approach, Russell and Norvig, 3th Edition, Pearson 2009.  ISBN-10 0136042597
  2. Required: Learn You a Haskell for Great Good, Lipovača, 1st Edition, No Starch Press 2011.  ISBN 978-1-59327-283-8 (Available for free online at http://learnyouahaskell.com/)

Coordinator:        Dr. Joshua T. Guerin


Prerequisites:

CSCI 302 and 325.


Program Educational Objectives--This course addresses the following program educational objectives:

A.        An ability to apply knowledge of computing and mathematics appropriate to the discipline.

B.        An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.

D.        An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.

I.         An ability to use current techniques, skills, and tools necessary for computing practice.

J.        An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.

K.        An ability to apply design and development principles in the construction of software systems of varying complexity.


Expected Course Outcomes:  The student will be able to

  1. Employ common search, planning, and game-playing algorithms in order to solve real-world problems.
  2. Understand the conceptual and computational trade-offs between different algorithms and formal representations of knowledge in artificial intelligence.
  3. Use multiple programming paradigms (e.g., functional, logical)  to model and solve common problems in the field of artificial intelligence.
  4. Represent real-world problems formally in first-order and propositional logic.
  5. Use logical languages and tools including CNF SAT, Horn SAT, and answer set solvers to model knowledge and solve problems in a declarative manner.

Topics:

  1. Functional programming preliminaries
  1. Haskell crash course
  1. State spaces and classical search
  1. Informed and uninformed search
  1. Local search algorithms
  1. Hill climbing, simulated annealing, local beam search, genetic algorithms
  1. Two player games/adversarial search
  2. Monte Carlo algorithms
  3. Logical programming/constraint satisfaction problems
  1. Horn satisfiability
  2. CNF satisfiability/SAT solvers
  3. Answer set programming
  1. Reasoning under uncertainty
  1. Planning with Markov Decision Processes
  1. Other contemporary topics from artificial intelligence as time permits


Computer Science 380                                                                Fall 2016

Foundations of Computer Science I

Instructor:        Dr. Joshua T. Guerin        email: jguerin@utm.edu        Phone: (731) 881-7246

        Office: EPS G3-D        Web page: www.utm.edu/staff/jguerin        

Office hours:        See My Schedule


Grading:        Letter grades in this course are assigned using the following scale:

A - 90%--100%

B - 80%--89%

C - 70%--79%

D - 60%--69%

F - 59% or below.

Your grade is calculated based on the following weights:

Assignment Type

Percentage

Homework/Programming Assignments

50%

Final Project

15%

Exams (2)

30% (15%, 15%)

Attendance/Participation

5%


Development Environment/Required Software:

This course will require programming in a variety of languages appropriate to the field of artificial intelligence.  Software and languages required for assignments will be announced by the professor when the assignments are given.  All required software will either be supplied or will be compilable on lab machines.

Software packages that will most likely be required this semester include:


Assignments

As is the case in most programming courses, all submitted software must compile without errors and run without crashing on the lab computers or it will not be graded.  Failure to adhere to assignment specifications may result in a reduction of an assignment’s grade or (in extreme cases) cause an assignment not to be graded.

Homework/Programming Assignments:

Homework and programming assignments will be assigned regularly over the course of the semester, with at least one assignment every 1-2 weeks.  Assignments will consist primarily of programming assignments, with possible written assignments (where appropriate) to supplement learning.  For most programming assignments this semester a specific language, tool, or paradigm will be assigned.

The primary purpose of homework/programming assignments this semester will be to bolster overall programming skills, reinforce materials discussed in class, and give the student the skills to adapt to a wide range of modeling and problem solving methodologies in the field of artificial intelligence.

Unless otherwise specified in the assignment, assignments given are considered individual work, and all work turned in must be the student’s own work.  Copying, viewing, editing, or the work of other students for individual programming assignments is considered a violation of the course academic integrity policy.

Final Project:

Towards the end of the semester we will be conducting a two-player game tournament (ai agent vs. ai agent).  All students this semester will be required to enter a single agent into the competition for credit for the final project.  The instructor will select a two player competitive game for the competition and will provide (1) a software framework for conducting the tournament and (2) sample software agents that students may use for inspiration.

Roughly half-way through the semester the final project will be delivered with complete specifications, including all related software.  Students will have the remainder of the semester to work on constructing their agent.  Students are welcome to create as many agents as they wish in order to select their best (single entry) for the competition.  Students are also free to conduct informal tournaments against each other’s agents, so long as they do not violate the terms of academic integrity in this course.  (I.e., Agents can be compiled against the competition environment and ran without direct interaction with each other’s code.)

Note that this is a long-term project, and is not intended to be the only assignment that will be given during the second half of the semester.  Please remember to start work early and work consistently over the course of the semester on your agent(s).

Exams:

Exams are closed book, closed notes.  Use of electronic or communication devices (cell phones, PDAs, laptops, etc.) is strictly prohibited unless otherwise indicated by the professor.  Exams are pen-and-paper and may consist of a mix of the following: fill in the blank/short answer, writing brief proofs or explanations, and writing small amounts of code or pseudocode.

Attendance:

Because of the way that new concepts build upon previous tools and skills attendance in a computer science or math class is particularly important to ensure mastery of material.  Attendance will be recorded at the beginning of most lecture periods, and will count as a portion of your final grade.  Students who arrive after attendance is taken up may not sign in for the day for credit for any reason unless otherwise instructed to do so.  Any attempt to modify the attendance sheet after the fact or to sign in for another student will be considered a breach of academic integrity.

When you are absent or tardy it is your responsibility to make sure that you learn the materials covered in class, and you are still responsible for any assignments that are announced that day, or are due that day.  It is the student’s responsibility to find out what was missed during class.  It is the instructor’s very strong recommendation that students acquire notes from at least one other students for any days missed.

Late work:

All assignments must be turned in before their respective deadline.  In the event of a documented, university approved absence (illness, class outings, military service, etc.) the professor may allow submission of late homework or exams.  Those having to miss class due to official school functions (such as athletic events or school trips) may make up missed items, provided that they check with the teacher ahead of time and schedule the make up work ahead of time.

Those who miss a class period or exam due to illness should contact me as soon as possible by email, and bring a doctor's excuse if they wish to make up their work.  Timing of made up work will be arranged outside of class with the professor.


Use of Electronic Devices:

In order to provide the best possible learning environment for all students you are asked to forgo the use of electronic devices (laptops, tablets, cell phones, recording devices, etc.) during class.  Special permission to use a specific electronic device may be granted on an individual basis, but it is the student’s responsibility get special permission from the instructor before use.


Piazza:

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the SI Leader, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.

Find our class page at: https://piazza.com/utm/fall2016/csci380

Email:

Outside of class, I consider email to be another primary form of communication.  I will use your university provided email address for a number of possible course-related reasons including adjusting minor assignment parameters or providing clarifications.  You are expected to remain current with your university email.

Best practice concerning university email is to check at least once a day.


Academic Integrity:

Academic integrity is the hallmark of University studies, and is key to a successful professional career.  Students are permitted to work together on written homework in study groups, however all work turned in must be the student’s own work.  This includes all computer code, calculations, figures, proofs, or other work.  Copying the work of another student or any other source directly is not allowed, and is considered plagiarism.

Students are allowed to discuss programming related concepts at a high-level.  Discussions related to programming methods and solutions to assignments are also allowed in general terms.  However, you must design and write your own code.  

As a rule of thumb: if it can be discussed in plain English (including discipline-related technical jargon) it is probably OK.  If you are viewing another student’s work directly, or editing their work, or allowing someone else to do the same you are probably in violation.

Violations of Academic Integrity:

If one or more students are found to be in violation of the academic honesty policy the professor reserves the right to seek disciplinary action as allowable by university policy.  Such actions may include (but are not limited to) giving the student a zero on the assignment and reporting them to the office of student affairs.

In order to ensure your safety please direct all questions related to academic integrity to your professor before a (potential) infraction is committed.

In the event of a breach of academic integrity between one or more parties the instructor reserves the right to assign guilt to all involved parties.  In other words, sharing or allowing access to one’s work on individual assignments is also considered a breach of academic integrity and is punishable by the same terms.

Please protect yourself and your work: don’t share files, allow others to gain access to your work, publish your work online during the semester in any way that is publicly viewable, leave your workstation unlocked, or leave print-outs of work in accessible areas.


Academic Accommodation:

Any student eligible for and requesting an academic accommodation should provide to the instructor a letter of accommodation from the Student Success Center within the first two weeks of the semester, or as soon as can be accomplished.