ICS 361 -- Artificial Intelligence Programming
Homepage/Syllabus -- Fall 2016
Note: Most course information is posted on Laulima.
Lectures: Tu & Th, 1:30-2:45p, Holmes 242.
Instructor: Prof. Nancy Reed, firstname.lastname@example.org, POST 314E , phone: 956-8498,
Office hours: Tuesdays & Thursdays 12-12:30pm in 314E POST, or by appointment.
Teaching Assistant: Branden
Ogata, email@example.com, Office: POST
Office Hours: 3:00pm-5:00pm on Tuesdays and Thursdays
or by appointment.
Land of Lisp, Learn to Program in Lisp,
One Game at a Time!
by Conrad Barski, M.D. No Starch Press.
October 2010, 504 pp. (paperback)
Thinking as Computation: A First Course by
Hector J. Levesque,
slides and supplementary material 978-0262016995, The MIT Press, (Jan 6, 2012)
Available online (do not buy):
AI Algorithms, Data Structures, and Idioms in Prolog, Lisp,
and Java,, George F. Luger and William A. Stubblefield,
Optional Reference Material:
Artificial Intelligence, A Modern Approach , 3rd Edition, by S. Russell & P. Norvig, Prentice Hall, 2009.
Artificial Intelligence: Structures and Strategies for Complex Problem Solving,
6th edition by George F. Luger, Addison Wesley, 2009.
Practical Common Lisp, Peter Seibel,
Apress, 2005, ISBN: 1590592395,
ANSI Common Lisp, Paul Graham, Prentice Hall, 1995,
Common Lisp, A gentle introduction to symbolic computation
, Touretzky [out of print, link to online copy
Programming in Prolog, 4th edition, Clocksin &
Mellish, Springer-Verlag, ISBN 3-540-58350-5.
Learn Prolog Now http://www.learnprolognow.org/
The objective of the course is to expose students to concepts in
artificial intelligence and the functional and logic programming
paradigms. This is fundamental knowledge for all computer science
students as described in the current ACM (Association for Computing
Machinery) curriculum recommendations. Artificial intelligence has
only been available to seniors (400 level) and infrequently offered at
UH. The addition of this course will bring the fundamentals of
artificial intelligence along with alternative programming paradigms
to more students. This course integrates with the new curriculum and
provides an alternative to ICS313, programming language theory, which
is a requirement for ICS majors.
By the end of the course, students should have achieved the following
- SO#3: An ability to use sound development principles to implement
computer-based and software systems of varying complexity, and to
evaluate such systems.
- SO#8: An ability to use current techniques, skills, and tools
necessary for computing practice.
Understand the fundamental concepts and algorithms of Artificial
Intelligence including searching, planning, problem solving, logic and
An ability to implement Artificial Intgelligence algorithms in
both functional (e.g. Scheme or Common Lisp) and logic
(e.g. Prolog) programming languages.
An ability to recognize when AI techniques might be successfully applied
to a problem and when a problem is beyond the current state-of-the-art in AI.
Develop an appreciation of the problems, current limitations and
future potential of Artificial Intelligence.
Prerequisites inclulde a C or better in both ICS 212 - Program Structure
and ICS 241 - Discrete Mathematics for Computer Science II.
Grades in this course are based on exams and assignments. There will be (7-9)
written and/or programming assignments (30%),
one written midterm examination (25%), and a final
examination (35%). Participation in class discussions
counts 10% toward your grade.
Programs must execute and meet the assignment specifications to earn full
credit. Good code-writing style, comments and documentation are also
Note: A reasonable attempt at ALL assignments AND the
project must be submitted to pass the course. I.e. failure to
submit any assignment before solutions are posted, is an automatic
Grades are based on an absolute scale
As=90-100%, Bs=80-89.9%, Cs=70-79.9% (74% for C), Ds=60-69.9%.
If you earn 74% or more, then you will get at least a C.
See details in
Exams and Grading,
If you feel you need accommodations due to special circumstances,
please contact the KOKUA Program (V/T) at 956-7511
or 956-7612 in room 013 of the QLCSS, and/or speak with me privately to
discuss your specific needs. I am happy to work with you and the
KOKUA Program to provide the support you need to succeed in this course.
Class Work and Academic Conduct
Association for Computing Machinery is our primary professional organization.
Student membership is not expensive, and there are many benefits of membership.
You are bound by the
ACM code of ethics.
Exams and quizzes must be done individually. Assignments are
to be done individually. Discussing approaches to programming
assignments with classmates is fine. Copying answers, sharing code,
submitting solutions from the Internet or other sources without proper citation as your own
work, are not permitted.
If you use ideas from any source to complete your
assignments, including printed and electronic, you must cite the
source in your assignment/program files. For example, if you use
a book, note the title, author(s) and page numbers. For a web page,
enter the URL and date accessed. Journal papers, conference
proceedings, and other sources must be identified with the conference
name, location and publisher in addition to the title, authors and
page numbers. If you use exact text, it must be properly
quoted. If you use work you did for a previous course, this must be
noted at the top of the page.
All students at the University of Hawaii are bound by the student
conduct code posted at
What does this mean to you? Does it mean that its OK to cheat if you
don't get caught?
It is each student's responsibility to prevent others from
seeing and/or copying their work, and to report incidents of
suspected cheating at UH. Cheaters will be reported and risk
expulsion from the university.
I hope you learn a lot and enjoy this course. Go
back to the
Top of this page
(c) N. E. Reed, 2005-2016