Computer Graphics CS4300

"Let's make some pretty pictures -- efficently" -- Your Instructor
Computer Graphics
Computer Graphics
Computer Graphics
Computer Graphics

Course Information

  • Course Number: CS 4300
  • Semester: Spring 2018
  • Hours: 11:45am-1:25pm
    • Monday Schedule: In-class partner Labs
    • Thursday Schedule: Lecture | In-Class Activity
  • Location: Mugar Life Sciences 201
  • Piazza: Forum Board


  • Instructor: Mike Shah
  • E-mail: mikeshah( a t )Northeastern
  • Office: Nightingale 132A
  • Office Hours: Thur: 2-6pm or by Appointment arranged by e-mail.

Teaching Assistant

  • Name: Karan Tyagi
  • E-mail: tyagi.k (a t)
  • Office Hours: TBD
    • Mon 2:00 -3:30 pm WVF 116
    • Tue 11:30 am - 12:30 pm WVF 116
    • Wed 2:00 - 4:00 pm RY 299
    • Fri 1:30 - 3:30 pm WVH 362
    • Sat 10:00 -11:40 am WVH 164

Course Description

This course teachings the fundamentals of Computer Graphics. We will be using C++ and OpenGL to explore computer graphics programming. C++ may be new to many students and often poses to be one of the challenges to entering the field of computer graphics. We will have a brief crash course into C++ as well as a refresher of linear algebra throughout the course.

Registrar Description: Charts a path through every major aspect of computer graphics with varying degrees of emphasis. Discusses hardware issues: size and speed; lines, polygons, and regions; modeling, or objects and their relations; viewing, or what can be seen (visibility and perspective); rendering, or how it looks (properties of surfaces, light, and color); transformations, or moving, placing, distorting, and animating and interaction, or drawing, selecting, and transforming.

Course Objectives

By the end of this course, you will be ready to:

  • Build graphics applications using OpenGL and C++.
  • Be able to write OpenGL in other languages you know (Javascript, Java, etc.)
  • Be able to take more advanced graphics courses (Advanced graphics, Computer Vision, GPGPU, etc).
  • Understand how to utilize the GPU for general purpose programming (e.g. OpenCL).
  • Position yourself for jobs in gaming, entertainment, or hardware involving graphics.


There will be no required textbook for this course. However, these resources are recommended.

Peter Shirley Book Real Time Rendering


  • (Undergraduate level CS 1500 Minimum Grade of D- or Undergraduate level CS 2510 Minimum Grade of D- or Undergraduate level CS 3500 Minimum Grade of D- or Undergraduate level EECE 2560 Minimum Grade of D-)
  • (Undergraduate level MATH 1260 Minimum Grade of D- or Undergraduate level MATH 2331 Minimum Grade of D- or Undergraduate level MATH 2341 Minimum Grade of D-)

Additional Course Prerequisites

  • This course will be taught using C++. It is possible you have not taken a specific course on C++ in your time at Northeastern.
    • This means, you will learn more in this class. That is a good thing.
    • This means, you will have to work hard. I will support you in learning some C++, and early lectures will be devoted to some C++.
    • You can plead your case if you want to use another language. This likely means working on your own in the entire semester.
    • I however feel strongly about using C++, as the game and entertainment industry largely use C++. The C language is additionally used for programming GPUs, so it can be easier think in one language.
  • You should have basic knowledge in github, using any text-based editor, and how to compile, run, and debug programs.

Academic Integrity and Non-Discrimination

Students and instructors are to follow the Northeastern policies on these important issues.

  • Northeastern Non-Discrimination Policy - This classroom is a safe space for the instructor and students to talk about ideas, share viewpoints, and learn.
  • Northeastern Academic Integrity Policy - You only cheat yourself if you are not honest. Most often cheating occurs when an individual falls behind or perhaps has other circumstances occurring in their life. Please consult the instructor before ever considering cheating.
    • If you are caught cheating I have to report the violation. My official policy is you receive a 0 in the course. Always remember, if you use any external sources, you must cite them.
  • Student Code of Conduct: Students and instructors will follow the following guide for how we conduct ourselves. This is to create a respectful environment where everyone can learn.

Make-Up Policy

Students participating in varsity athletics(this does not include club sports or intramurals) or other University sanctioned events may have the need for a make-up. Please contact me in advance of such events, so that appropriate accommodations can be made.

Occasionally, other life events and circumstances occur that were not planned. If this is the case, please e-mail me privately.


Part of what makes Northeastern University unique, is our diverse cohort of students, faculty, and staff. In order to support this, Northeastern is committed to providing equal access and support to all qualified students through the provision of reasonable accommodations so that each student may fully participate in the University experience. If you have a disability that requires accommodations, please contact the Student Accessibility Services office at or (617) 373-2675 to make an appointment with the Disability Resource Center representatives in 20 Dodge Hall to determine appropriate accommodations.

Lateness and Attendance Policy

Students who do well in this course tend to show up to the course consistently, participate, and engage with their peers. Come to class, come on time, and build good habits! In-Class activities that are not attended are a zero.

Assessment/Course Polices

Please find below the grading distribution that will be used for this course. You will find the grade you earn in this course on blackboard.

  • In-Class Activity: 13% (13 at 1% each)
  • In-Class Labs:     22% (11 at 2% each)
  • Exam/Quiz:         15% (1 total)
  • Assignments:       50%

  • The grade system follows the University Grading System.
    • A  = 95 – 100
    • A- = 91 – 94
    • B+ = 87 – 90
    • B  = 83 – 86
    • B- = 80 – 82
    • C+ = 77 – 79
    • C  = 73 – 76
    • D+ = 67 – 69
    • D  = 63 – 66
    • F  =  0 – 62
  • In the event of a snow day (i.e. we miss a lab or in-class activity) the weight of each assignment increases (There may also be shuffling of course material if we are interrupted).
  • The expectation is that the assignments are fair but difficult, so you should start early!
  • Late Submissions of Assignments receive 10% off per day submitted late (up to 3 days max, then 0% received)
  • Assignments that do not compile/open receive no credit Simply put, programs that do not compile do not do anything.
  • There are no "re-grades" or points awarded one week after your grade is posted. "re-grades" can result in a higher or lower score.
  • If you are currently waitlisted, you must submit your homework on time. That is the gamble! If you do not have blackboard access, you will submit by e-mail or other course mechanism.
  • There are no extra credit assignments. I reserve the right to add points to assignments that do go above and beyond however.
  • I reserve the right to modify the grading scale in your favor if you show exemplary proficiency in any of the catagories. I will never modify the scale to lower a students grade.
  • Everyone needs to come see me in office hours (or by appointment) at least one time during the semester to introduce yourself. The purpose is so that you:
    • Know where my office is.
    • Get used to coming to office hours.
    • Let me know how I can help you achieve your goals.
  • No Facebook, no cell phones. Not only does it distract you, it distracts others!