1 Course Outline



1.1 Lecturers


COMS 3006A (full-time) Lecturer: Dr Branden Ingram

Office: UG19, TWK Mathematical Sciences Building

Email:


COMS 3006A (full-time) Head Tutor: Ireton Liuu

Email:


1.2 Code of Conduct


As a computer science student and member of the University, you understand that fellow students, lecturers, coordinators and members of academic and administrative staff should be treated with respect at all times. The School will not tolerate any behaviour that runs counter to these ideals. You are required to use language that is appropriate in all online discussion postings, chats and emails related to your courses. You will not post harmful language or stereotypes that target people of different genders, abilities, races, ages, ethnicities, nationalities, languages, socioeconomic classes or other aspects of identity. You may not engage in violent threats or language directed against another person, nor post discriminatory jokes, offensive memes and language, and personal insults (especially those using racist or sexist terms). Neither will you encourage, or advocate for, any of the above behaviour. In general, please work to create a welcoming environment for all.


1.3 Communication


All official communication will be posted to the announcements forum on Moodle. Moodle will send you email digests daily, but it is still your responsibility to ensure you’re receiving these emails. You can change your email preferences on Moodle to receive a single email per post if you prefer that.


1.4 Consultations


I will be available during the lab sessions. Should there be a large number of other queries that I am unable to assist with during that time, then I will make another consultation time available.


1.5 Course Description


This university-level course in computer graphics and visualization covers a comprehensive range of topics, including fundamental concepts, graphics programming with OpenGL and WebGL, geometric modeling, transformations, and viewing techniques. Students will learn about lighting and shading models, texture mapping, and advanced rendering techniques such as rasterization and ray tracing. Advanced topics like physically based rendering and real-time rendering, alongside practical projects that provide hands-on experience in creating sophisticated graphical applications and visualizations. Through these modules, students gain the skills necessary for careers in game development, animation, scientific visualization, and more.


1.6 Objectives


The course seeks to expose the learner to the field and provide an introductory foundation to computer graphics and rendering. Computer graphics is the term commonly used to describe computer generation and manipulation of images. Its uses include cartoons, film special effects, video games, medical imaging, engineering, as well as scientific, information, and knowledge visualization. The area encompassed by Graphics and Visualization is divided into several interrelated fields:

  • Fundamentals: Computer graphics depend on an understanding of how humans use vision to perceive information and how information can be rendered on a display device. Every computer scientist should have some understanding of where and how graphics can be appropriately applied as well as the fundamental processes involved in display rendering.

  • Modelling: Information to be displayed must be encoded in computer memory in some form, often in the form of a mathematical specification of shape and form.

  • Rendering: Rendering is the process of displaying the information contained in a model.

  • Animation: Animation is when the rendering is done in a manner that makes images appear to move and the synthesis or acquisition of the time variations of models.

  • Visualizaton: The field of visualization seeks to determine and present underlying correlated structures and relationships in data sets from a wide variety of application areas. The prime objective of the presentation should be to communicate the information in a dataset so as to enhance understanding.

  • Computational Geometry: Computational Geometry is the study of algorithms that are stated in terms of geometry.


1.7 Textbook


The textbook for this course is available for free online. You may also purchase a copy if you wish online


1.8 Resources


You are encouraged to make heavy use of a programmer’s best friends — Google and StackOverflow. For OpenGL, some useful online resources are www.geeksforgeeks.org and OpenGL Wiki, while the official documentation can be found here: www.opengl.org.

If you find any other good resources, please share these resources with others in the class as well using the forums.


1.9 Grading


The weighting for each component is given below

Activity Weight
Labs + Tutorials 10%
Project Beta 10%
Tests 20%
Exam 60% (40% Theory 20% Project)

Dates for assignments will be communicated through Moodle closer to the time. Dates for exams are externally set by the Examinations and Graduation Office, and will be communicated towards the end of the semester


1.10 Timetable


The table below lists the times allocated in the university’s timetable for this course.

Course Activity Day Times Venue
COMS3006A Lab Tuesday 14h15 — 17h00 LABMSL-004/5
COMS3006A Lecture Friday 10h15 — 12h00 FNB37


1.11 Tentative Schedule


The following serves as a rough guide for the content we will be covering during the course, but please note that it is subject to change.


1.11.0.1 Block 1


Week Topics
1 Cancelled
2 Introduction
3 Basics
4 Hierarchical Modelling
5 OpenGL
6 Lighting
7 Programmable Rendering Pipeline
8 Test 1


1.11.0.2 Block 2


Week Topics
1 Shaders
2 Textures
3 Ray Marching
4 Ray Tracing
5 Graphics in Machine Learning
6 Test 2
7
8


1.12 Satisfactory Performance


This outline extends the general undergraduate computer science course outline. In order to attain Satisfactory Performance for this course, you must submit at least 70% of your labs.

To qualify to write the final exams, you need a coursework average of at least 35%. If your class mark is below this threshold, you will receive an outcome of FNQL.


1.13 Academic Integrity


There is a zero-tolerance policy regarding plagiarism in the School. Refer to the General Undergraduate Course Outline for Computer Science for more information.

Communication during quizzes, sharing of answers or practicals, and all forms of plagiarism are taken very seriously by the university and will result in failing the course and/or being reported to the legal office. In most cases, I encourage you to help each other with problems, but be aware of the line between helping someone and giving them the answer. A good rule of thumb: if I am struggling, I can show someone a section of my code for assistance, but I cannot look at theirs. We will be monitoring Moodle logs closely and will be checking all submissions for plagiarism. You may not make use of sites such as Chegg for assistance with any submission. Anyone found submitting assessments to such a site will be referred to the legal office.

Sites like ChatGPT are often able to generate and interpret source code effectively. I encourage you to use tools like this to understand code that you may find. However, resist the urge to ask the sites to solve lab or tutorial problems for you. While they might help get you through the labs/projects, you will need to be able to problem solve by yourself in tests, exams, future courses, and your career that follows.