Overview

 

This course is an introduction to computer graphics. We will explore both fundamental computational aspects and its implementation. This course is more skewed towards the implementation side. The course will require you to use a language you may not have seen before (Typescript) and do assignments using web technology and tools. Course topics include: output devices, line drawing, polygon scan conversion, 2D and 3D transformations, projection, hidden surfaces, color vision, surface reflectance and illumination, texture mapping, shadows, anti-aliasing, and the hardware graphics pipeline.

If time permits we may cover additional topics including GPU programming, interactive programming, ray tracing, polyhedral models, polynomial curves and surfaces, subdivision surfaces.

Topics will be covered either by lecture (in person or live-feed - zoom), reading or both.

Laptops are required. You are required to bring a laptop to class, and install the required web development technology. We will occasionally do in-class programming exercises. Please ensure you have a laptop that supports the necessary technology. When we are not using them for in-class work.

Logistics:

Date /Time: Tu/Th: 8:00-9:15 Boyd 328 (22 Seats - half live feed/half face 2 face)
  W 8:00-8:50 All meet via zoom - zoom link provided on piazza
       
Instructor We 8:50-9:50 Maria Hybinette - Office Hours Wednesdays after class
TA Mo 2:00-3:00 Akhila - See piazza post for Akhila's office and office hours.
       
Mailing List     piazza
       

Course Material & Textbook

The course material covered in class is primarily drawn from two text books:

(1) Fundamentals of Computer Graphics, Fourth Edition, by Steve Marshner and Peter Shirley. Available as an E-book on Amazon.

(2) The second book is a free on-line book Introduction to Computer Graphics (version 1.2, January 2018) by David Eck. We will use this on-line book for webGL and Three.js.

 

The lectures are influenced by additional resources including: a volume of well known graphics authors active in the SIGGRAPH community.


 

Fundamentals of Computer Graphics 4th Edition

Steve Marschner
Peter Shirley

ISBN-13: 978-1482229394
ISBN-10: 9781482229394

(amazon link here) available immediately as an e-book.

Required (not free)

     
 

Introduction to Computer Graphics
Version 1.2, January 2018

David J. Eck (eck@hws.edu)

Required (free online ebook link here)

     
 

Top Hat Pro (later)

Required (not free - $30)

     
     

 

Grading Policy and Evaluation:

You are evaluated on Online-quizzes, 1 page paper summaries, presentations and implementation of software projects. There will be a final project but no exams (midterm and final exam are replaced by projects). The distribution is below, but is subject to change.

NOTE: Syllabus & policies are solidified after 3rd week of class - but there still may be minor changes.

 

Projects (P4-P5)

55%

Final Project: (take home project, live feed presentation during final exam period & code, report)
15%

Participation : on-line (attendance with camera on)

5%
HW/on-line discussions/on-line quizzes
10%
Weekly Summaries (starting around week 3)
10%
Presentations/Demo (2 per student in a group)
05%

 

The general grading philosophy is the following (the context is "programs" and "projects" but it should generalize to summaries and to other required elements). See translation from percentage to letter grades finger grade in link further below.

A+ Extraordinary, goes beyond the minimum criteria both in depth and breath. Design is thorough and well thought out, code base and implementation is beautiful- modularized, complete, clear and concise. A well thought out debugging strategy is apparent. Well documented code. The evaluation plan is well executed and well thought out, goes beyond the simple cases and illustrates strong problem solving skills.

A Superior (somewhat less than an A+, almost perfect code, beautiful, concise, minimum criteria met, not as much depth and forethought as an A+ but it is superb), goes beyond meeting the minimum criteria demonstrates depth, can apply solution to a variation of similar problems.

B Good, minimum criteria well executed and well done, shows some depth and understanding, meets most test cases but does not demonstrate as much forethought as an A;

C Fair, minimum criteria met, but could have been executed with more depth and forethought.

We will use the College Board's convention to convert from percent grades to letter grades grades:

(see here).

Late Policy

