COS 350: Computer Graphics
Fall 2024 Course Syllabus
Prepared: | 2024.12.16 |
Meeting: | MWF 11:00, Euler 103 |
Final: | Wed 2023.12.11 15–17 |
Credits: | 3hrs |
SP/CC/etc.: | none |
Prereqs: | COS 121 |
Instructor
Dr. Jonathan Denning
Associate Professor, Department Co-chair
Computer Science and Engineering
Office: | Euler 206 |
Email: | jon.denning@taylor.edu |
Phone: | 765-998-4931 |
Hours: | see contact info or schedule appointment |
Course Overview
This course provides you with an understanding of the basic concepts of modern computer graphics. The emphasis of this course is on techniques and image production as much as algorithms and data structures. This course focuses on 2D and 3D scenes as input, and other types of dimensionality of information will also be discussed.
The course includes traditional areas of computer graphics such as 2D graphics primitives, 3D algorithms and projections, scene graphs, modeling, and rendering. We will focus on generating images of 3D scenes using two rendering techniques: ray tracing and rasterization. Interactive programming will be introduced.
Throughout the course, we will use the V programming language. We might also use other languages, basic graphics APIs, and digital content creation programs (ex: Blender).
Learning Outcomes
By the end of the course, the student will be able to understand:
-
Fundamental graphics and visualization concepts
- Identify common uses of digital presentation to humans
- Explain how analog signals can be reasonably represented by discrete samples
-
Basic rendering
- Describe the basic graphics pipeline
- Explain ray tracing/rasterization duality for the visibility problem
- Explain the concept and applications of texture mapping, sampling, and anti-aliasing
- Create a program to display 3D models
- Obtain 2D and 3D points by applying affine transformations
- Contrast forward and backward rendering
The student will be at least introduced to:
- Geometric Modeling: Basic theory of geometric modeling
- Computer Animation: Basic theory of animation and motion graphics
- Parallels Architecture: Describe the advantages and limitations of GPUs vs CPUs
Content Outline and Tentative Schedule
The table below shows approximately how much material we will cover and for how long. This is a tentative schedule; I reserve the right to alter this plan (including material covered and the associated schedule) for any reason.
Topic | Weeks |
---|---|
Images | 1 |
Linear Algebra | 1 |
Rasterization | 1 |
Raytracing | 2 |
Transformations | 2 |
Projection | 1 |
Pipeline | 1 |
Other Topics | 3 |
Resources
There are no required texts for this course, but below is a list of a few recommended texts that will be available.
Interactive Graphics:
- WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL, Matsuda and Lea, Addison-Wesley, 2013. Amazon. ISBN: 978-0321902924.
- Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL, 7th edition, Angel and Shreiner, Addison-Wesley, 2014. Link: Amazon. ISBN: 978-0133574845
Ray/Path Tracing:
- Ray Tracing in One Weekend, Amazon Digital Services (Kindle), Peter Shirley, 2016. Amazon, Online.
- Ray Tracing: the Next Week, Amazon Digital Services (Kindle), Peter Shirley, 2016. Amazon, Online.
- Ray Tracing: The Rest of Your Life, Amazon Digital Services (Kindle), Peter Shirley, 2016. Amazon, Online.
Focused on Game Development:
General / Foundations:
Other materials will be made available by the professor and department.
The course has a page on Brightspace at https://taylor.brightspace.com/d2l/home/14778. See the Learning Management System section below.
We will use Piazza for discussion and managing help. The URL to the course Piazza page is https://piazza.com/taylor/fall2024/cos350. Note: You must not publicly post any source code to Piazza; this must be posted privately to the instructors only. You may, however, ask general questions about the algorithm or data structure of the problems. See link to see details on how Piazza maintains FERPA compliance.
Languages and Software
Graphics programming will be done using the V programming language. Several other languages and APIs (OpenGL/WebGL, HTML, JavaScript, and GLSL) might be used.
Assignments are designed to be friendly to all modern platforms (win, osx, linux).
The free and open source Blender software may also be used.
Requirements
The requirements for the course are broken up into a few categories: homework assignments, individual programming projects, "show-and-tell" reports, and a group programming project.
-
Homework assignments provide opportunity to apply new skills in a "show your work" setting. Typically, assignments will be done with pencil, paper, and calculator.
-
Programming projects abstract away some concepts, leaving the practical application to be discovered and implemented.
-
The group project offers a more open-ended application that fits the interests of the group.
-
The show-and-tell report provides a broad view into various graphics-related news and events.
Although math courses are not listed as prerequisites, we will use some basic linear algebra, geometry, trigonometry, calculus, and statistics throughout the course. Any necessary skills will be discussed in class or on an as-needed basis.
Extra Credit
There will be several opportunities for extra credit throughout the term. Below are two examples.
I will host a few movie nights, where we will watch and discuss movies / movie clips that pioneered CG techniques. For example, we will analyze the improvements in image and animation quality seen through the Pixar's Toy Story franchise.
The GameJam competition is another great way to earn extra credit. Students can receive extra credit by doing any of the following: participating in the competition, stopping by to playtest the games, or judging the games.
Extra credit on assignments and projects are applied directly to the individual grade, not final grade.
Performance Assessment
Assignments and projects are the primary form of assessment. Participation in the course will also contribute to the overall score. Project extra credit will only count toward the Projects category. Extra credit outside projects will count for no more than 5% of the total grade.
Grading for the course will be as follows.
Deliverable | Weight |
---|---|
Assignments | 30% |
Projects | 40% |
Final Project | 20% |
Participation | 10% |
Extra Credit | ≤+5% |
General Course Policies
The following are general policies and details for courses that I instruct. Unless otherwise stated above, these policies apply to this course. Please read them carefully.
Scoring and Grading #
Assignments are broken down into individually graded items. Any item to be graded will be scored on the 3-point scale shown below.
0 | unsatisfactory, nothing of value was submitted, does not satisfy requirements |
1 | solution submitted, but clearly not correct, contains serious flaws |
2 | solution is satisfactory, demonstrates understanding but with minor flaws, only partially correct |
3 | perfect solution, meets every requirement and expectation, clearly demonstrates thorough understanding |
A score of 0, 1, and 3 are clearly identifiable; anything not clearly identifiable is scored a 2. If I feel a particular item is more important and therefore should carry more weight, I may use a multiplicative factor (\(n\)) to change the possible scores for that item to be 0, \(n\), \(2n\), and \(3n\).
The reason for using discrete values is to avoid arguments over unimportant issues, to remove (as much as possible) the subjectivity in grading, to allow (as much as possible) room for unit/automatic testing systems, and to reduce the turnaround time for receiving a grade. Furthermore, this scoring can often be more telling than some arbitrary number of points.
I convert an individual item score to a letter grade as follows: 0 maps to an F, 1 to D-, 2 to C (average), and 3 to A. For a final grade for an assignment, I use the following chart with \(T\) is the total points available divided by 18.
A- | \((16T,17T]\) | A | \((17T,18T]\) | ||||
B- | \((13T,14T]\) | B | \((14T,15T]\) | B+ | \((15T,16T]\) | ||
C- | \((10T,11T]\) | C | \((11T,12T]\) | C+ | \((12T,13T]\) | ||
D- | \((4T,6T]\) | D | \((6T,8T]\) | D+ | \((8T,10T]\) | ||
F | \([0T,4T]\) |
Below is an interactive table. For example, letter grades for points (\(T\) above) are given below.
A- | A | ||||||
B- | B | B+ | |||||
C- | C | C+ | |||||
D- | D | D+ | |||||
F |
Note: there will be no rounding up when determining your final score. For example, receiving a 16 out of 18 will always be a B+ and never an A-. I do reserve the right to award a higher grade than strictly earned; outstanding attendance and class participation figure prominently in such decisions.
Exams and final course grade will be scored similarly.
I have based my grading philosophy on an article by Dr. William J. Rapaport.
Late Assignments
As in the world outside academia, time management is a valuable and import skill to master. The assignments for this course are designed to help you learn and master the computer science material. As in the world outside academia, time management is a valuable and important skill. In an effort to help you understand and master the material as well as to help you develop good time management skills, no assignments will receive credit if turned in late. Assignments will have a cut-off set for the due date and time, and only commits with timestamps before the due date and time will be accepted for Git-based assignments.
“Slothfulness casts into a deep sleep, and an idle person will suffer hunger.
”
— Proverbs 19:15
Attendance
Physical attendance is required. I will be in class each day, and I expect you to be there also. In general, I am very understanding about students who must miss class due to a sanctioned Taylor activity, job interview, family emergency, and the like. If possible, let me know in advance if you will not be in class. I will work with you to arrange make-up instruction, quizzes, etc.
Many class periods will include discussion of reading materials and examples. You are responsible for everything that occurs when you are away for any type of absence. I will work with you if you have an excused absence, but you are responsible to communicate (in person during office hours or by e-mail) with me when an absence is excused. Exams and Quizzes which are missed may not be made up unless it is cleared with me PRIOR to class. Any make-up exam or quiz will be taken at an agreed upon time. (No exceptions!) Communication is essential!
Along with a physical presence, it is important to have a mental presence. Come to class prepared to participate in discussions. Readings are expected to be completed by the date they are listed in the schedule. Refer to the Electronics Usage section for more details.
Examples and other materials presented in class may contain errors. Therefore, it is not wise to take notes in class without thinking. Materials recorded but not understood is less valuable than materials understood but not recorded. There should be "real-time" thinking on the part of both the instructor and the student during class. If materials are not understood, a question should be asked. If an error is made, the student should make the instructor and the rest of the class aware of it.
See attached for university-wide policy on excused absences.
Electronics Usage
Research shows that computer/tablet/phone usage during class, even for taking notes, has a negative impact on retention, processing, and performance. Therefore, except for pre-generated materials such as presentations, computer use during lectures is disallowed, even if computers are accessible in the room. Note that this policy only applies to times of lecturing and not during lab time or certain participation activities.
An exception may be granted by writing a 1-page paper arguing why you choose to use an electronic device in the classroom. This paper must present a reasonable argument against studies like the one cited in this recent NPR article and this Business Insider article. Important: the exception comes with the caveat that you must sit where you will not disturb others, and that you may not use the device to check e-mail, engage in social networking, surf the web, play video games, or do any other activity not directly relevant to current classroom activity.
Confidentiality
Students should talk in person or use the LMS (Moodle / Canvas / Blackboard / Brightspace) to communicate sensitive information to the professor (such as grades).
Students may be asked to (or choose to) use external information systems such as Slack, GitHub, Piazza, and/or Google applications for this course. Students should not transmit sensitive information using these external communication services. Taylor University has no control over information shared on these external platforms.
Students should not communicate sensitive information over email. Email is nonsecure.
General University and Department Policies
The following are general university or department policies that apply to this course.
Please read them carefully.
Final Exams Policy
“Taylor operates on an academic calendar, which includes finals week as an integral part of each fall and spring term. During that week, each class meets at the time designated in the published exam schedule.
Students must meet for their final examinations at the assigned hours listed in the finals week schedule. Exceptions will be made only because of serious illness or the death of an immediate member of the family (mother, father, brother, sister, grandparent, spouse, or child). Reasons such as plane schedules, availability of flights, and rides leaving early are not acceptable exceptions. Contact the appropriate School dean for requests that qualify as stated above.
Students scheduled to take more than two final exams on the same day may, with written permission from a faculty member, reschedule an exam(s) to maintain a maximum of no more than two exams per day. Students should contact the Registrar's office to begin the rescheduling process. Rescheduling must be approved at least 10 class days prior to the beginning of exam week.
”
Copied from Student Handbook on 2022.08.10.
(Un)Excused Absence Statement
“Class attendance is expected as your presence is an important part of your learning and also your classmates' learning. You may submit an excused absence via the online form. The Excused Absence Form is also available via Quicklinks on the student portal. If you have questions about excused absences, contact Ms. Trina Hartman. The Class Attendance Policy is located in the catalog and outlines attendance expectations, including criteria for excused absences.
”
Updated 2023.08.04.
Academic Resources and Accommodations
AEC | Any academic need |
Jill Smith | Peer tutoring |
Scott Barrett | Students with disabilities support services |
Writing Center | Help with any part of the writing process |
Zondervan Library email, web |
Student research assistance |
For help with any part of the research process, please email zondervanlibrary@taylor.edu to connect with a librarian or to set up an appointment. Walk-up assistance is available during most of the Library's open hours. See the Library's website for more details on hours and to connect via chat.
Updated 2024.08.25.
Learning Management Systems
The Computer Science and Engineering department uses Brightspace as our Learning Management Systems.
You are responsible to check the appropriate LMS regularly for assignment due dates and other announcements posted to the site. For due dates, the calendar is your friend.
Collaboration
The Internet has fundamentally changed how we work in many dimensions, two of which are in collaboration and in assistance. Sites like stackoverflow.com allow a way for a programmer to get help with almost any programming-related problem. While collaboration and assistance—whether by peer, community, or instructor—can bring about learning and help with troubleshooting, your task as a university student is to learn how to discover, diagnose, and correct bugs on your own. Each assignment and project will state how much collaboration is allowed for the three possible areas listed below.
- understand the problem
- develop a solution
- implement and debug
Note: if there is any ambiguity in the acceptable level of collaboration, check with the instructor; never assume that collaboration is implicitly allowed. No collaboration of any kind—Internet, peer, book, cheat sheets, etc.---is allowed for quizzes and exams unless explicit approval is given.
Honesty and Academic Integrity
As a student at an institution whose goal is to honor Christ in all that is done, I expect you to uphold the strictest standards of academic integrity. You must do your own work, cite others when you present their work, and never misrepresent your academic performance in any way. Violation of these standards stains the reputations of you as a student, Taylor as an institution, and Jesus as our Lord. Such a violation will result in your failing the course and other disciplinary action by the University.
It is important to note that, although collaboration and getting feedback on one's own writing and coding are essential parts of the writing process, having a text or program altered for the writer/coder is not.
- Plagiarism
- In an instructional setting, plagiarism occurs when a person presents or turns in work that includes someone else's ideas, language, or other (not common-knowledge) material without giving appropriate credit to the source.
- Common Knowledge
- any knowledge or facts that could be found in multiple places or as defined by a discipline, department, or faculty member.
Plagiarism will not be tolerated and may result in failing this course, and may also result in further consequences as stipulated in the Taylor catalog.
“Academic dishonesty constitutes a serious violation of academic integrity and scholarship standards at Taylor that can result in substantial penalties, at the sole discretion of the University, including, but not limited to, denial of credit in a course as well as dismissal from the University. Any act that involves misrepresentation regarding the student's academic work or that abridges the rights of other students to fair academic competition is forbidden. Academic dishonesty includes, but is not limited to, cheating on assignments or exams, plagiarizing, submitting the same (or substantially the same) paper in more than one course without prior consent of all instructors concerned, depriving others of necessary academic sources, sabotaging another student's work, and using without attribution a computer algorithm or program, or AI without attribution and prior approval from the professor. In short, a student violates academic integrity when he or she claims credit for any work not his or her own (e.g., words, ideas, answers, data, program codes, music), including having a peer or parent contribute material, or when a student misrepresents any academic performance. All major acts of academic dishonesty, as defined herein, must be reported by the faculty member to their dean and the Office of Student Development. Departments or professors may have discipline- or course-specific policies.
Plagiarism: In an instructional setting, plagiarism occurs when a person presents or turns in work that includes someone else's ideas, language, or other (not common-knowledge) material without giving appropriate credit to the source.
Taylor distinguishes between major and minor plagiarism infractions. Examples of minor infractions include inappropriate or inadequate citing or not crediting ideas from class readings. Examples of major infractions include taking significant portions of text from any source with no attribution or having a peer or AI software help write the paper. Please see the Academic Dishonesty and Plagiarism sections in the student handbook for full descriptions.
Reference to the “Support Services” available within each Brightspace course that refers students to several academic support resources. (Library, Writing Center, Tutoring, AEC, Attendance Policy-Excused Absences, Title 9, Counseling, ADA): Please see the “Support Services” tab in all Blackboard courses for full descriptions of Academic Dishonesty and Plagiarism.
”