Overview

This course will be using skills based grading, meaning that a student’s grade will be solely based on their ability to prove competency of the core skills covered throughout the course. Some key components of this grading framework are:

  • All skills will be rated on a 0-4 scale.
  • Students will be given multiple opportunities to show mastery of each skill.
  • The skills will be clearly listed on the course syllabus.
  • Skill grades will be based on assessments (exams, quizzes, projects, labs, etc) only.
    • Assessments will be clearly noted when assigned.
  • Homework, classwork, entrance/exit tickets and other assignment types will be given, but will not factor into a students skill grade.

Assessments

All assessments are designed to assess a students skill competency. It will be clear which skills are to be assessed for a given assessment. Instead of a single grade for an assignment (i.e. 92/100, 41/50, 3.5/4), students will be given a single grade for each skill assessed on a 0 - 4 scale as follows:

  • 4: Mastery of the skill demonstrated.
  • 3: Competency of the skill demonstrated.
  • 2: Developing competency of the skill demonstrated.
  • 1: Minimal competency of the skill demonstrated.
  • 0: No part of the skill demonstrated.

Skills for Computer Graphics

N.B. This list may change slightly over the course of the semester. Any changes will be made clearly during class and updated here as well.

Course Skills

Below is the list of skills that are the key components of this course. Mastery level must also include demonstration of Competency level as well.

Skill Minimal Competency Developing Competency Competency Mastery
1. Building/Running a large program. Can write a single file program that compiles/runs. Can Write a multi files program that compiles/runs. Can use a makefile to build/run a program that contains multiple source code files. Can use a makefile with multiple useful targets such as build, run and clean for a program that contains multiple source code files.
2. Writing image files Can create a valid ppm file. Can create a valid ppm file programmatically. Can create a valid ppm file and png (or other compressed format) programatically. Can create an animated gif file from multiple single image files.
3. Generating demonstrative images. Can create an image using a new feature of the graphics engine. Can create an image the demonstrates some parts of a new specific feature of the graphics engine. Can create an image that demonstrates Can create a complex image that demonstrates a new specific feature of the graphics engine and share it on the gallery.
4. 2D Graphics Algorithms Can successfully program part of one 2D graphics algorithm. Can program one 2D algorithm (e.g. line or circle). Can program two 2D algorithms. Can program the line, circle and spline algorithms.
5. Using matrices and edge lists Can store edges in a matrix. Can print matrices clearly. Can iterate over an edge matrix and draw lines. Can perform matrix operations like multiplication and creating identity matrices.
6. Applying transformations Can create at least two transformation matrices. Can create translation, scale and rotation matrices. Can apply a transformation matrix to an edge list. Can maintain separate edge lists and transformation matrices, applying transformations as needed.
7. Parsing Can correctly parse some graphics commands from a simple script. Can correctly parse all graphics commands from a simple script. Can use compiler building tools to parse graphics scripts that contain drawing commands and variable declarations. Can use compiler building tools to parse graphics scripts that contain drawing commands, variable declarations, and looping structures.
8. 3D Graphics Algorithms Can generate the points on the surface of one 3D shape. Can generate the points on the surface of two or more 3D shapes. Can create a polygon mesh for 2 or more 3D shapes and store the polygons in a polygon list. Can, in a single program, maintain and use separate polygon and edge lists, as well as a transformation matrix.
9. Creating solid shapes Can iterate over a polygon list to draw a polygon mesh. Can use scanline conversion to fill in polygons in a polygon list. Can use backface culling when iterating over a polygon list. Can use z-buffering when iterating over a polygon list.
10. Lighting and Shading        
11. Using a relative coordinate system        
12. Animation