CSC 296: Advanced Graphics Algorithms
Course Overview
Core Focus Areas
- Mathematical background for Graphics, Image Processing, Computer Vision & Robotics.
- Lighting Systems: Implementations in OpenGL/z-buffer environments and global ray tracing models.
- Advanced Mathematical Projections: In-depth perspective projection algorithms utilized inside production GPUs.
- Processing Deep Neural Networks using GPU and GPU-like Architectures
- Robotics Integration: Inverse kinematics algorithms used for spatial movement and skeletal animation.
Detailed Topics
1. Mathmatical background for Grapihcs, Image Processing/Computer Vision and Robotics Algorithms
2. Vision, Color, and Image Capture
- Biological Foundations: Light science, human visual system mechanics, and color representation.
- Color Processing: Mathematical transformations using Trichromatic, Opponent-process, and Retinex theories.
- Hardware Translation: How digital camera sensors utilize biological vision models to capture and process imagery.
3. Geometric Spaces and GPU Rasterization
- Projections: Theory of projections, homogenous coordinates, and projective spaces.
- Classical Pipeline: Clipping mechanics, triangle setup, and hardware-accelerated rasterization.
- Shading Engines: Local vs. Global illumination models, texture mapping, and hardware z-buffering.
4. Modern Graphics Pipelines & Parallel Compute
- Programmable Shaders: Deep dive into Vertex, Pixel, and Compute shader pipelines.
- GPU Hardware Architecture: Computational pipelines, arithmetic intensity, and data transport constraints.
- Memory Optimization: Maximizing performance using global access caching and tiled memory structures.
- Ray Tracing
5. Deep Learning & AI Acceleration using GPUs
- Neural Mechanics: Convolution theory, signal processing algorithms, and Convolutional Neural Networks (CNNs).
- Hardware Acceleration: Deploying and implementing deep learning algorithms natively on graphics hardware.
- Silicon Comparison: Structural differences and performance tradeoffs between Tensor Processing Units (TPUs) and GPUs.
Course Prerequisites & Tools
- Required Prerequisite: Successful completion of CSC 133.
- Development Environment: Practical implementation labs will utilize IntelliJ with the Lightweight Java Game Library (LWJGL).
Electronic Device Ban
- Prohibited Items: Cellphones, laptops, and tablets (including for digital note-taking).
- Storage: All devices must be turned off and tucked away inside a bag or backpack before the lecture begins. They may not be placed on your desk or held in your hand.
- Enforcement: These terms are completely non-negotiable. Do not ask for exemptions.
Course Notes and Learning Approach
- This predominently algorithms focused course and all the material we conver are available in different sources - mostly online.
- I will publish the notes I use for lecturing in the course Canvas as an indicator of what we cover in the lectures.
- You are still expected to take notes. What I publish is not a substitute for notes you are expected to makes.
- We don't take attendance. Attendance is not compulsory, but strongly encouraged.
- Sharing notes is highly discouraged. While it is impossible to stop the covert sharing, don't use Canvas or Discord to solicite or distribute notes.
Grading
- Midterm, Finals, Written Assignments, Programming Assignments - latter probably will be very few if all, since this course is more about algorithms.
- All assignments are to be done individually and on-programming ones should be turned in as hard-written copies with the original assignments stapled to any additional sheets used.
- Assignments typeset, photocopied, electronically reproduced etc. will receive zero credit.
- Assignments will only be destributed in the lectures and should be turned-in in the lectures, in person. Late submissions carry 20% penalty per day.
- Final grades:
>= 90% A to A- < 90% & >= 70% B+ to B- < 70% & > 60% C+ to C- < 60% D+ or below
Lateness/Absence/Drops:
It is very important for students to attend all classes and to be on time. Students who miss a class are responsible for all material discussed or handed out in the class. A list of topics covered and the raw notes from which the instuctor lectures are often provided. Sharing notes from each other or publishing it are considered malpractice and will be dealt with appropriate punishment.
Please inform yourself of the Department, College, and University policies on dropping courses. Policy information is available in the Computer Science Department office, Riverside Hall 3018. Ethics:
When a student submits work to the instructor, it constitutes a contractual agreement that the work is solely that of the student. Further, submitted work carries with it an implicit agreement that the instructor may quiz the student in detail about the work.
Any efforts by any student to raise the grade by violating the rules of the course or by other means will be deemed as malpractice and will be dealt with as such. Further, any student who gives such help is equally guilty of unethical behavior for the same reasons. Therefore, all students are hereby notified that this course is being taught by instructors who will pursue attempts at cheating, since students who are cheating are cheating on you.
The minimum penalty for even a single incident of cheating in this course is automatic failure of the course; additional more severe penalties may also be applied. Note that cheating is grounds for dismissal from the University.
Please refer to the instructors’ policy on academic integrity entitled “Ethics in Computer Science Classes”, to the Computer Science Department’s document entitled “Policy on Academic Integrity”, and to the University’s document entitled “Policy Manual section on Academic Honesty”, which are all available online via the “Home → Ethics” section of Canvas, for additional information. It is the responsibility of each student to be familiar with, and to comply with, the policies stated in these documents.
Exceptions:
We provide reasonable exceptions to some rules but only under medical grounds. In such cases, requests including extensions to submissions, make-up's etc. should be accompanied with a valid doctor's letter and should be made ahead of the event. If you opt for a makeup midter or fianals on valid grounds, be aware that the version of midter/finals you get may not be at the same level of difficulty or same format as the regularly administred midter/finals.