Assignments, and summaries (if applicable to this class) are due on the date and time specified in the assignment or the day of demonstration (email as a time stamp and hand-in hardcopy the next day). Late homework cannot be accepted). There are some exceptions with mitigating circumstances - please discuss these with instructor before due dates).

Homework and Projects Posting

Projects and homework will be posted on the web from the scheduling page (see link top menu bar), and will be accessible from anywhere on the Internet. Assignments may be posted before they are officially assigned; however, you should not assume that an assignment on the schedule page is in final form until the date it is assigned. In other words, assignments are subject to change before the date that they are officially assigned. There may be additional required elements.

The software programming projects are of-course an important component of this course. You'll be making programs of the languages specified in class or on schedule page (e.g., Python, Java, Scala, or C, C++). The programming tools you'll need (game engine, simulation engine, compiler, debugger, etc.) may be denoted on the project page and should be downloaded and installed on your laptop and /or workstation.

Currently the programming languages used in this class are: JavaScript & Java and related languages.

Technical Paper Summaries

You will read/skim at least one technical paper or essay every week. For each week each you will prepare a 1-page summary on one of the presented papers (you may chose any one of the two). This summary must be submitted to the grader before midnight on Friday following the presentation. The summary needs to reflect that you made an effort to read and understand the paper. The summary should address the five questions listed on the slides covering presentations.

The fifth question concerns a brief critique of the delivery of material bu the speaker. Here you need to address if pertinent material should have been included, and suggestions on improvements. You may skip up to 2 summaries without a penalty (see reading page link above for specific questions that you need to address). If you submit and cover every week you may be subject to earn bonus points.

Presentations

You will present on 2 topics throughout the semester, each presenter is expected to read additional technical papers (or essays) to ensure breadth of the week's topic. Some suggestions to add "breath" to your theme topic are listed in the reading list, or you may choose your own. You will select the theme, but the specific paper will be assigned (however you may suggest or express interest in particular paper). If we have a large class the presentations may be presented as a group (a group of 2) presentation.

Participation and Attendance

Class attendance is mandatory; we do take attendance frequently, and class participation is 5% of your grade. Excused absences count when taking attendance - we do take it frequently so missing one or two classes should have minor effect on your grade. You may earn bonus points for perfect attendance. When class has an online component we take attendance via screen capture and you must have camera turned on inorder as being counted as being in attendance.

Instructor Enforced Withdrawals

Missing 8 days or more of classes (inclusive of excused absences) is considered excessive absentia and may result in an instructor enforced withdrawal.

Missing 2 scheduled exams (inclusive of excused absences) may result in instructor enforced withdrawal.

Other Class Policies

If you miss class it is your responsibility to find out what you missed if you don't attend class. Please do not email instructor and ask what you have missed - you may ask however after class.

You are required to subscribe to the class email list or forum (Piazza)- and be aware that sometimes homework is assigned or templates are distributed via this forum - or there are some hints posted in the forum - you probably do not want to miss that.

The purpose of the assignments and projects is familiarization of concepts and details of programming.. The assignments & projects are expected to be individual work unless other specified. However, you are encouraged to ask questions of one another, and to respond to other student's questions on the email list.

Direct exchange of code is prohibited, as is line-by-line assistance from anyone or thing (this includes Internet copying). This is checked for every assignments. If you do get help from other sources than book, slides, or TA you must acknowledge the source in the material that you turn in -but note still no copying is allowed.

Unless otherwise specified, exams are closed-book and no additional materials may be used. Missing an exam: absence due to serious illness will be an acceptable reason for missing an exam. Doctor's diagnostic note is required (these absences may be confirmed with your doctor). The final grade will be scaled accordingly.

Contributions:

The instructor has happily volunteered to teach this class. The material is drawn from Prof. Hamid Arabnia's Graphics class and Prof. Blair MacIntyre @GTech, also from the textbook authors Marschner, and Shirley and David J Eck- and the graphics course at Carnegie Mellon University.

Class Photo: A Previous Class