CS376 Spring 2007
Skidmore College
Syllabus

Instructor: Michael Eckmann
email: meckmann@skidmore.edu
Instructor webpage: http://www.skidmore.edu/~meckmann/

Course webpage: http://www.skidmore.edu/~meckmann/2007Spring/cs376/

Text (Required)
Computer Graphics with OpenGL
by Hearn & Baker
Publisher: Prentice Hall: 3rd edition

=========================================================================

Class meetings

Lecture  MWF  11:15 am. - 12:10 pm.  Harder 203

=========================================================================

Description of the course:

In this course the students will learn about many introductory topics in Computer Graphics, that can form a basis for further study in the area. The students will learn the material in lectures and readings and apply the knowledge via appropriate programming assignments using OpenGL. OpenGL has many sophisticated functions built-in, but we will use OpenGL only as a tool to simply draw pixels to the screen, etc. This tool will be used to implement some classic algorithms like Bresenham's Lines Drawing Algorithm and Ray Tracing.
=========================================================================

I am working in some leeway in this syllabus to allow for changes during the semester regarding some of the topics we will cover or the length of time/level of detail we will cover some topics.  The grading scheme will not change though as I view that as a contract between me and you.
There are a couple of things I must be strict on.

1. No exam makeups.  I will not make a different exam for you or allow you to take the exam at any time or place other than the specified time and place, except in extremely rare situations.
If you miss an exam, you will get a 0 for that exam.

2. Academic honesty -- see the documents on the webpage.

Students are responsible for all material in the readings assigned as well as anything that occurs or is discussed in class.

=========================================================================

Late assignment policy

7% off per calendar day
=========================================================================

Topics to be covered:

Introduction (Chapter 1, Graphics in Entertainment)

Color Models and Color Applications (Chapter 12)

OpenGL concepts introduction
   relation to JOGL
   installing JOGL
   - other functions will be covered as they are
    needed throughout the course

   I will maintain a list of the classes, methods, etc.
in JOGL that we have covered along with example code
using them.

Raster Graphics Hardware (Chapter 2)

Algorithms for drawing lines, circles and ellipses (Chapter 3)

Polygons (inside test, filling, etc.) (Chapter 3)

2D Transformations (Chapter 5)

Windows, Viewports, Coordinate Systems, Clipping (Chapter 6)

Appendix A (A.1 through A.3, and A.5)

Visible Surface Detection Methods

Ray Tracing

... there will be more topics gien the time we have


=========================================================================

Grading Policy

A grade is first calculated by the following scheme:

42% Programming Projects & other hw
23% Midterm Exam
35% Final Exam

However, your final grade will be influenced either positively or negatively by how I,
the instructor, evaluate you on the following:

a) class participation
b) good attendance (not just physical)
c) increase of performance throughout the semester,
d) quality/effort of your program/homework submissions (aside from just correctness)

Class participation includes answering questions in class, asking
questions in class, visiting me during office hours, or by appointment
and asking questions through email.  Class participation is based on
my assessment of the student's voluntary contribution, plus their
responses to questions I ask them.

Each program/homework/exam may be graded on a curve (with assignments
not turned in not affecting the curve).  Programs and homework assignments
will have point values that reflect their relative weight.

In general each curve will have a mean between B- and B+, depending on
my assessment of the overall performance.

=========================================================================
All questions that are asked of you, either on homeworks or exams, etc., are
expected to be answered in the best possible way. Do not assume you will get
full credit for a mediocre, but correct answer, when a better answer exists.

Example: What type would you use for a variable whose values need to be among
the following:
-9, -20001, 7, 0, 70, 700000, -80, 4010, etc.

Answer: int is the best possible answer
Note: short is incorrect because 700000 is out of the range of a short
long could be used but is overkill, float and double could be used but shouldn't
be used because no decimals are needed.
=========================================================================

Academic Dishonesty and Improper Collaboration

See our course webpage http://www.skidmore.edu/~meckmann/2007Spring/cs376/index.html
for details.
 
=========================================================================

Attendance Policy

I will take physical attendance as well as "attentiveness" attendance. A few (e.g. 3) missed lectures
throughout the semester will not negatively affect your grade, but more than a few may.

You are responsible for all material mentioned/taught in-class. 

Any exams given cannot be made up.  Those students who are absent when an exam is
given are given a zero for that exam. This policy is strict.

=========================================================================

Workload

I expect students to devote approximately 6 hours per week outside of
lectures on the work for this class.

=========================================================================

Readings

Readings are extremely important to have completed before the class in
which the material will be taught.  There is not enough class time to
cover every minute detail in the readings.  I will cover what I deem
important and expand on the topics, therefore you must be able to read
and understand material on your own, so that when it is covered in
class, you will be able to follow along and have the material "sink
in" more.  If you have difficulty understanding anything in the
reading, bring it up in class, email me or come to see me.  Bringing
it up in class is preferred, because it benefits more than just you
--- some of the rest of the class, most likely, have the same
questions you do.

Students are responsible for all material in the readings assigned as
well as anything that occurs or is discussed in class.

===================================================================================