Syllabus for CSC 44

Winter 2004

Monday, Wednesday and Friday 10:00 - 11:05

Sudikoff 01

Instructor

Prof. Stephen  Linder 
Office Sudikoff 216
Email
Phone 603-646-1613
Office Hours  Monday, Tuesday and 
Wednesday 5:00 - 7:00 PM

TA

Zhengyi Le 

Office  
Email Zhengyi.Le@Dartmouth.EDU 
Phone  
Office Hours  Tuesday   1:00 - 4:00 PM

Thursday 6:00 - 9:00 PM

Course Overview

The following topics will be covered in varying detail:

Goal

The course has two foci: 

  1. provide an overview of the main topics associated with artificial intelligence so that you can have an intelligent conversation with a person in the field and
  2. learn in intimate detail how to implement a few AI concepts.

The first goal is facilitated by assigned reading, some short programming exercises and class discussion. As a motivation tool, there will be a short quiz at the start of each class on the reading for that day. 

The second goal is facilitated by two large team project. The first project will entail the use of robot and will be due in the second half of the term. Because you are working with a real system that is not deterministic this project will be more difficult than the second project which is based on computer simulations. The second project is due at the end of the semester.

Pedagogy

Learning that actively engages students in material is more effective than listening to monotonous lectures. I am a proponent of active learning, which flies in the face of traditional passive learning by involving students directly in the learning process ( I got this line from my student Josh.)  If you want to read more about this approach read my paper Facilitating Active Learning.

Not all material required for completion of your programming assignments will be covered in class. Students are expected to independently read technical documentation and to search the web for answers to technical questions that might arise as they work on their projects. You are encouraged to share the fruits of your research through in-class presentations and use of the class newsgroup.

In the past students have lamented that assigned projects were too difficult. Some even went so far as to intimate that the instructor would not be able to implement the assigned projects. These projects have purposely been designed to be interesting and engaging; interesting projects are usually challenging. While having challenging projects might be initially painful, in the long run you will better understand how to develop software and solve problems. 

All students are expected to participate in class discussions and in addition provide their rationale for answers. Active participation is more important than always being correct. 

At times I will critique your answers to questions or work in the presence of other students, especially those on your project team. While this may be uncomfortable for some of you, it is no different than situations that you can expect to find yourself in when you are in the work place. If you feel I have made an inappropriate remark please talk to me as soon as possible so I can attempt to rectify the situation. 

Text Book

Required Textbook

Artificial Intelligence- A Modern Approach (2nd Edition)
by Stuart J. Russell  and Peter Norvig 

Publisher: Prentice Hall; 2nd edition (December 20, 2002)
ISBN: 0137903952 

Amazon.com - $84.00

Website

 

Assessment of Student 

Students will be evaluated using three metrics grading will consist of three parts

quizzes  at the beginning of class meeting there will be a quiz on the reading assigned for that day 
assignments assignments done by individual students
team projects a three (or two) person team software projects 

Quizzes

In order to have students keep up with the reading and promote class participation there will be a quiz at the beginning of class on the reading. These quizzes will be short. The quizzes shall be be designed so that they are relatively easy if if you have done the reading. 

There will be no make-up quizzes.

Assignments

There will be short programming assignments a that are designed to help you learn concepts that you might not use in your team projects 

Team Projects

There will be two projects. Different groups will be doing different projects. The first project must be done as a team. Individuals might be able to convince the instructor that the second project should be done on their own. 

Your assessment will be weighted as followed

quizzes  20% 
assignments   20%
team projects 60%

Extra Credit

Extra credit will also be given to students that help other students during lab, provide answers to questions on the class email list, and otherwise contribute to a positive and supportive learning environment.

Accommodation

Any student with a documented disability needing academic adjustments or accommodations is requested to speak to me by the end of the second week of the term. All discussions will remain confidential, although the Student Disabilities Coordinator may be consulted to verify the documentation of the disability.

Attendance

Attendance is not required except when working on group projects. Students missing group meetings, in or out of the lab periods, will be penalized. Students missing classes will of course miss out on any credit for class participation.

Out of class lab group meeting

Students shall be required to participate in team meeting outside of class to complete their group lab project. 

Collaboration

While the formation of study groups and collaboration in learning the course material is strongly encouraged, all work should be produced by the individual taking credit for the work, unless the particular assignment indicate otherwise.

Email/Newsgroup - electronic discussion forum

C2 23 will have a course mailing list maintained by the instructor. If you do not receive email from me in the first week please email me. 

Students are encouraged to actively participate on the list.  I monitor the list and occasionally give hints or relax requirements for an assignment. You can only make your life easier by checking your email daily. 

Miscellaneous Pebbles

Homework Submission and Evaluation

Homework will be submitted electronically using email. Files should be compressed together in a zip-file. Include your name and assignment in the zip-file name.

Coding Style

Follow the Coding Standards when ever possible and use Jalopy to format your Java code. Programs will also be  graded on the correctness of the design, proper choice of field, method and class names, proper formatting , and the generation of Javadocs for all public methods. NetBeans includes a wizard to help you write your Javadocs. Other references

Code Reuse

Students are discouraged from writing all code fragments from scratch. Most things you do in Java follow a pattern that has already been optimized. Unless the assignment explicitly says you must code something yourself, you are free to look for resources that help you solve specific problems. However, full credit for a lab assignment will only be given to students that write a substantial portion of their program. 

You can reuse any code that is on a website directly linked from the course website or from a link in a faculty email. 

You are allowed to use any code fragments or Java class that you find searching the web, magazines or books, but only if you reference the source of the code and include the original author in the author list. You are always responsible for documenting code that you reuse and for being able to explain what it does.

What Code Reuse is Forbidden

You are forbidden to reuse code from a current or former Dartmouth student, one of my former students, or to to hire someone else to program for you. 

You can only reuse code that is publicly available to all CS 44 students. If you have other code that you would like to use, you may consult the instructor, and he may opt to approve its use for yourself and the rest of the class.

If you are uncertain about whether you can reuse a portion of code please contact an instructor.

Organization of Teams

The instructor will select three-person teams with the goal of creating diverse teams with a wide breadth of expertise. The projects will be partitioned into three modules and each team member selects a module. You are responsible for integrating your module with your teammate's module to synthesize a final product.  See FAQ - Cooperative-Group Problem Solving