Syllabus for CSC 44
Winter 2004
| Monday, Wednesday and Friday 10:00 - 11:05 |
Sudikoff 01 |
| Prof. Stephen Linder | ||
| Office | Sudikoff 216 | ![]() |
| Phone | 603-646-1613 | |
| Office Hours | Monday, Tuesday and Wednesday 5:00 - 7:00 PM |
|
Zhengyi Le |
||
| Office |
|
|
| Zhengyi.Le@Dartmouth.EDU | ||
| Phone | ||
| Office Hours | Tuesday 1:00 - 4:00 PM
Thursday 6:00 - 9:00 PM |
|
The following topics will be covered in varying detail:
The course has two foci:
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.
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.
![]() |
Artificial Intelligence- A Modern Approach (2nd Edition) Publisher: Prentice Hall; 2nd edition (December 20, 2002) Amazon.com - $84.00 |
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 |
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.
There will be short programming assignments a that are designed to help you learn concepts that you might not use in your 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 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.
Students shall be required to participate in team meeting outside of class to complete their group lab project.
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.
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.
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.
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
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.
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.
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