Computer Science 112
The Art & Science of Computer Graphics

Spring 2016, The College of Saint Rose



Dr. James D. Teresco, Albertus Hall 400-6, (518) 485-3755
Electronic mail: terescoj AT (best contact method)
Twitter: @JTeresco_StR_CS
Class URL: [Link]
Class hour: Monday, Wednesday 9:00-10:15 or 10:25-11:40 Science Center 469A
Office hours: Monday 3:00-4:00, Tuesday 3:00-5:00, Thursday 2:00-3:00, and by appointment
Graduate assistant: Sai Krishna Thaduri
Graduate assistant hours: Friday 10:00-12:00, Science Center 469A


Everything on this syllabus is subject to change. Changes will be announced in class and updated in the online version of the syllabus.

Course Objectives

From the course catalog: "This course provides an alternative introduction to computer science, aimed primarily at non-majors. The course introduces students to programming in the context of describing models of objects in space using a library written in the Python programming language. The library renders models in three dimensions with a raytracer and then displays the image on the screen. Students learn about programming and computer graphics, maintaining an online portfolio of their work along the way. Projects progress from simple to more complex models and then to animations, culminating in final project of the student's choice. (L08) (3 credits)"

This course straddles the boundary where art and computer science mingle. On the science side, students will develop an understanding of the theoretical and practical concepts underlying two- and three-dimensional computer graphics. Students will also explore how the tools and techniques can be used to produce artistic works that might be impossible to create in more traditional media. Along the way, students will learn some programming basics that will be useful in many other contexts.

Students interested in learning how to program more generally should take one or more courses in our standard introductory sequence, starting with Computer Science 202.

Our specific learning objectives for CSC 112 include the following:


This course has no prerequisite, but a solid high school graduate level of mathematical maturity is expected.

No prior computer programming experience is expected.

This course is not open to students who have taken a Computer Science course numbered 252 or higher.


There is no text for the course. Links to relevant web pages and occasional additional readings will be made available when appropriate.

We will make extensive use of the Ambrosia Modeling System, developed by Duane Bailey at Williams College, and the documentation provided by that system.


Everyone is expected to attend class and participate in discussions and to complete in-class exercises. Supplemental readings are listed on the lecture and reading schedule. There is no textbook, so you will learn what you need to know by coming to class. Some lectures will include guided viewings of state-of-the-art computer generated and enhanced images and animations.

The notes used to guide in-class presentations are available as PDF files linked from the lecture and reading schedule. (But you should take your own notes anyway.)

Most lectures will have some time set aside for in-class programming or other exercises.

Some lectures will include a small assignment due at the start of the next class. No late submissions of these "lecture assignments" will be accepted, as they will often be discussed in class on the due date. Some assignments will be graded for correctness, while others will be graded based on whether an honest effort was made.

Be prompt, prepared, and ready to focus on the day's topics. This should go without saying, but this means your phones and other devices not being used exclusively to follow along with class materials and/or to take notes must be powered off. Unfortunately, food or drink cannot be permitted, as we meet in a computer lab.

Studio/Lab and Programming Projects

The Studio/Lab portion of the course is where you will really get to use the tools and learn the concepts that we discuss during lectures. You will undertake projects that gradually introduce more and more sophisticated concepts in computer graphics. You will experiment with modeling, color, lighting, perspective, and hopefully simple animation. Computer programming will be used to design more complex models and to control their interactions. Your accomplishments throughout the course will be showcased in a portfolio to be maintained on a class wiki. During the last few weeks of the semester, you will undertake a more substantial project. You will produce one or more images or animations of your choosing and present them, along with your entire portfolio, to the class (and to anyone else interested) in a "gallery opening" at the end of the semester. This final project will also take the place of a final exam.

Assignments may be submitted without late penalty up until the time the assignment is graded. That will sometimes be on the due date and other times may be a few days later. Take your chances if you wish, but no work will be accepted after the particular assignment has been graded.

This is not a course where you can learn the material without doing the work. The workload is not excessive, but those who do not complete the assignments will not do well on the exams. You will need to block out some time every week for work on this course outside of our meeting times.


There will be two exams during the semester. Exams are tentatively scheduled to take place in class on March 16 and April 25. Please note that we will begin early and you may stay late on the exam dates to allow sufficient time to complete the exams. There will be no final exam (but we will use our May 6 exam slots for final project demos, so plan accordingly). If you attend class, take good notes, and complete the ssignments, you should have no trouble with the exams.


