![]() |
|
|
![]() |
|
|
This course provides an introduction to computer graphics, emphasizing practical implementation. We will explore fundamental computational aspects of graphics and implement these concepts using web technology and tools in JavaScript, a language with similarities to C, C++, and Java. Our primary tool will be Three.js, an open-source JavaScript library that enables us to create and display both 2D and 3D graphic objects in a web browser, offering a visual and interactive representation of graphic models.
Topics we hope to cover include:
To deepen our understanding, class presentations will further explore the concepts covered in lectures and may introduce additional topics such as GPU programming.
Laptops are required. You must bring a laptop to class and install the required web development technology - you are responsible for doing this work (we will provide a tutorial - in-class and out of class). We will occasionally do in-class programming exercises. Please ensure you have a laptop that supports the necessary technology when we are not using them for in-class work.
Date /Time: | Tu/Th(R) | 2:20-3:25 | Alderhold Hall (Bldg 1060 Room: 0119) |
W | 3:00-3:50 | Biological Sciences Building (Bldg 1000 Room: 0404A) | |
Office Hours (Subject to Change) | |||
Instructor | Th | 3:50-4:50 | Maria Hybinette - Office Hours Thursdays after class. Zoom availability on Fridays 12 - 1 PM (email to block time) |
TA | TBD | TBD | See piazza post for TA's office and office hours. |
Piazza | https://piazza.com/uga/fall2023/csci46810 | ||
The course material covered in class is primarily drawn from two text books:
(1) Fundamentals of Computer Graphics, Fifth Edition, by Steve Marschner and Peter Shirley. Available as an E-book on Amazon [ this book provides details of lectures]. 2021.
(2) The second book is a free on-line book Introduction to Computer Graphics (version 1.4, January 2023) by David Eck. We will use this on-line book for webGL and Three.js.
The lectures are influenced by additional resources including: a volume of well known graphics authors active in the SIGGRAPH community.
![]() |
|
|
![]() |
|
|
We will use our departmental server, odin.cs.uga.edu, for testing and submitting programs as well as homework. Make sure you have access to Odin (this is part of the first homework assignment).
If you encounter issues with access to Odin, please contact support@cs.uga.edu.
We will utilize eLC posting links to assignments, and post grades.
Survey Monkey will be used for certain activities.
We will be using Piazza as our main communication platform. It is essential that you keep up to date with Piazza; we assume you will check this platform every day.
Screen Video: For your projects and assignments, you will need to create a demo video showcasing your work. Please submit a private link to this video as part of your submission for projects and select assignments.
You are evaluated on labs (and their accommodated extensions - a 1 week HW), 1 page paper summaries starting around week 6, presentations and implementation of software projects. A final project will replace a final exam, presented/demoed during the final exam period. We may an exam 2/3 through the semester. The distribution is below, but is subject to change.
NOTE: Syllabus & policies are solidified after 3rd week of class - but there still may be minor changes.
Projects (4-5) | 25% |
Exam (possibly after the withdrawal deadline). 3% may be replaced by quizzes throughout the semester to ensure you keeping up. |
10% |
Final Project: (take home project, required presentation during final exam period & code, report) You must attend the full final exam session for credit |
15% |
HW/Labs (10-13 HW/Labs) |
30% |
Weekly Summaries (starting around week 6) Wednesdays Participation (attendance) is required for credit 2 lowest are dropped (at least) |
15% |
Presentation (s) (Team Presentation) | 05% |
The general grading philosophy is the following (the context is "programs" and "projects" but it should generalize to summaries and to other required elements). See conversion from percentage to letter grades finger grade in link further below.
A+ Extraordinary, goes beyond the minimum criteria both in depth and breath. Design is thorough and well thought out, code base and implementation is beautiful- modularized, complete, clear and concise. A well thought out debugging strategy is apparent. Well documented code. The evaluation plan is well executed and well thought out, goes beyond the simple cases and illustrates strong problem solving skills.
A Superior (somewhat less than an A+, almost perfect code, beautiful, concise, minimum criteria met, not as much depth and forethought as an A+ but it is superb), goes beyond meeting the minimum criteria demonstrates depth, can apply solution to a variation of similar problems.
B Good, minimum criteria well executed and well done, shows some depth and understanding, meets most test cases but does not demonstrate as much forethought as an A; [threshold].
C Fair, minimum criteria met, but could have been executed with more depth and forethought.
We will use the College Board's convention to convert from percent grades to letter grades grades:
(see here).
Assignments, and summaries (if applicable to this class) are due on the date and time specified in the assignment or the day of demonstration (email as a time stamp and hand-in hardcopy the next day). Late homework cannot be accepted). There are some exceptions with mitigating circumstances - please discuss these with instructor before due dates.
Projects and homework will be posted on the web from the scheduling page (see link top menu bar), and will be accessible from anywhere on the Internet. Assignments may be posted before they are officially assigned; however, you should not assume that an assignment on the schedule page is in final form until the date it is assigned. In other words, assignments are subject to change before the date that they are officially assigned. There may be additional required elements.
The programming software are of-course an important component of this course. You'll be making programs of the languages specified in class or on schedule page (e.g., Python, Java, JavaScript, Scala, or C, C++). The programming tools you'll need (game engine, simulation engine, compiler, debugger, etc.) may be denoted on the project page and should be downloaded and installed on your laptop and /or workstation.
Currently the programming languages used in this class are: JavaScript & Java, C++ and related languages.
Assignment Quality: You will be required to submit assignments of high quality, characterized by clean, well structured code and adherence to established coding styles. Additionally, assignments should include comprehensive comments, and any extraneous (unnecessary) files should be omitted.
You will read/skim at least one technical paper or essay every week. For each week each you will prepare a 1-page summary on one of the presented papers (you may chose any one of the two). This summary must be submitted to the grader before midnight on Friday following the presentation - unless otherwise specified. The summary needs to reflect that you made an effort to read and understand the paper. We will test comprehension by checking your coverage of key concepts or highlights of the reading.
In general summary should address the five questions listed on the page that lists the papers, and you are expected to include you understanding of the paper, concepts within these questions.
The fifth question may concern a brief critique of the delivery of material of the speaker. Here you need to address if pertinent material should have been included, and suggestions on improvements. You may skip up to 2 summaries without a penalty (see reading page link above for specific questions that you need to address). If you submit and cover every week you may be subject to earn bonus points.
You will present on 1-2 topics throughout the semester, each presenter is responsible for a main paper (topic) presentation but you are expected to read additional technical papers (or essays) to ensure breadth of the week's topic. Some suggestions to add "breath" to your theme topic are listed in the reading list, or you may choose your own. You will select the theme, but the specific paper will be assigned (however you may suggest or express interest in particular paper). If we have a large class the presentations may be presented as a group (a group of 2) presentation.
Submit slide set presentation day so classmates (and instructor) can access slides (typically we use piazza for this).
In a college level Computer Graphics course, students are generally expected to dedicate approximately 2-3 hours of out-of-class work for each credit hour per week. This equates to an average of 8-12 hours per week on course-related activities outside of class. The University of Georgia (and the federal definition of a credit hour) recommends a minimum of 2 hours of outside work per credit hour each week (link).
In our course, we align with this standard and anticipate an average outside class workload of about 10 hours per week on average (in the middle of the standard).
Attendance is required for the in-person labs, and presentations (we need audience support for the presentations).
Missing 7 days or more of classes (inclusive of excused absences) is considered excessive absentia and may result in an instructor enforced withdrawal.
Missing 2 scheduled exam (inclusive of excused absences) may result in instructor enforced withdrawal.
As a University of Georgia student, you have agreed to abide by the University’s academic honesty policy, “A Culture of Honesty,”and the Student Honor Code. All academic work must meet the standards described in “A Culture of Honesty” found at:
Lack of knowledge of the academic honesty policy is not a reasonable explanation for a violation. Questions related to course assignments and the academic honesty policy should be directed to the instructor.
The Computer Science Department recognizes honesty and integrity as necessary to the academic function of the University. Therefore all students are reminded that the CS faculty requires compliance with the conduct regulations found in the University of Georgia Student Handbook. Academic honesty means that any work you submit is your own work.
Common forms of academic dishonesty, which students should guard against, are:
Three steps to help prevent academic dishonesty are:
In addition to the terms expressed above, you also agree not to make any portion of your assignments for this class {publicly or non-publicly} available for others to view.
This includes, but is not limited to:
1) posting snippets of your code on help websites.
2) Engaging in activities similar to this will be seen as either giving or receiving unauthorized assistance.
3) With regard to question and answer websites (e.g., StackOverflow, Yahoo Answers, etc.), you may ask general questions about programming on such websites that relate to your assignments in this class, however, you must phrase such questions in a way that make them independent of the specific problem you are having.
If you need specific help with portions of your code (while displaying your code), then you must consult with the instructor or teaching assistants first (unless expressly and explicitly stated otherwise in the assignment description). Furthermore, if you copy or extend material from the Web (in any fashion) or other sources and incorporate that material into the submission for one of your assignments then you must cite where you got the code from in order to avoid plagiarism.
All faculty, staff and students are encouraged to report all suspected cases of academic dishonesty. All cases of suspected academic dishonesty (cheating) will be referred to the Office of the Vice President for Instruction for academic dishonesty. Penalties imposed by the Office of the Vice President for Instruction may include a failing grade in the course and a notation on the student’s transcript. Repeated violations are punishable by expulsion from the University.
Students are expected to maintain a high standard of courtesy and respect during all interactions within the class community, including peers, teaching assistants, and the instructor. This expectation applies to both in-class and on-line engagements.
Behavior that is disruptive or disrespectful may lead to a student being requested to leave the classroom. In severe or persistent cases, further actions may include the filing of a formal report by the instructor or potential withdrawal of the student from the class.
If you miss class it is your responsibility to find out what you missed if you don't attend class. Please do not email instructor and ask what you have missed - you may ask however after class.
You are required to subscribe to the class email list or forum (Piazza)- and be aware that sometimes homework is assigned or templates are distributed via this forum - or there are some hints posted in the forum - you probably do not want to miss that.
The purpose of the assignments and projects is familiarization of concepts and details of programming.. The assignments & projects are expected to be individual work unless other specified. However, you are encouraged to ask questions of one another, and to respond to other student's questions on the email list.
Direct exchange of code is prohibited, as is line-by-line assistance from anyone or thing (this includes Internet copying). This is checked for every assignments. If you do get help from other sources than book, slides, or TA you must acknowledge the source in the material that you turn in -but note still no copying is allowed.
Unless otherwise specified, exams are closed-book and no additional materials may be used. Missing an exam: absence due to serious illness will be an acceptable reason for missing an exam. Doctor's diagnostic note is required (these absences may be confirmed with your doctor). The final grade will be scaled accordingly.
COVID - Syllabus Addendum (we follow the institute regulation regarding COVID):
https://ovpi.uga.edu/_resources/documents/Syllabi-Info-for-Students-Fall-2021-8.6.2021.pdf
(please check Arch NEWS for updates regarding the UGA COVID policy).
Material is drawn from our UGA course designer Prof. Hamid Arabnia's graphics class, G-Tech's Prof. Blair McIntyre, and also from the textbook authors Marschner, and Shirley & David J Eck- and the graphics course at Carnegie Mellon University.