Course Overview

Course Description

Content

Fundamental concepts of computer graphics. Topics include hardware and software systems, scan conversion of graphics primitives, color and color perception, modeling of curves and surfaces, clipping, antialiasing, model-view and projection transformations, light and shading, and hidden surface removal.

Background

As a student, learning computer graphics helped me reason in higher dimensional spaces relevant for machine learning and data visualization. As a graduate student, I worked on a 3D interactive visualization of the Earth (before Google Earth) requiring efficient data structures and algorithms for accessing the relevant parts of the model based on the camera's position and view direction. This course applies numerical linear algebra to quickly create a 2D image from virtual camera's position and orientation using a 3D model.

Structure

There will be a homework assignments, quizzes on the homework, exams, and programming assignments.

Objectives

  1. get comfortable with the mathematics of computer graphics,
  2. learn some fundamental algorithms for computer graphics, and
  3. write computer programs to render 2D images from 3D models.

Instructor Information

Biography

Dr. Parry grew up in Indiana, went to college at Univ. of Virginia, and graduate school at Georgia Tech. His research interests include artificial intelligence, date mining, and visualization, especially applied to music, sports, and education. He prefers teaching and learning when it can be motivated by challenging and interesting problems.

Course Requirements

Materials

Required

Supplemental Materials

Assignments

Homework

Homework assignments will be graded by in-class quizzes.

Programming assignments

You will write code to render 3D scenes.

Exams

Each exam is worth the same as 2 quizzes.

Grading & Policies

Course Policies

Attendance Policy

This class meets in person and attendance is mandatory; unexcused absences will deduct 1% from the final grade.

If you are sick, please stay home. We will be following CDC guidelines regarding the Flu, COVID-19, and RSV.

Statement on Student Engagement with Courses

In its mission statement, Appalachian State University aims at "providing undergraduate students a rigorous liberal education that emphasizes transferable skills and preparation for professional careers" as well as "maintaining a faculty whose members serve as excellent teachers and scholarly mentors for their students." Such rigor means that the foremost activity of Appalachian students is an intense engagement with their courses. In practical terms, students should expect to spend two to three hours of studying for every hour of class time. Hence, a fifteen-hour academic load might reasonably require between 30 and 45 hours per week of out-of-class work.

Printable PDF of the Statement of Student Engagement with Courses

Since our class is a 3-hour class, you should expect to spend at least 9 hours per week outside of class. Because programming can be more time-consuming than studying things in other disciplines, that amount of time should be considered a minimum.

Instructor Responsibilities

I will vigorously pursue knowledge and share my learning process with you. Just like debugging, a scientific approach to learning nearly always provides a path forward. I will be accessible during class, office hours and over email. If you need to meet outside of those times, email me to set up an appointment. I really do want this class to succeed. So, please send me your comments, positive or negative, that will help improve the course.

Academic Integrity

All graded assignments in this class are to be completed individually. Do not look at anyone else's code and do not allow anyone else to view your code. Hand-written homework assignments may be worked on collaboratively and are meant to help prepare you for the graded in-class quizzes and exams.

AI-based Assistance

The following policy is adopted from Georgia Tech:

We treat AI-based assistance, such as ChatGPT and Copilot, the same way we treat collaboration with other people: you are welcome to talk about your ideas and work with other people, both inside and outside the class, as well as with AI-based assistants.

However, all work you submit must be your own. You should never include in your assignment anything that was not written directly by you without proper citation (including quotation marks and in-line citation for direct quotes).

Including anything you did not write in your assignment without proper citation will be treated as an academic misconduct case. If you are unsure where the line is between collaborating with AI and copying AI, we recommend the following heuristics:

Heuristic 1: Never hit “Copy” within your conversation with an AI assistant. You can copy your own work into your own conversation, but do not copy anything from the conversation back into your assignment.

Instead, use your interaction with the AI assistant as a learning experience, then let your assignment reflect your improved understanding.

Heuristic 2: Do not have your assignment and the AI agent open at the same time. Similar to the above, use your conversation with the AI as a learning experience, then close the interaction down, open your assignment, and let your assignment reflect your revised knowledge.

This heuristic includes avoiding using AI directly integrated into your composition environment: just as you should not let a classmate write content or code directly into your submission, so also you should avoid using tools that directly add content to your submission.

Deviating from these heuristics does not automatically qualify as academic misconduct; however, following these heuristics essentially guarantees your collaboration will not cross the line into misconduct.

ASU Academic Integrity Statement

Appalachian State University's Academic Integrity Code is designed to create an atmosphere of trust, respect, fairness, honesty, and responsibility. The Academic Integrity Code outlines "user-friendly" procedures and mechanisms for resolving alleged violations of academic integrity. The Academic Integrity Code is the result of cooperation among Appalachian's faculty, students, and administrators, and promotes a campus dialogue about academic integrity. All members of the Appalachian State University community are responsible for promoting an ethical learning environment.

Students attending ASU agree to abide by the following Code:

Printable PDF of the Complete Academic Code available on the Academic Integrity site

Public Sharing of Course Materials

All course materials, including video, may be subject to intellectual property protections under applicable law and regulation and are for the sole use of students enrolled in this class. Students do not have permission to copy or record materials except for personal use in the context of this class and students do not have permission to share any class materials, including videos, in any manner on any platform without the prior express permission of the faculty member teaching this course.

Grading

Your final grade will be determined by three things:

Calendar

The official sequence of class activities is maintained on ASULearn.