Grades for individual assignments and exams are not scaled. Any scaling deemed appropriate will take place at the end of the semester by adjusting the thresholds. The following thresholds may be adjusted downward (thereby raising grades) but will never be adjusted upward.


Lecture Assignments/In-Class Exercises 15% A >= 93% A- >= 90%
Studio/Labs 20% B+ >= 87% B >= 83% B- >= 80%
Exam 1 20% C+ >= 77% C >= 70%
Exam 2 25% D >= 65%
Final Project 20% F < 65%

Please note the instructor policy for this course: in order to earn a grade of D or better in this course, you must have an average of D or better on the examinations, regardless of performance on Studio/Lab submissions, projects, and other assignments.

College policy forbids changing of course grades after they are submitted except in very specific cases (such as an error in grading of an assignment or in computation of a grade). Any such errors that slip through must be found and rectified quickly after grades are submitted. In rare circumstances, a student request for an incomplete grade may be approved at the discretion of the instructor. Requests must be made one week prior to the end of the semester, and terms of such arrangements must be mutually agreed upon before grades are submitted.


Every college student should be motivated to attend every lecture and lab meeting for all the right reasons (e.g., desire for knowledge, desire to get the most out of every very expensive minute, etc.). As college students, you understand that regular attendance is essential to your ability to master the course material.

Therefore, there is no formal attendance policy. You are expected to attend regularly, and should still see the instructor about any excused absences. An excused absence may be any of the following:

  1. A documented athletic or academic event that conflicts with a class meeting. The required paperwork must be presented in person at least one week prior to the event.
  2. A family emergency.
  3. Personal illness.

While there is no formal penalty for unexecused absences, missing class regularly, frequent tardiness, or being distracted in class (e.g., checking your phone or Facebook) will be considered a sign that you are not taking the course seriously. Common sense suggests and experience validates that students who are frequently absent, late, or inattentive perform poorly on graded work. Do not expect compassion when final grades are assigned or extensive extra help if you do not understand a topic that was covered while you were absent without a valid excuse.

Disability Accommodations

If you are a student with a documented disability and require academic accommodations please register with Lynn Cantwell, the Director of Services for Students with Disabilities, located in the Academic Support Center on the 2nd floor of St. Joseph Hall (campus extension 2335 or 518-337-2335, off campus) for disability verification and for determination of recommended reasonable academic accommodations. After you have made arrangements with that office, please see me to discuss your accommodations. Please remember that timely notice will help avoid a delay in your receipt of accommodations.

Academic Integrity

You are encouraged to discuss the concepts related to course assignments and exams with your classmates. This is an essential part of a healthy academic environment. However, work submitted for grading must be your own (or the combined work of group members, for group assignments). Any unauthorized copying or collaboration is considered a breach of academic integrity and will not be tolerated. Plagiarism, cheating, academic misconduct, or any other submission of another's work as one's own are unacceptable. Students working in groups are each individually responsible for the academic integrity of the entire group project. Academic dishonesty cases are unpleasant and uncomfortable for everyone involved. You are responsible for reading and understanding The College of Saint Rose Policy on Plagiarism and Academic Integrity.

The minimum penalties for a first violation will include failure (0 grade) for the assignment or exam in question and the filing of a Academic Dishonesty Report Form with the Registrar's office. A second violation will result in failure of the course and a second Academic Dishonesty Report Form.

If there is any doubt about the degree of collaboration allowed or the permitted sources for a particular assignment, please ask for clarification before collaborating or consulting the source. Any such collaborations or sources must be cited properly.

The relationship among an academic institution and its faculty and its students is central to the entire concept of modern higher education. Each party has responsibilities that must be met in order for the degrees conferred to have meaning to the outside world.

The Institution

The Faculty

The Students

Note especially the dual role of the faculty as defenders of the integrity of the degrees our institutions confer and as primary facilitators to the students to be able to earn those degrees. Too often students view faculty and the courses they teach as obstacles between the student and the degree. While faculty do have a responsibility to make sure only students who have shown through their own honest work earn the degree, it is the faculty's goal to help ensure that every student (who is willing to put in the effort along the way) has the chance to earn that degree. But without the faculty defending the integrity of the college degree by making sure only students who have demonstrated compentency in their chosen program of study, that degree would soon be rendered meaningless.