CS 370
Fall 2022
Instructors:
Section 101 (9am): Dean Zeller, dzeller@ycp.edu Section 102 (12pm): David Babcock, dbabcock@ycp.edu
Office Hours:
Prof. Zeller: T R 12:30-1:30PM, W F 8:00-9:00AM, 10:30AM-12:00PM, 1:30-2:30PM, or by appointment
Dr. Babcock: M 1-3PM, T 2-3PM, W 1:30-3PM, R 8:30-9:30AM, or by appointment
Class times:
Section | Days | Time | Room | Final Exam |
---|---|---|---|---|
101 | Wed/Fri | 9:00-10:15AM | KEC 124 | Wed, Dec 7 - 8:00-10:00am |
102 | Wed/Fri | 12:00-1:15PM | KEC 124 | Fri, Dec 9 - 12:45-2:45pm |
Course Description
This course introduces the fundamental concepts in computer graphics programming. Topics include color models, basic coordinate transformations and clipping, raster and vector models, and basic rendering techniques. Additional topics may include texture mapping and ray tracing. Students will demonstrate these topics through projects using a standard graphics API as the programming platform.
Prerequisites
CS201 – Fundamentals of Computer Science II - with a grade of 2 or better
Required Textbook
Kessenich, Sellers, and Shreiner. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V – 9th Edition. Addison-Wesley, 2017.
Supplemental Resources
Hughes, van Dam, McGuire, Sklar, Foley, Feiner, and Akeley. Computer Graphics: Principles and Practice in C – 3rd Edition. Addison-Wesley, 2014.
Course Structure and Expectations
Class meetings will be primarily discussion of questions related to the topic and/or working on corresponding lab exercises which are designed to illustrate the concepts from the lecture notes. Thus you should come to each class meeting prepared to work on the lab with any questions on the material. A series of homework assignments that will consist of both written and programming parts and will be assigned at approximately 1-2 week intervals, to be completed individually.
All the labs and assignments are cross platform and will be using the CLion IDE. Refer to the Resources page for installation instructions for the various external libraries needed for the course.
There will be homework assignments consisting of both written and programming components, three midterm exams, and one final project.
You will only get as much out of this elective course as you choose to put into it. Since we will be covering a significant amount of material in the course at a rapid pace, it is imperative that you keep up by participating in the class meetings. You must have completed the lab activities up to and including the one for the current class meeting in order to receive assistance on the current programming assignment. You will only get as much out of this elective course as you choose to put into it.
Learning Outcomes
By the end of this course, you will be able to:
- To recognize the architecture of graphics systems, in particular graphics processor pipelines
- To represent the geometry of 2D and 3D objects
- To manipulate and transform objects both mathematically and programmatically
- To apply lighting, clipping, and perspective effects to scenes
- To produce advanced rendering effects such as bump and texture mapping
- To write graphics programs using OpenGL and the GLFW library
- To write simple vertex and shader programs using GLSL and the GLEW extension library
Policies
Grades
Grades are assigned on a 100-point scale:
Numeric Range Letter Grade 90-100 A (4.0) 87-90 B+ (3.5) 80-87 B (3.0) 77-80 C+ (2.5) 70-77 C (2.0) 60-70 D (1.0) 0-60 F (0.0)
Your overall grade for the course will be determined as follows:
- Homework assignments: 30%
- Midterm exams: 30%
- Final project: 40%
Course website
Please check the course web page, regularly for important announcements.
Exams
No make-up exams will be given without approval of the instructor prior to class unless proof of extreme emergency or illness is provided. All exams will be closed book, but syntax reference sheets will be provided.
You must receive a score of 70+ on at least one exam to earn a passing grade for the course.
Reading Assignments
Reading assignments are posted on the course schedule. I expect you to do the reading before class. Class time will be for asking questions about parts of the reading you did not understand to your satisfaction and working on the lab activity. The class format will consist of a brief discussions of the day’s topic, such that the majority of the time can focus on completing the corresponding lab.
Homework assignments
Homework assignments will be based on the lab activities performed during class and will include both written and programming components. Collaboration on homework assignments is encouraged, but each student must submit their own assignment solutions that demonstrate their understanding of the material.
You MUST make a legitimate attempt to complete every homework assignment. I reserve the right to fail any student who does not make a good faith effort to complete all of the homework assignments.
Late assignments will be marked down 20% per day late. No credit will be given for assignments that are more than three (3) days late unless prior approval has been granted for an extension by the instructor.
Programs will be graded based on the following criteria:
4: Superior. The program extends the basic requirements significantly by implementing additional graphical features covered in the text and other resources.
3-3.5: Good. The program goes beyond the basic requirements by embellishing the final output using techniques discussed in class.
2-2.5: Average. The program meets only the basic requirements of the assignment.
1: Below Average. The program produces mostly incorrect output or shows little attempt at a solution to the problem.
0: Failure. The program does not execute.
Final Project
The final project will demonstrate all the concepts learned throughout the course of the semester. There will be periodic milestones throughout the semester to encourage you to start early and make continuous progress as new material is covered. There will be a final demonstration of your project during the final exam period to highlight all the functionality present.
Posting and submission of assignments and labs
Assignments and labs will be posted as zip files on the course web page.
Assignments will be submitted using the Marmoset server. You will receive an email containing the username and password you should use for this server.
Attendance and Participation
Students are expected to attend all scheduled classes and read the appropriate text material prior to class. If you must miss a class, it is your responsibility to notify the professor prior to class. Students are responsible for all material covered in class.
You may work ahead and submit any assignments early, but you must not fall behind. Class time is intended to be used for answering questions about the reading, labs, and assignments. You are responsible for keeping up with the reading assignments as described in the schedule.
Professionalism
I expect you to conduct yourself as a professional in this course. Professionalism includes:
- Respect for and courteous interaction with peers, faculty and facilities;
- Integrity, which includes at its core honesty, responsibility and accountability for one’s own actions;
- Sensitivity and appreciation for diverse cultures, backgrounds, and life experiences;
- Constructive evaluation, which means that criticism is offered and accepted in a productive manner;
- Self-reflection and identification of one’s own strengths and weaknesses;
- Responsibility for one’s own education and learning;
- An attitude that fosters professional behavior in colleagues and peers;
- Punctuality at meetings and class sessions;
- Attentive behavior during class sessions, avoiding personal or social use of cell phones, laptops, or other electronic devices;
- Acknowledgement of the Kinsley Engineering Center as a professional workplace, and treatment of this facility as a business or office space, not as an informal space.
I reserve the right to enforce this code through the York College Code of Student Conduct.
Academic Integrity Policy (Philosophy Statement)
York College of Pennsylvania, as an institution of higher education, serves to promote and sustain the creation, acquisition, and dissemination of knowledge. In order to fulfill this purpose, an environment of integrity, dependability and honesty must be maintained by all members of the York College community. Without a foundation based on intellectual honesty and integrity, the very ability to uphold the academic endeavors that York College strives to pursue is inhibited. The Spartan Oath embodies the expectation that all members of the York College community foster an environment of integrity and responsibility. Recognize that adhering to an ethical standard of honesty leads to professional, mature and responsible citizens, and enables society at large to trust our scholarship, research, and conferred degrees. Thus, each member of the York College community must be truthful, honest, personally and professionally responsible, and respect the intellectual contributions of others.
The following policy pertains to homework and graded (individual) programming assignments:
All graded (individual) programming assignments are to be completed individually. I encourage you to discuss high level concepts with other students, but any work you submit must be yours alone.
Direct copying of code or other work from other students, web sites, or other sources is absolutely forbidden under any circumstances.
Any sources (books, websites, articles, fellow students, etc.), except for the course textbook and lecture notes, that you consult in completing an assignment must be properly acknowledged. In general, I strongly discourage you from using any resource not explicitly listed in the course syllabus or on the course web page. When you work on a programming assignment, it must be your program, not your adaptation of someone else’s program.
Lab assignments are not graded—therefore, you may work with other students on them. However, I do expect you to complete them. You are encouraged to utilize the class time to work on the labs and ask any questions about them.
Definition of Academic Dishonesty
Engaging in academic dishonesty is a violation of the school’s academic integrity policy and is not tolerated at York College. Examples of academic dishonesty include, but are not limited to, cheating on assignments or examinations, plagiarism (i.e. passing someone else’s words or ideas off as one’s own without proper attribution), improper paraphrasing, fabricating research, falsifying academic documents, handing in material completed for another course, and submitting work not done independently (unless part of an explicitly collaborative project).
Academic Integrity Procedure – Reporting
- When a faculty member believes a student has violated the Academic Integrity Policy, the faculty member is encouraged to discuss the incident in person with the student promptly, identifying the sanction he or she is going to apply. The faculty member should then reiterate the charge and sanction in writing to the student.
- The faculty member has full discretion to determine a suitable sanction, such as a “0” on the assignment in question, up to a course grade of “0”. In the case of an egregious first offense, the faculty member may request that the Student Welfare Committee conduct a hearing and determine a sanction, which may involve academic probation, suspension, or dismissal from the College.
- The faculty member has ten days from the written notification to the student to report the incident to the Department Chair and Associate Provost of Academic Services. The faculty member must submit as part of the report: 1) a detailed description of the incident, 2) a course syllabus, 3) an assignment sheet or assignment instructions, 4) the assignment in question, and 5) supporting documentation, such as copied material. The documentation will be kept on file in the student’s permanent record.
- Students cannot withdraw from a course in which they have been accused of academic dishonesty, until the accusation is withdrawn by the faculty member, or is overturned by the Student Welfare Committee or the Associate Provost of Academic Services. Academic Integrity Procedure – Appeals
- Students who believe they have been unjustly charged or sanctioned have ten days after receiving written notification from their instructor regarding the incident to file an appeal with the Student Welfare Committee by submitting a formal letter to the Associate Provost of Academic Services.
- If an appeal is filed, the Student Welfare Committee will schedule a hearing which includes inviting the student and faculty member to attend to provide additional information or clarity regarding the incident. The Student Welfare Committee will then review the charge and/or sanction.
- If the Associate Provost of Academic Services determines that the incident of academic dishonesty is the student’s second or subsequent offense, he or she will provide written documentation to the student, faculty member, and Department Chair. The Student Welfare Committee will automatically conduct a hearing to review the charge and decide on an appropriate sanction: academic probation, suspension or dismissal from the College.
- Academic Services will receive written notification of the Student Welfare Committee’s decision. Students who are unsatisfied with the decision may submit a second and final written appeal to the Associate Provost of Academic Services within 72 hours of receiving notification of the Student Welfare Committee’s decision. All decisions made by the Associate Provost of Academic Services will be final.
Use of Personal Technology in the Classroom
While York College recognizes students’ need for educational and emergency-related technological devices such as laptops, PDA’s, cellular phones, etc., using them unethically or recreationally during class time is never appropriate. The college recognizes and supports faculty members’ authority to regulate in their classrooms student use of all electronic devices.
Communication Standards
York College recognizes the importance of effective communication in all disciplines and careers. Therefore, students are expected to competently analyze, synthesize, organize, and articulate course material in papers, examinations and presentations. In addition, students should know and use communication skills current to their field of study, recognize the need for revision as part of their writing process, and employ standard conventions of English usage in both writing and speaking. Students may be asked to further revise assignments that do not demonstrate effective use of these communication skills.
Student Accessibility Services
York College of Pennsylvania offers a variety of academic accommodations to students with documented disabilities to ensure their success. To request accommodations, please contact Student Accessibility Services at (717) 815.1717 or sas@ycp.edu. Student Accessibility Services will discuss the confidential process of requesting accessibility services and establish the accommodations for which the student is eligible.
Disclaimer
This syllabus is subject to revision by the instructor.