HOFSTRA CSC171A/CSC269 Computer Graphics
Dr. Gerda Kamberova, instructor
Phone: (516) 463-5775
E-mail: Gerda.L.Kamberova at hofstra.edu
Mian Tamur Al Haq, tutor

Course Information

Course objective

To provide the students with comprehensive introduction to CG, focusing on the underlying theory and thus providing strong foundation for both designers and users of graphics systems.

In class we will study the theoretical foundations and algorithmic issues, in programming assignments you will use OpenGL (Mesa) as the particular API for writing graphics programs. We will not discuss programming in class! You should be able to work on your own with the OpenGL primer or programming guide.


This is a programming intensive course, but also involves study of math and algorithms. There are programming assignments, a project, a midterm exam and a final exam.

Final Grade:

40% assignments
20% midterm exam
40% final project and exam

No makeups. No late assignments/projects, unless prior arrangements have been made. Extensions are up to the discression of the instructor. You must complete the project in order to receive a grade.
Complaints about grading must be submitted (together with the graded work) no later than a week from the date at which the graded work was returned to you.


I will assign a project. If you wish to do a different project, you must submit a short proposal and it is up to me to approve it or not. You should submit a one page proposal stating the objective of the project, what exactly you plan to accomplish, and how. I need the proposals since I am concerned about the amount of effort a given project will require (either too much or too little is unacceptable), and also about the computer graphics contents of the project. A typical project will consist of both a program/demo and a (short) report.
Source code
  1. hello.cpp . You should use the extension .cpp if you are using the Unix makefile provided. Otherwise save as your home compiler requires. Syntacticly, the program is written to comply with the ANSI C. (no // comments)
  2. An interface and implementation of a vector class, cs171CommonVec, for 3D vectors. If you cannot understand this class, develop your own.
Compiling on Linux machines in 204 Adams
To have the proper environment variables, copy

over your .cshrc file. To be able to recover if you need some settings from your old file, before you overwrite .cshrc , save it under a different name.
Download again hello.cpp .
Use the following to compile hello.cpp, create an object file hello.o, and then an executable hello:

g++ -o hello.o -I/usr/local/Mesa-6.5/include/GL -I/usr/local/Mesa-6.5/include/GL/glut -I/usr/include -c hello.cpp

g++ -o hello -O hello.o -L/usr/local/lib -L/usr/local/Messa-6.5/lib -lglut -L/usr/local/Messa-6.5/lib -lGLU -L/usr/local/Mesa-6.5/lib -lGL -L/usr/X11R6/lib -lX11

to run the executable hello.
Working in Microsoft Windows
  • How to install GLUT and OpenGL on a PC
  • OpenGL and VC++ Project Settings. See also the sites below.
    Software and Online Resources
    Helpful Links

    Academic Honesty
    Any work you submit for grading must be your own. You should not copy from others, or give others sources to copy from. Do not copy programs or parts of programs, or answers, from other students in the class, or any other sources ("a friend", "a tutor", Internet, or other electronic media, from books, notes, etc.). When you seek help or give help be careful: you are allowed to talk about assignments, you are allowed to help each other with compiling.
    You should not work together with someone else and "develop" a solution "together", on paper, or the computer, and then each one types and submits the same solution (with some minor "cosmetic changes")! You should not accept a solution that a "tutor" gives you. You should not let someone else copy lines of code from you (from your listing, or from the screen, or any other way).

    It is very important that you come up with the solution on your own, that you go by yourself through the pain of developing, writing and testing a program! Only this way you will become an independent, and capable of developing and writing software on your own, and ready to continue successfully your study in computer science.

    Cheating shall not be tolerated!

    Be familiar with the Academic Honesty Code: FPS 11 and FPS 11G for handling violations of the academic honesty. Available online on Hofstra Web Site.

    Hofstra University, Department of Computer Science
    Gerda Kamberova, Last Update: 09/14/2006