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. |
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.
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 who chose not to come to class will have trouble receiving a good grade.
Students shall be required to participate in team meeting outside of class to complete their group lab project.
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.
| 3D Math Primer for Graphics and Game Development by Fletcher Dunn, Ian Parberry Wordware Publishing; 1st edition |
![]() |
![]() |
Java 2D Graphics by Jonathan Knudsen Publisher: O'Reilly & Associates; (May 1999) |
|
Java 2D API Graphics Publisher: Prentice Hall PTR; Book and CD-ROM edition
(November 3, 1999) |
|
You can find a large selection of graphics books at Amazon.com - Computer Graphics
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).
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.
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.
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% |

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