CS 370 - Computer Graphics Programming I

Fall 2016

Class times:

Instructor:

David Babcock, dbabcock@ycp.edu, KEC101 (815-6442)
Office hours: M 1-3PM; T 8:30-9:30AM; W 8-9AM; R 2-3PM; F 8-9AM; or by appointment

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

Shreiner, Sellers, Kessenich, and Licea-Kane. OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 – 8th Edition. Addison-Wesley, 2013.

Angel. OpenGL: A Primer – 3nd Edition. Addison-Wesley, 2008.

Supplemental Resources

Rost and Licea-Kane. OpenGL Shading Language – 3rd Edition. Addison-Wesley, 2010.

Foley, van Dam, Feiner, and Hughes. Computer Graphics: Principles and Practice in C – 2nd Edition. Addison-Wesley, 1996.

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 so you may use either Visual Studio 2015 (Windows), XCode (Mac), or command line (Linux). Refer to the Resources page for installation instructions for the various external libraries needed for the course.

There will be periodic in-class reading quizzes, homework assignments, 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:

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:

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 and Quizzes

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.

There will be daily quizzes based on the reading assignment and previous class material. The quizzes will be administered at the beginning of each class, thus it is important to be prompt for class. The quizzes are designed to lead into brief discussions of the class period’s topic, such that the majority of the time can focus on completing the 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.

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 server https://cs.ycp.edu/marmoset. You will receive an email containing the username and password you should use for this server.

Academic Integrity

York College’s mission statement stipulates that strict adherence to principles of academic honesty is expected of all students. Therefore, academic dishonesty will not be tolerated at York College. Academic dishonesty refers to actions such as, but not limited to, cheating, plagiarism, fabricating research, falsifying academic documents, etc., and includes all situations where students make use of the work of others and claim such work as their own.

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.

When a faculty member believes a student has committed an act of academic dishonesty, the faculty member must inform the student in writing and then has ten business days from that written notification to the student to report the incident to the Dean of Academic Affairs and the Department Chair. Documentation related to instances of academic dishonesty will be kept on file in the student’s permanent record. If the academic dishonesty is the student’s first offense, the faculty member will have the discretion to decide on a suitable sanction up to a grade of 0 for the course. Students are not permitted to withdraw from a course in which they have been accused of academic dishonesty.

Attendance

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:

I reserve the right to enforce this code through the York College Code of Student Conduct.

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.

Disability Support Services

If you had an IEP or 504 plan in high school or if you have a disability or health condition that impacts you in the classroom, please contact Linda Miller, Director of Disability Support Services, at 815-1785 or lmille18@ycp.edu to discuss obtaining the accommodations for which you may be eligible. If you already have an accommodation memo and wish to access your accommodations in this class, please see me confidentially to discuss.

Disclaimer

This syllabus is subject to change by the instructor.