**Jérémie Dumas**

Address: 60 5th Ave, 5th floor, Office 510

Phone: 212 998 3327

Email: `jeremie.dumas [at] nyu.edu`

URL: http://www.jdumas.org

**Office Hours**: Wednesday, 5pm-6pm and by appointment.

**Yixin Hu**

Address: 60 5th Ave, 5th floor, Office 505

Email: `yh1998 [at] nyu.edu`

URL: https://cs.nyu.edu/~yixinhu/

**Office Hours**: Tuesday, 3pm-4pm (starting in March).

Wednesday, 7:10pm - 9:00pm

Courant Institute, Warren Weaver Hall, Room 312

The required textbook is:

**Fundamentals of Computer Graphics, 4th Edition**

December 18, 2015 by A K Peters/CRC Press

Textbook - 734 Pages - 541 Color

ISBN 9781482229394

The grade will be based on the following:

- Assignments: 80%
- Midterm Exam: 10%
- Final Exam: 10%

This course provides an introduction to the field of Computer Graphics. We will cover the basic mathematical concepts, such as 2D and 3D transformations, study the interaction of light with geometry to derive shading models, and implement rendering algorithms such as ray tracing and rasterization. We will investigate how these fundamental components are integrated in current graphics processors and study the corresponding programming APIs. This course will also include a brief introduction to C++.

Students will experiment with modern graphics programming and build small demos in C++ and OpenGL.

By the end of the course, the student must be able to:

- Explain and apply the fundamental mathematical concepts used in image synthesis algorithms
- Implement a basic rendering system based on ray tracing
- Implement a basic rendering pipeline based on rasterization
- Develop simple graphics programs in C++ using OpenGL and GLSL

- Pixels and images
- Fundamentals of ray tracing
- Parametric curves and surfaces
- Rasterization
- Transformations in 2D/3D
- Perspective and visibility
- Interpolation and lighting
- OpenGL graphics API (w/ shader programming)
- Texture mapping and mesh parametrization
- Procedural modeling

In this course there will be 4 coding assignments (including a final project) that will account for 80% of the grade. You must pass the final to pass the course.

- CSCI-UA 201 (Computer Systems Organization)
- CSCI-GA 1170 (Fundamental Algorithms)
- MATH-UA-140 (Linear Algebra)

You have to follow the rules listed on our Academic Integrity Policy web page, unless explicitly stated in the assignment descriptions. In particular, while it is fine to discuss ideas and problems related to the lectures and the concepts presented in class, the assignments are *individual*, and *the code you hand out must be your own*. **Plagiarism** will not be tolerated, and result in a 0 for the impacted assignment.