Spring 2015

Syllabus for Computer Graphics CSC 8470

Instructor Dr. Mirela Damian, MSC 167A
mirela.damian@villanova.edu
Office hours W 5:00 -- 6:00 pm
Th 5:30 -- 6:30 pm
by appointment
Course Meets W 6:15 -- 9:00 pm in Mendel G87
Prerequisites CSC 8301 -- Design and Analysis of Algorithms

Course Description

Computer graphics deals with all forms of graphical images on computers. This course explores the mathematical and algorithmic principles of computer graphics. We will begin by experimenting with Blender, a powerful open-source interactive package that will help you improve your perception of 3D modeling, rendering and animation. In parallel we will delve into OpenGL, a portable graphics library and industry standard supported on all platforms. We will also look at some basic features of the Vizard software toolkit for building interactive virtual reality simulations.

As we discover what these graphics packages can do for us, we will take a look at their underlying principles. Topics include 2D and 3D transformations, projections, shading, modeling, texture mapping and ray tracing. Understanding this material requires at least a working knowledge of geometry and linear algebra, so these mathematical essentials will be briefly reviewed throughout the semester.

Specific Outcomes:

Resources

There is no required textbook for this course. We will mainly use online materials. References to course-related materials will be posted on the class website

      csc.villanova.edu/~mdamian/csc8470

Please make sure you check the class page regularly.

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza, so that everyone can benefit from, and contribute to answers. You can even do so anonymously. Our Piazza class page is at

      http://piazza.com/villanova/spring2015/csc8470

Course Requirements

  1. Assignments: Assignments will involve problem solving, modeling in Blender, and programming in OpenGL and Vizard.

  2. Workshops and quizzes: This is work assigned in class that must be completed by the end of the class period, or within a specified time interval.

  3. Final Project: A short movie (about three minutes long) that incorporates techniques learned thoughout the semester.

  4. Class Attendance: Regular attendance is expected of all students. Each student is responsible for all material, announcements, and assignments covered during any class missed.

  5. Late Policy: All assignments are due at the beginning of the class on the due date. No credit will be given to late assignments. Exceptions to this policy will be granted only in extraordinary circumstances.

Tentative Grading System

The following allocation of points is tentative and may change during the semester:

             Assignments:   50%
             Workshops and quizzes:   20%
             Final Project:   30%

Academic Integrity

I encourage you to collaborate on assignments and learn from your fellow students. However, there is a fine line between collaboration and cheating. Collaboration means discussing problems and solution approaches with other students and independently writing your own answers; cheating means copying solutions from someone else or giving someone else your solutions. If you have questions about what is acceptable, please bring them to me before submitting your work.

Cheating, plagiarism and helping others commit these acts are all forms of academic dishonesty. The penalty for any act of dishonesty is an 'F' grade for the course. Please consult the Code on Academic Integrity at

      https://www1.villanova.edu/villanova/vpaa/studentservices/policies/integrity.html

Special Arrangements

If anyone has a disability or other problems that warrant the need for special accommodation to complete the course work, please contact me at your earliest convenience.

Tentative Course Schedule

The course schedule below is approximate and subject to change as the semester progresses. It is the students' responsibility to learn and adjust to changes.

Week 1: Jan. 14 Computer Graphics Pipeline. Introduction to Blender
Week 2: Jan. 21 Vertex Array and Buffer Objects
Week 3: Jan. 28 GLFW Windowing and GLSL Shaders
Week 4: Feb 4 Texture Mapping
Week 5: Feb. 11 Transformations and Animation
Week 6: Feb. 18 Projective Geometry: Orthogonal vs. Perspective
Week 7: Feb. 25 Catching up
Mar. 2-8: Spring Break
Week 8: Mar. 11 Online learning: Introduction to Vizard. No class meeting this week.
Week 9: Mar. 18 Lighting and Shading
Week 10: Mar. 25 Keyframe Interpolation
Week 11: Apr. 1 Rasterization Algorithms
Apr. 2 - 6: Easter Break
Week 12: Apr. 8 Working with Blender Models in Vizard
Week 13: Apr. 15 Advanced Topics
Week 14: Apr. 22 Project Work
Week 15: Apr. 29 Student Project Presentations