\documentclass{article}

\usepackage{fullpage}
\usepackage{url}
\usepackage{tabularx}

\title{\textbf{CS 380: Introduction to Artificial Intelligence}\\Fall 2006}

\author{}
\date{}

\begin{document}

\maketitle

\vspace*{-0.5in}

\begin{minipage}[t]{0.48\hsize}
  {\large \textbf{Instructor}}\\\\
  \begin{tabular}{rl}
    \multicolumn{2}{l}{Evan A.~Sultanik} \\
    \multicolumn{2}{l}{Department of Computer Science} \\
    \multicolumn{2}{l}{College of Engineering} \\
    \textsc{Offices:} & Bossone 605; \textit{and} \\
    & Drexel/ACIN Center (Suite 300) \\
    & 200 Federal Street, Camden, NJ \\
    \textsc{Tel:} & +1 215 919 7234 \\
    \textsc{Fax:} & +1 215 895 1582 \\
    \multicolumn{2}{l}{\url{evan@sultanik.com}} \\
    \multicolumn{2}{l}{\url{http://www.sultanik.com/}}
  \end{tabular}
\end{minipage}
\begin{minipage}[t]{0.48\hsize}
  {\large \textbf{Course Information}}\\\\
  \begin{tabularx}{\hsize}{rX}
    \textsc{Time:} & M/W/F 15:00--15:50 \\
    \textsc{Place:} & Crossings 153 \\
    \textsc{Office Hours:} & Any time, by appointment \\
    \textsc{Textbook:} & Russell \& Norvig, \textit{Artificial Intelligence: A Modern Approach}, the Prentice Hall Series in Artificial Intelligence.  ISBN 0137903952
  \end{tabularx}
  \url{http://gicl.cs.drexel.edu/people/evan/classes/ai_fall06/}
\end{minipage}

\section*{Introduction}

I was asked to teach this class less than a week before its start, so
I apologize for any omissions and/or errors you might find in this
syllabus.  Due to extenuating circumstances (\textit{i.e.},~a
conference overseas) I will be away for the first four classes.  The
first two of these classes will be taught by Dr.~Modi and the third
and forth will be taught by Dr.~Regli.  I will return on October
$4^{\mbox{\tiny th}}$ to take over for the rest of the term.  If you
have any questions or concerns about my substitutes' lectures,
questions about the course, or you simply want to have an animated
debate over the validity of the Categorical Imperative as a moral law
that is unconditional for all agents, feel free to call me at the
number above (it will be working while I am away).

Although Artificial Intelligence~(AI) is meant to automate tasks
requiring intelligent behavior, from a pragmatic standpoint it exists
to create solutions for problems that are so complex an optimal
solution technique is either unknown or infeasible.  This course is
meant to provide you with an introduction to some of the techniques AI
uses to solve such problems.  We will be largely learning by example,
as I feel this is one of the best (and most useful) ways in exploring
the topics.

I realize this course has a reputation of bringing with it a large
workload; while there will be several large programming assignments,
you will be given ample time in which to complete them.  It is also my
intention to make the assignments as fun and relevant as possible
(\textit{i.e.}, lots of game AI).

\section*{Prerequisites}

Students are assumed to have an introductory knowledge of set theory,
boolean logic, and proofs.  The course description for CS380 dictates
that it shall cover programming in AI languages.  Therefore, students
are expected to either have previous experience in or a willingness to
learn languages such as Lisp/Scheme, Prolog, and Java.  While some
introduction and overview of these languages will be given in class,
it should be noted that this is an ``Introduction to AI,'' not a
full-blown ``Introduction to Lisp;'' students are expected to learn
the syntax and semantics of these languages on their own in order to
complete the assignments.

\section*{Attendance}

Attendance is \emph{not} mandatory, however, it is highly recommended;
much of the material presented will either be on the board or from
foils and will therefore not be available online.  If a student is
able to grok the material more efficiently by reading the book on his
or her own time, then I see no reason why his or her time should be
wasted in lecture.  If such a student ends up faring poorly in his or
her assignments and examinations, however, he or she will not be given
as much leeway as those that have attended class regularly.

Use of laptops in class will, under almost all circumstances, not be
permitted.  From my experience as an undergraduate, I only remember
seeing one or two students using computers productively during class.
Everyone knows you're just trolling MySpace, talking on AIM, or, worst
of all, playing WoW.  Not only is this disrespectful to your
instructor, it's very distracting for the rest of the students who
might be enticed to glance at your screen to check out your drunken
rendition of \textit{Dragostea Din Tei} that you posted on YouTube
last weekend.  If you really want to use your laptop for something
legitimate (\textit{e.g.},~taking notes) please come and talk to me
before class.

Any cellphone that is audible during class shall be passed to and
subsequently answered by me.  If the cellphone has a speakerphone
feature, it shall be used such that the entire class can hear my
conversation with your mother and/or significant other; I assure you
that he or she will never again call back during class.  To be fair,
if my phone ever audibly rings during class the entire class may
answer.  If you are expecting a call, please be courteous and set your
phone to vibrate.  When you receive a call, please answer it in the
hallway.

\section*{Assignments}

There will be four assignments, each centered around a core topic of
the course.  Each assignment will have a written portion (usually
problems taken from the book) and a programming portion.  The
programming portion for each assignment will be in the language
traditionally used for that AI topic.

\begin{enumerate}
  \item \textbf{Search:} You will write a solver for the 8-puzzle.
    This assignment will be completed in the functional language Lisp.
    A brief tutorial on Lisp will be given during the first few
    classes.  You will be given utility functions for interacting with
    the game board.
  \item \textbf{Game Playing:}* You will write a game-playing agent for
    Othello/Reversi\footnote{\url{http://en.wikipedia.org/wiki/Reversi}}.
    This assignment will be completed in Java, as it is a common
    language used for agents.  Code will be provided for the user
    interface and game logic; you will only have to code the AI.
  \item \textbf{Logic:} A series of problems that will serve as an
    introduction to Prolog (and possibly Jess).  Most likely a CSP
    such as the game
    Sudoku\footnote{\url{http://en.wikipedia.org/wiki/Sudoku}}.
  \item \textbf{Planning:} You will learn how to solve a wide array of
    planning and scheduling problems using the tool SHOP.
\end{enumerate}

*During the last day of class we will have a competition between all
 of the students' Othello agents created for Assignment 2.  As an
 incentive to improve one's agent throughout the term, one will be
 able to earn back up to 50\% of his or her points from Assignment 2
 by resubmitting the assignment for the competition.  Participation in
 the competition is mandatory, however, the success of one's agent
 will have no affect on his or her grade.  We will try and have all
 pairs of agents compete, however, this will result in ${n \choose 2}$
 matches (where $n$ is the number of agents), so we may have to resort
 to single elimination. There will be prizes for the top three agents.

All programming assignments must be executable on \texttt{Tux}.
Accompanying documents (\textit{e.g.},~READMEs) must be either plain
text, Postscript, or PDF.  Programming assignments shall initially be
submitted through E-mail with a subject starting in ``CS380''.
Eventually (once Drexel decides to get me access to the system)
programming assignments shall be submitted through WebCT.  All written
assignments must be handed in as hard copy.  They may be submitted
either in class or in my mailbox in University Crossings.  All
assignments are due \emph{before} the start of the class on the day
they are due.  Solutions to the assignments will often be discussed
during the class after they are due, therefore, late submissions will
receive zero credit.

You may earn up to 5\% extra credit on the written portion of each
assignment simply by typesetting the document in
\LaTeX\footnote{\url{http://www.latex-project.org/}}.

Many of the assignments are long-term; you \emph{must} start early!
Some of the more ambitions assignments will require a status report
(in the form of a short E-mail) a week before their due date.  Expect
on budgeting at least 10 hours a week for this course.

\section*{Grading}

The midterm and final exams will each be worth 20\% of your grade.
The final exam will be cumulative.  60\% of your grade will be based
on the four assignments (5\% for the written portion and 10\% for the
programming portion of each).

If you \emph{participate} in class, \emph{seek help} when needed, and
make an \emph{effort} in completing your assignments, I assure you
that you'll get a good grade, so don't worry.  If you can prove to
me---through any means (not limited to assignments and
examinations)---that you have a solid grasp on the material by the end
of the course, that's on what I'll base your grade.  If you're worried
about your grade, come and talk to me.  Do you \emph{need} an
\texttt{A}?  With enough notice I can always let you know what is
needed of you in order to earn your desired grade.  What I
\emph{can't} do is help you if it's the end of week 9, you have done
poorly on the assignments, hardly ever showed up for class, and it's
the first time you're talking to me about your situation.  Please seek
help and guidance early.

\section*{Academic Honesty}

The most efficient way to earn an \texttt{F} is to cheat.  We know
that many of the answers to the written assignments are a Google
search away... just avoid that temptation; you won't learn anything
and there's a possibility that your matriculation at Drexel could be
terminated.  Any type of code sharing (\textit{i.e. plagiarism}) will
result in an \texttt{F} for that assignment, if not for the course.
You are free (and encouraged) to discuss the assignments with other
students outside of class; just don't share your answers/code.  The
amount of knowledge required to sufficiently transform another
student's solution into a different, distinguishable solution is the
same as that which would have been required to solve the problem in
the first place.

\vspace*{\fill}

\pagebreak

\noindent\begin{tabularx}{\hsize}{r|X|c|X}
  \textsc{Date} & \textsc{Lecture Topic} & \textsc{Chapter(s)} & \textsc{Assignment} \\ \hline \hline
  09-25 & \textbf{Dr. Modi:} Course Intro.; AI History; Intro. to Agents & 1 & Assignment 1 Assigned \\
  09-27 & \textbf{Dr. Modi:} Agents \& Intro. to Search & 2--3.2 & Become acquainted with a Lisp interpreter (either by installing your own or running \texttt{clisp} on \texttt{tux})\\
  09-29 & \textbf{Dr. Regli:} Lisp Intro. \& Uninformed Search & 3 & Assign optional Lisp exercises (will be corrected but not graded)\\ \hline
  10-02 & \textbf{Dr. Regli:} Continuation from previous lecture. & 3 & \\
  10-04 & Wrap up uninformed search; introduce informed search. & 4 & \\
  10-06 & Informed search & 4 & Optional Lisp exercises due. \\ \hline
  10-09 & Informed search \& adversarial search & 4 \& 6 & Written portion of Assignment 1 due \\
  10-11 & Adversarial search & 6 & \\
  10-13 & Adversarial search & 6 & Programming portion of Assignment 1 due \\
\end{tabularx}\\\ \\

\noindent The remainder of the schedule will be given during week 2.

\end{document}