Syllabus 

Course CS 43 
Meeting Time   10A hour  
10:00 a.m. - 11:50 AM, Tuesdays and Thursdays. X-Hour, Wednesdays, 3 p.m. - 4:15.
Room  Moore 202
Instructor Prof. Stephen Linder
Office
  216 Sudikoff Lab
Phone
 603-646-1613 
Office Hours Tuesday, Thursday 3- 5 PM, and by appointment.

Course Objectives

By the end of this semester students, successful students will

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 email list.

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. 

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 who chose not to come to class will have trouble receiving a good grade.

Out of class lab group meeting

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

Class Participation

Class participation includes presentations of software designs and code, active involvement in discussion, helping other students with technical questions, and the asking and the answering of questions. Adding to and submitting corrections to the this website are also strongly encouraged. 

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 exceptions are outlined by the assignment indicate otherwise.

Email - electronic discussion 

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


Text Books

Required

3D Math Primer for Graphics and Game Development
by Fletcher Dunn, Ian Parberry

Wordware Publishing; 1st edition 
(June 15, 2002)
ISBN: 1556229119 

Amazon.com - $33.97

Supplemental 

Java 2D Graphics
by Jonathan Knudsen 

Publisher: O'Reilly & Associates; (May 1999)
ISBN: 1565924843 
Amazon.com- Books- Java 2D Graphics
- Price $20.97

Java 2D API Graphics
by Vincent J. Hardy 

Publisher: Prentice Hall PTR; Book and CD-ROM edition (November 3, 1999)
ISBN: 0130142662
Amazon.com- Books- Java 2D API Graphics - Price: $34.99

You can find a large selection of graphics books at Amazon.com - Computer Graphics


Student Assessment

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 project due t

A passing grade in the course requires a passing grade on five of the six programming assignments and all three team projects. A passing grade will only be given to programs that work to a large degree. 

Constructive class participation can add an additional 20% to the grade. 

Students that earn a grade of A should be able to teach much of the material in this course to another student not in the course, and/or be able to independently implement the main concepts of this course using low level Java code (not using the Java 3D API).

Quizzes

In order to motivate students to 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. 

Assignments

There will be weekly programming assignments that are designed to help guide you in the design, implementation and development of your group projects. These assignments are to be done individually unless otherwise stated in the assignment. 

Poor programming practice and style will adversely affect your grade. 

Students will be required to orally explain the working of their code and give rationales for their design decisions. 

Team Projects

There will be two team projects, one due at midterm and the other at the end of the quarter. Each team member is responsible for a single module of multiple module project. The team collectively is responsible for integration. Your assessment on the team project will be based on you being

Your assessment will be weighted as followed

quizzes  20% 
assignments   40%
team project 40%

Miscellaneous Pebbles

Homework Submission and Evaluation

Homework will be submitted electronically and evaluated on my office computer which will be running Windows 2000, Java 1.4.01, and NetBeans 4.0 beta. Your submissions should be as a zip-file. Your code will be recompiled before running. 

Coding Language

I prefer to code in Java and assembly language, but I will accept assignments in any language. It is however the students responsibility to show the instructor how to compile and run the code if the code is not Java.

Developing Environments

The instructor is a proponent of the following open source tools:

I will be running your Java code in NetBeans and when you ask for help I will use NetBeans to look at your code. NetBeans should be installed in the lab computers. You can download your own copies from my local mirror.

Coding Style

Programs will be also graded on the correctness of the design, proper choice of field, method and class names, proper formatting (you must use Jalopy, which can be run from inside of NetBeans), and the generation of Javadocs for all methods. NetBeans includes a wizard to help you write your Javadocs. 

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, or to hire someone else to program for you. 

You can only reuse code that is publicly available to all CSC 43 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.