CSE 328 FUNDAMENTALS OF COMPUTER GRAPHICS:
Concepts, Theory, Algorithms, Techniques, and Applications (Spring Semester,
Jan – May 2018)
INSTRUCTOR: PROFESSOR HONG QIN (email@example.com;
or firstname.lastname@example.org), The NEW Computer
Science Building, Room 151, 631-632-8450 (office
LECTURES: Tuesday & Thursday, 5:30 PM-6:50 PM, OLD COMPUTER SCIENCE
BUILDING, RM. 2120!
OFFICE HOURS: Tuesday & Thursday, 2:20PM-4PM, or by appointment!
This undergraduate course will cover the basic concepts, mathematical
foundations, fundamental theory and algorithms, software techniques, hardware
and system issues, and application examples of computer graphics. The main
topics will center on modeling, rendering, interaction, and animation. Finally,
if time permits, we shall give a brief overview of various advanced graphics
Computer science background: data structures, programming languages and
skills (such as C/C++).
Mathematics sophistication: calculus, linear algebra, basic analytic
Computer Graphics with OpenGL, 4rd Edition, Donald Hearn, M. Pauline Baker,
and Warren R. Carithers, Prentice Hall, 2011.
This course emphasizes a ``hands-on'' approach to both the better
understanding of graphics’ fundamental theory/algorithms and the
effective use of graphics techniques in terms of graphics programming. Each
student is required to complete exams in class, programming assignments, and
course project. The exams cover analytic problems, the programming assignments
include programming homework, and the course project is also
programming-oriented. The programming assignments and course project will be
done in C/C++ and OpenGL. You are expected to be a competent programmer in
C/C++ in this course. The grading schemes of this course are as follows: two
exams (10% for the first exam, 15% for the second exam, and 25% total); two
programming assignments (10% each, 20% total); and the course project (50%
total). In addition, the instructor also allocates 5% for class attendance!!!
All assignment submissions will be due at the beginning of the class (i.e.,
The work submitted should be your own. Late assignments will be penalized 25%
per day. Furthermore, because a primary goal of the course is to teach
professionalism, any academic dishonesty (e.g., plagiarism) will be viewed as a
serious academic offense, thus as an evidence that the above goal has not been
achieved and will be grounds for receiving a grade of F! (Please refer to CEAS
Procedures and Guidelines Governing Academic Dishonesty (1/81) for details.)
Machine failure should not be a reason to delay assignment due
dates unless there is a major catastrophe, which will be announced by the
instructor. Considering the possibility that machine failure may happen and
then contention for machines will occur, my advice to all of you is that you
please start the programming assignments and course projects as early as possible.
LECTURES and LECTURE NOTES:
This course syllabus is available on-line at the CSE328 course website.
Primary material of this course will come from the required textbook. In
addition, material from recent articles or relevant reference books will be
presented. Numerous slides and video tapes on graphics will be shown. Students
are advised to attend the class and follow the lecture notes closely. The
instructor is working hard to put all the course material on the course
website! Lecture notes of this course will be divided into many small files. I
will put them here along the progress of this course (see below for lecture
notes). Note that these notes are intended only as a guide. I will be
presenting additional material in class (figures, slides, etc.) not contained
in these files. So class attendance is critical!!!
Mid-term exam information: (tentatively, the first exam) February 22 and
(tentatively, the second exam) April 17!!!
Teaching Assistant: TBA
Teaching Assistants Office Hours: TBA!
The TA of this course will announce the submission instructions soon!!!
TA OFFICE HOURS: TBA (email@example.com):
Tuesdays: 2:30pm-3:30pm; Fridays: 12:40pm-2:00pm! Computer Science Building
CS2110! (2) Grader: Thursday TBA;
Computer Science Building CS2110!
Please note that, you can click on the TA's name (To be announced later) to
access the TA's homepages which will direct you to his/her CSE 328 TA help
information on OpenGL programming and answers to questions related to course
programming assignments/projects and announcements about any additional office
hours. Besides our course website here, we encourage students to visit the TA's
websites for questions about course assignments/projects and any other
important announcements that are not shown here.
Please note that our current 328 TA in this semester is working hard to
prepare his/her OpenGL tutorial and the detailed instructions for
homework/project e-submission (Details to be announced soon!!!)
FOR YOUR CONVENIENCE ONLY, I am making the following link available (which
was made available by the TA of CSE328 in the spring semester of 2011). These
materials are ONLY for your reference and convenience (they are coming from
prior years!!!): HELF INFO on OpenGL
(from prior semesters)!!!
SPECIAL ANNOUNCEMENT: Please NOTE THAT, if you have satisfied the
prerequisites (CSE219 and CSE220, or permission of instructor). Anyone with the
prerequisites is invited to register. Please see Professor Hong Qin in his
office during his office hours if you are interested in registering for this
course for the spring semester. If you miss the office hours, please send
emails to Professor Hong Qin in order to make an appointment!
Other Important Information
- OpenGL Programming Guide, 5th
Edition: The Official Guide to Learning OpenGL, Version 2.0,
- OpenGL Reference Manual, 4th
Edition: The Official Reference Document to OpenGL, Version 1.4,
- Computer Graphics: Principles
and Practice, 2nd Edition in C, James D. Foley, Andries
van Dam, Steven K. Feiner, and John F. Hughes,
Addison-Wesley, 1990 (Reprinted with corrections, July 1997).
- Introduction to Computer
Graphics, J.D. Foley, A. van Dam, S.K. Feiner,
J.F. Hughes, and R.L. Philips, Addison-Wesley, 1994.
- Interactive Computer
Graphics: A Top-Down Approach with OpenGL, Edward Angel, Addison-Wesley,
1997 (Reprinted with corrections, January 2000).
- OpenGL Programming Guide,
Jackie Neider et al., Addison-Wesley, 1993.
- OpenGL Reference Manual,
- Principles of Digital Image
Synthesis, Andrew S. Glassner, Morgan Kaufmann
(two volumes), 1995.
- 3D Computer Graphics, Alan
Watt, 3rd Edition, Addison-Wesley, 2000.
Some special events such
as graphics video demonstration and visitors' research presentation in graphics
may be held during this semester. The instructor will make announcements here
when such events happen.
announcements relevant to this course such as the change of assignment due
dates or exam dates will also be posted here whenever necessary.
Please pay attention to
these announcements as we will be updating them on the daily basis.
The programming assignments will make use of Unix and PC facilities. In
particular, we will use the Windows NT Transaction lab. at Department of
Computer Science (Rm. 2114 and Rm. 2126). You should be able to access the website of NT Transaction lab for
frequent asked questions about the lab facilities and other relevant
programming issues. You should have a NT account at CS Department. Students
with access to PCs at home with the compatible computing environment will
likely be able to work on some or all of the assignments at home.
Our system manager has already set up your account. Please refer to this document that explains how to get your user ID. You
can also find a similar document at the website of NT Transaction lab. If
you still have problems in accessing our facilities in the Transaction lab,
please email to firstname.lastname@example.org.
GUIDE AND ENVIRONMENTS:
NT Transaction lab on the second floor of Computer Science Building is
available for CSE 328 students to conduct their course assignments and
projects. If you need a NT account, please talk to the instructor! Most of
OpenGL examples appeared in various reference books are available on-line. The
system manager of our Transaction lab has managed to download OpenGL examples
from several publicly-available websites and put them under appropriate
directories in order to help CSE 328 students to access OpenGL examples
electronically and easily. Please note that, these examples are located in
H:\courses\cse328\pkg directory. In general, they come from different sources.
In particular, the directory: "H:\courses\cse328\pkg\Opengl
examples\Edward Angel second edition" contains all the examples and source
codes that have been downloaded from Edward Angel (who is the author of a book
entitled : Interactive Computer Graphics A Top Down Approach with OpenGL Second
Edition)'s web site (the ftp site is ftp.cs.unm.edu under pub/angel/BOOK in
case you are interested in getting more information regarding his book and examples
in the first edition, etc.); the directory: "H:\courses\cse328\pkg\Opengl
examples\sgi\opengl11" contains OpenGL examples
and source codes appeared in the book (OpenGL Programming Guide Version 1.1);
the directory: "H:\courses\\cse328\pkg\Opengl examples\sgi\opengl12"
contains OpenGL examples and source codes appeared in the book (OpenGL
Programming Guide Version 1.2). The ftp site of SGI OpenGL examples is
ftp://sgigate.sgi.com/pub/opengl/, in case you are interested in getting more
Please note that, the current OpenGL version in the NT translab
is V1.1! Other important and relevant software programming resources currently
available at the NT Transaction lab include: Windows NT 4.0, Microsoft Internet
Explorer 5.5, Netscape Communicator V 4.7, Microsoft Visual C++ 6.0 SP3,
Microsoft Office 2000 SR-1, and much more! For details, please consult with the
website of NT Transaction lab.
There are many websites that can help you to be familiar with OpenGL
programming techniques in particular and computer graphics technology in
general. One great place for all sorts of general information is the Official OpenGL Web Site:
http://www.opengl.org. This Website contains software, documentation, FAQs,
and news! It is a good place to start any search for answers to your OpenGL
questions. Please note that the two OpenGL programming books (A. Programming
Guide; B. Reference Manual) contain many sample examples of OpenGL. These
sample codes along with Mark Kilgard's OpenGL Utility
Toolkit (GLUT) can be obtained freely via anonymous ftp (file-transfer
protocol): ftp://sgigate.sgi.com/pub/opengl/opengl12.tar.Z or
ftp://sgigate.sgi.com/pub/opengl/opengl12.zip, depending on which
decompression/extraction tools you are currently using in your computer. For
the Windows/NT/X version of GLUT, you can check out the following Web page for
the details: http://www.xmission.com/~nate/glut.html.
In addition, Nate Robins of University of Utah has written a suite of tutorial
programs that demonstrate fundamental OpenGL programming concepts and
techniques. You can get the source code for these tutorials at: http://www.cs.utah/edu/~narobins/opengl.html.
The above Websites mostly contain information regarding OpenGL Version 1.2. For
OpenGL Version 1.1, the source code samples can be found via anonymous ftp too:
ftp://sgigate.sgi.com/pub/opengl/opengl/opengl1_1.tar.Z, to uncompress and
extract the files from this tar archive, please use the following commands: umcompress opengl1_1.tar, tar xf
opengl1_1.tar. Other detailed information about OpenGL and its technical
resources (including programming books) can also be found from SGI OpenGL
For detailed OpenGL compiling instructions, please refer to
the TA's homepage: http://www.cs.sunysb.edu/~ybao.
Please note that, you can also find other useful resources and course help
info. regarding OpenGL environments such as GLut
header file and DLLs as well as FAQs. You should be able to find out a lot of
helpful information regarding how to use OpenGL in my TA's website. Please make
sure that you visit these places regularly as new and important information
will be updated frequently!
COURSE TOPICS AND
Introduction and Motivation
- Overview, definition
- Graphics history
- 2D and 3D graphics
- Graphics programming
- Graphics software and
- User-computer interface
- Various application examples
Graphics System Hardware
- Hardware, display devices,
- Vector and raster graphics
- Interaction techniques
Fundamental Mathematics and Geometry
- Basic mathematics relevant to
- Coordinate systems
- Points, lines, planes, and normals
- Triangles and polygons
- Geometric primitives
- Curves, and surfaces
- Solid and volumetric models
- 2D and 3D geometric
- Parallel and perspective
- Data structures
- Coordinate system
- 2D and 3D geometric
- Object hierarchies
- Viewing and clipping
- Parallel and perspective
- Object and image order
- Rendering pipeline
- Scan-conversion: lines and
- Human vision
- Color perception and color
- Basic optics
- Image analysis and
- Transparency and shadows
- Texture mapping
- Ray tracing, radiosity
- Image-based rendering and
- Advanced modeling techniques
- Case studies
- Software packages
If you have a physical,
psychological, medical or learning disability that may impact on your ability
to carry out assigned course work, I would urge that you contact the staff in
the Disabled Student Services office (DSS) in the ECC building (where the
Computer Store used to be), Telephone number: 632-6748v/TDD. DSS will review
your concerns and determine with you what accommodations are necessary and
appropriate. All information and documentation of disability are confidential.