In Fall 2024, CS 418 Interactive Computer Graphics
is being
offered in a way designed specifically to cater to our online MCS
program. As such, both in-person and online students will be expected to
consume course material in an asynchronous digital form. Office hours
will also be held online, are optional, and will be the only synchronous
component of the course.
How to get access to the course in Coursera
After enrolling in the course at the university, there’s a
several-step process for getting your enrollment copied into Coursera.
Notably, there are emails generated the day after you enroll you need to
read and an onboarding course
you have to complete on Coursera
before CS 418 will show up. See this
guide for more.
The course consists of the following components:
Available on the course content site, these have roughly the same content as the videos, but often differ in level of detail. Some video content (such as coding demonstrations) have no corresponding notes.
Please make notes of questions as you read them and post those questions on CampusWire. I may answer them there or write up longer explanations and post them as supplementary content.
Lecture material is split into modules, each with a quiz. These quizzes are intended primarily as a self-assessment of learning and may be retaken as often as desired.
I understand that some students find quizzes annoying, but experience has shown me they they do help students find and fix gaps in understanding.
These quizzes are administereed on Coursera. You can activate your Illinois Coursera account as described in https://online.illinois.edu/online-courses/moocs/private and then visit https://www.coursera.org/learn/cs418-interactive-computer-graphics/home to access quizzes.
There are five primary MPs, plus a sixth one required for 4-credit students but not required for 3-credit students. There are also two low-weight warm-ups intended primarily to smooth the way for subsequent MPs.
Machine problems are submitted on a custom course submission site
that provides some limited automated feedback (mostly of the form did
it run on our server
); they are graded primarily by hand.
I expect each MP to take the average student between 10 and 20 hours to complete.
The 4cr MP typically takes a bit longer than the others, so 4cr students may wish to begin it early by viewing the raytracing videos and notes earlier than the 3cr schedule recommends.
Computer graphics studies how computers can create images. Interactive computer graphics creates images quickly enough that a new image can be created in response to every user action. In principle any image-creation algorithm could be interactive, given adequate hardware, but in practice it usually refers to a specific family of workflows involving the interaction of the CPU and GPU. That family of workflows will be our primary topic in this class.
This course teaches the following in enough detail to implement them yourself:
This course teaches various other topics at a lower level of detail, including:
This course does not teach
My goal in this class is that you learn. As it is an elective, I hope most of you are taking it for the same reason. But I do have a duty to assign grades, so here’s how we’ll do it.
Weight | Assessment |
---|---|
70% | MPs |
30% | Quizzes |
Numbers are converted to letters linearly with the A−/B+ cut-off at 90% and the C−/D+ cutoff at 70%; more precisely
const letter_grade = (percentage_earned) => {
if (percentage_earned <= 60) return 'F'
let letter = 'DCBA'[Math.floor(percentage_earned/10 - 6)]
if (letter != 'A' && percentage_earned % 10 > 20/3) letter += '+'
if (percentage_earned % 10 < 10/3) letter += '-'
return letter
}
MP points come in two groups: core and elective. Core MP components are mostly things that every graphics students should know, with some additions that are prerequisite for many other tasks. Elective MP components go beyond the minimum, and you’ll get to pick and chose which ones you do. The number of MP points of each type you will need, together with a list of MPs, can be found on the MPs overview page
Collaboration includes
My goal in this course is not to have you create working solutions (I already have working solutions, I wrote them before the course began) but rather to have you learn enough to be able to create your own working solutions. As such, you may collaborate on MPs but must obey the following limitations on your collaboration:
Do not collaborate on quizzes; limit your sources to course material, other pre-made content, and your own work.
Quizzes have unlimited retakes. Please still think about each question rather than just randomly guessing.
Type all code yourself; no copy-paste or AI-typed code from others.
Design and understand all your code.
If you use any source, pre-existing or dynamic, that was not provided by this course in writing code, cite that source in a comment in your code.
Listed prereqs in the course catalog are
Needed for
Needed for
We will discuss using large sparse matrices to represent systems of equations and variants of conjugate gradient to solve them. That is rarely usable at interactive speeds, so we won’t talk about then in much detail in this class.
Needed for
There is some calculus in graphics, but mostly as theoretic background for algorithms that do not themselves use the calculus. We’ll not need any integral-solving or related by-hand calculus computations in this course.
Analysis of past student performance leads us to identify the following as optional but recommended prerequisites:
This is a programming-heavy course, and these courses provide valuable extra training an experience with programming.
We also deal with how the CPU and GPU interact, a topic made much easier if you have had prior computer systems training.
Name | Luther Tychonievich |
Office | 2340 Siebel |
Phone | +1 217 333 8609 |
luthert@... Include 418or graphicsin the subject line |
Sean Koo, Ben Guan, Arthur Wang
This is a smaller staff of assistants than I’ve had in the past. As such, there may be fewer help hours than you’d otherwise hope; if you generally use instructor or assistant help in most programming assignments, this course may not be ideal for you this semester.
Schedule | |
Location | Zoom meeting 853 6085 8537 passcode 418 |
Readings are hosted for free on https://cs418.cs.illinois.edu. There is no other textbook required.
This page provides a list of videos and notes with the intent that following them in the order presented here will result in a cohesive approach to the subject of interactive computer graphics.
In general, the intent is that for a given topic the video and notes will provide equivalent explanations of the material; however, that intent is not always completely achieved. The notes often have more formal definitions and more mentions of ancillary topics than the videos. The videos often have additional commentary and exposition than the nodes. When the video is using an interactive example or discussing or developing code samples, the notes often just have the example or code without commentary.
How things appear
videos are included after each section but
in generally have no direct correlation with the section itself, and are
generally not tested by any of the course’s assessments. I include them
because computer graphics is the process of trying to simulate how the
world looks, so I assume you’ll be interested in understanding how the
world looks. Feel free to message me with additional appearances you’d
like me to describe, either general phenomena or specific images; there
are more interesting visual phenomena than I have any hope of fully
enumerating.
Videos are hosted on ClassTranscribe, a tool that allows variable-speed video playback, transcription search, and collaborative editing of subtitles and transcripts. Backup copies are available through Coursera. With a few exceptions, notes are written by Luther Tychonievich and hosted directly on this website.
A recommended weekly schedule follows. MPs are listed in the week where the relevant content has been presented; it is expected most students will start them then and complete them a week or two later; that delay is why there are not MPs listed for the last two weeks. Electives vary significantly in complexity and time required, as noted by their differing point values. You only need to do some electives, and if 3cr only some core. See the MPs page for more.
Week | Content | Core MPs | Elective MPs |
---|---|---|---|
Aug 26–Sep 01 | Preliminaries | WebGL2 warmup | |
Sep 02–08 | DDA | AnyLang warmup | |
Sep 09–15 | Depth and related concepts | Rasterizer | |
Sep 16–22 | Javascript | Rasterizer electives | |
Sep 23–29 | WebGL2 | Psychedelic | |
Sep 30–Oct 06 | 3D Math | Logo | GPU jitter, CPU jitter |
Oct 07–13 | GL example and Lighting | Orbits | Lineograph |
Oct 14–20 | Fractals | Terrain | Cliffs, Weathering, Height map, Parametric |
Oct 21–27 | Animation and Code example | Flight | |
Oct 28–Nov 03 | Textures | Textures | Drive, Fog, OBJ, Subdivision |
Nov 04–10 | Raytracing | Raytracer | |
Nov 11–17 | Raytracing | Raytracer electives | |
Nov 18–22 | Dynamics | Spheres | Many Spheres, Goop |
Fall Break | |||
Dec 02–08 | Better rasterization | ||
Dec 09–11 | Review and finish coding |
Experience has taught me that getting behind on lecture material or MPs is usually a sign that additional instructor/student interaction is needed. If you are more than a week behind the schedule given here, please contact me.
Topic | Video | Notes |
---|---|---|
Rasters and pixels | ClassTranscribe | Aliasing |
Color in the eye | ClassTranscribe | Color |
Color on the screen | ClassTranscribe | Color |
Other color models | ClassTranscribe | Color |
Dithering | ClassTranscribe | Dithering |
What is interactivecomputer graphics? |
ClassTranscribe | "Interactive" Graphics |
The GPU graphics pipeline | ClassTranscribe | WebGL’s Graphics Pipeline |
Q&A Where is white in LMS? |
ClassTranscribe | |
Q&A Why dither and gamma? |
ClassTranscribe |
How things appear: The Student, the Fish, and Agassiz by The Student and Mirages and total internal reflection
Topic | Video | Notes |
---|---|---|
DDA | ClassTranscribe | DDA (and Bresenham) |
Scanline | ClassTranscribe | DDA (and Bresenham) |
Bresenham | ClassTranscribe | DDA (and Bresenham) |
Interpolation | ClassTranscribe | DDA (and Bresenham) |
Rendering curves | ClassTranscribe | Bézier curves |
In-class Q&A | ClassTranscribe |
How things appear: Refraction
Topic | Video | Notes |
---|---|---|
Perspective via w | ClassTranscribe | Projection |
Frustum clipping | ClassTranscribe | Clipping |
Hidden surface removal | ClassTranscribe | |
Z buffer | ClassTranscribe |
How things appear: Fresnel effect
Topic | Video | Notes |
---|---|---|
Viewport | ClassTranscribe | Other parts of the rasterization process |
Alpha blending | ClassTranscribe | Other parts of the rasterization process |
Back-face culling | ClassTranscribe | Other parts of the rasterization process |
Full-scene anti-aliasing | ClassTranscribe | Other parts of the rasterization process |
What we covered on rasterization | ClassTranscribe | |
In-class Q&A | ClassTranscribe |
How things appear: Diffraction rainbows
Topic | Video | Notes |
---|---|---|
Running JavaScript | ClassTranscribe | Parts of JavaScript We’ll Use |
JavaScript syntax and scoping | ClassTranscribe | Parts of JavaScript We’ll Use |
JavaScript values and types | ClassTranscribe | Parts of JavaScript We’ll Use |
JavaScript functions | ClassTranscribe | Parts of JavaScript We’ll Use |
HTML | ClassTranscribe | Parts of JavaScript We’ll Use |
In-class Q&A | ClassTranscribe |
How things appear: Dispersion rainbow
Topic | Video | Notes |
---|---|---|
First WebGL2 file | ClassTranscribe | Minimal WebGL |
Using multiple files | ClassTranscribe | ex02-fragment.glsl ex02-split.html ex02-vertex.glsl ex02.js |
Data paths on GPU | ClassTranscribe | WebGL Geometry |
Loading a model | ClassTranscribe | ex03-fragment.glsl ex03-geometry.json ex03-model.html ex03-vertex.glsl ex03.js |
Motion with uniforms | ClassTranscribe | ex04-fragment.glsl ex04-geometry.json ex04-motion.html ex04-vertex.glsl ex04.js |
In-class Q&A | ClassTranscribe |
How things appear: Exposure noise
Topic | Video | Notes |
---|---|---|
Matrices and vectors | ClassTranscribe | Math Review |
Rotation matrices | ClassTranscribe | Homogeneous Vectors and Transformations |
Scaling matrices | ClassTranscribe | Homogeneous Vectors and Transformations |
Sheering | ClassTranscribe | Homogeneous Vectors and Transformations |
Homogeneous vectors, take 1: definition first | ClassTranscribe | Homogeneous Vectors and Transformations |
Homogeneous vectors, take 2: objective first | ClassTranscribe | Homogeneous Vectors and Transformations |
Visualizing 2D matrics | ClassTranscribe | matrixdemo.php |
Visualizing order of matrics | ClassTranscribe | matrixdemo.php |
Visualizing 3D matrices | ClassTranscribe | matrixdemo2.php |
Standard matrix hierarchies | ClassTranscribe | |
In-class Q&A | ClassTranscribe |
How things appear: Lens bloom
Topic | Video | Notes |
---|---|---|
3D WebGL2 code | ClassTranscribe | 1-the-code.html math.js wrapWebGL2.js |
Adding perspective | ClassTranscribe | 2-viewing.html |
Coloring vertices and faces | ClassTranscribe | 3-color.html |
Multi-object scene | ClassTranscribe | 4-several.html |
Choosing motion | ClassTranscribe | 5-scripted.html |
Random procedural geometry | ClassTranscribe | 6-makegeom.html |
Designing procedural geometry | ClassTranscribe | 7-starburst.html |
How things appear: Subsurface scattering
Topic | Video | Notes |
---|---|---|
Phong’s simple model of lighting | ClassTranscribe | Lighting models |
In-class Q&A re Halfway vector | ClassTranscribe | |
Loading a monkey | ClassTranscribe | 0-initial.html 1-monkey.html math.js monkey.json |
Computing surface normals | ClassTranscribe | 2-normals.html |
Adding diffuse light | ClassTranscribe | 3-lambert.html |
Adding multiple light sources | ClassTranscribe | 4-two-lights.html |
Adding specular light | ClassTranscribe | 5-blinn-phong.html |
Physically-based lighting | ClassTranscribe | the-pbr-guide-part-1 |
In-class Q&A re PBR | ClassTranscribe |
How things appear: Rayleigh scattering
Topic | Video | Notes |
---|---|---|
Fractional dimension | ClassTranscribe | Fractals |
In-class Q&A fractal overview | ClassTranscribe | |
fBm noise | ClassTranscribe | Fractals |
Subdivision noise | ClassTranscribe | Fractals |
Fractal terrain via random faulting | ClassTranscribe | Terrain via the faulting method |
Perlin noise | ClassTranscribe | Fractals |
Weathering and erosion of terrain | ClassTranscribe | Hydraulic Erosion |
In-class Q&A re MP3 | ClassTranscribe |
How things appear: Shiny hair
Topic | Video | Notes |
---|---|---|
In-class Q&A on many topics | ClassTranscribe | |
Key frames and tweening | ClassTranscribe | Keyframes, Bones, and Skinning |
Interpolating with lerps and Bezier curves | ClassTranscribe | |
Coding lerps of keyframes | ClassTranscribe | 3-lerp-code-1.html 3-lerp-code-2.html math.js |
Lerping rotation matrices doesn’t work | ClassTranscribe | 4-rotation-problems-1.html 4-rotation-problems-2.html |
Quaternions | ClassTranscribe | Quaternions |
Interpolating quaternions | ClassTranscribe | 6-quaternion-interpolation.html |
In-class Q&A re Quaternions | ClassTranscribe | |
Skeletal animation with skinning | ClassTranscribe | Keyframes, Bones, and Skinning |
How things appear: Brushed metal
Topic | Video | Notes |
---|---|---|
Generating a leg | ClassTranscribe | 1-modeling.html math.js |
Coloring a leg | ClassTranscribe | 2-colors.html |
Joint locations | ClassTranscribe | 3-joints.html |
Skeletal Animation | ClassTranscribe | 4-rig-1.html 4-rig-2.html |
Skinning | ClassTranscribe | 5-skin.html |
How things appear: Mirrors and one-way mirrors
Topic | Video | Notes |
---|---|---|
Stereoscopic 1 Concepts | ClassTranscribe | |
Stereoscopic 2 Calibration | ClassTranscribe | stereoscopic.html |
Stereoscopic 3 Implementation | ClassTranscribe |
Topic | Video | Notes |
---|---|---|
In-class preview of texture content | ClassTranscribe | |
Texture concepts | ClassTranscribe | Textures in WebGL |
Texture code elements | ClassTranscribe | Textures in WebGL |
Texture maps for all visual details | ClassTranscribe | Using Textures |
Parallax texture mapping | ClassTranscribe | Using Textures |
In-class Q&A on camera movement in the MP | ClassTranscribe | |
In-class Q&A on textures beyond the MP | ClassTranscribe | |
In-class Q&A on OBJ files in MP | ClassTranscribe |
How things appear: Retroreflectors
Topic | Video | Notes |
---|---|---|
In-class Q&A introducing raytracing | ClassTranscribe | |
Why raytracing? | ClassTranscribe | |
Ray-plane intersection | ClassTranscribe | Raytracing |
Barycentric coordinates and ray-triangle intersection | ClassTranscribe | Raytracing |
Raytracer design | ClassTranscribe | Raytracing |
In-class Q&A raytracing code design | ClassTranscribe | |
Bounding volume hierachies | ClassTranscribe | Bounding Volume Hierarchies |
Raytracing as integration | ClassTranscribe | Integrating incident light |
In-class Q&A importance sampling | ClassTranscribe | |
Raytracing many bounces | ClassTranscribe | Integrating incident light |
Raytracing acceleration | ClassTranscribe | |
In-class Q&A raytracing on GPU | ClassTranscribe | |
In-class Q&A raytracing in context | ClassTranscribe |
How things appear: Scale and depth of field and Peach fuzz
Topic | Video | Notes |
---|---|---|
Simulation-generated motion | ClassTranscribe | Visual Simulation |
Particle dynamics | ClassTranscribe | Euler, RK, and PBD |
Resolving collisions of rigid spheres | ClassTranscribe | Euler, RK, and PBD |
Rendering particles | ClassTranscribe | Particle Effects |
Instability and the CFL conditions | ClassTranscribe | The CFL Conditions |
Particle-based soft bodies and fluids | ClassTranscribe | Smoothed Particle Hydrodynamics |
Divergence-free grid-based fluids | ClassTranscribe | Fluids on a Grid |
Self-advecting grid-based fluids | ClassTranscribe | Fluids on a Grid |
In-class Q&A on fluids | ClassTranscribe | |
In-class Q&A on graphics publication | ClassTranscribe |
How things appear: Optical illusions from relative color perception
Topic | Video | Notes |
---|---|---|
In-class Q&A on MP5 | ClassTranscribe | |
In-class Q&A on shadows, deferred shading | ClassTranscribe | |
Shadow maps and shadow acne | ClassTranscribe | Shadow maps |
Visibility and occlusion culling | ClassTranscribe | |
Deferred shading | ClassTranscribe | Deferred Shading |
Inverse Kinematics | ClassTranscribe | IK_survey.pdf |
In-class Q&A on rasterized global illumination | ClassTranscribe |
How things appear: Sunbeams
Topic | Video | Notes |
---|---|---|
In-class Q&A setting up Nanite | ClassTranscribe | |
Nanite 1 Highly Detailed Scenes | ClassTranscribe | Streaming, Level of Detail, and Occlusion |
Nanite 2 LOD | ClassTranscribe | Streaming, Level of Detail, and Occlusion |
Nanite 3 Occlusion | ClassTranscribe | Streaming, Level of Detail, and Occlusion |
Nanite 4 Streaming | ClassTranscribe | Streaming, Level of Detail, and Occlusion |
Nanite 5 Other | ClassTranscribe | Streaming, Level of Detail, and Occlusion |
Lecture attendance is not required and not part of your grade; hence absences from lecture are permitted at any time for any reason.
Any scheduled as an in-person assessments must be taken as scheduled; exceptions must be arranged in advance and in most cases will be rescheduled at a time before the usual assessment time. As of 2022-08-19 there is only one scheduled in-person assessment (the final quiz), and we reserve the right to change it to a less-restrictive format such as the CBTF or an online quizzing tool, offered in a time window that includes the currently scheduled time.
The University of Illinois at Urbana-Champaign Student Code should also be considered as a part of this syllabus. Students should pay particular attention to Article 1, Part 4: Academic Integrity. Read the Code at the following URL: http://studentcode.illinois.edu/.
Academic dishonesty may result in a failing grade. Every student is expected to review and abide by the Academic Integrity Policy: https://studentcode.illinois.edu/article1/part4/1-401/. Ignorance is not an excuse for any academic dishonesty. It is your responsibility to read this policy to avoid any misunderstanding. Do not hesitate to ask the instructor(s) if you are ever in doubt about what constitutes plagiarism, cheating, or any other breach of academic integrity.
As a course in the department of Computer Science, every student in this course is expected to review and abide by the Honor Code and Academic Integrity policy: https://cs.illinois.edu/academics/honor-code. To assist in clarifying that for this course, we define three terms and a set of policies for each type of graded assessment in this course.
Static content existed in its entirety with no input from students and no reference to this course nor to the assignment in question. Most textbooks, websites, and recordings are static content.
Interactive content is created, in part or in whole, in response to the course, assignment, or students. Live help from tutors or peers is always interactive, as are Q&A and discussion forums with student contributors and any content that refers to an assignment directly.
Overfitted content addresses the answer
(what
to select on a quiz question, what to type in a program, etc.) rather
than the knowledge the assignment was designed to build or measure. If
the content fails to teach you both (a) why an answer works and (b) how
to complete different assessments based on the same principle, then the
content is overfitted.
Online quizzes will be administered throughout the semester.
Information Source | Policy |
---|---|
Your memory from before you viewed the quiz, regardless of source | OK |
A calculator or computer program you wrote | OK |
Course-provided recordings or readings | OK |
Other static, not-overfitted content | Cite* |
Interactive help from course staff | Cite* |
Other interactive or overfitted help. | Prohibited |
A quiz may explicitly allow additional information sources in its lead-in text on the quizzing site.
* To cite sources, give a link (or other descriptor for non-web
content) in the comments box for the question. If a quiz question does
not have a comments box, Cite
sources may be used without
citation on that question. Comments boxes may also be used for
non-citation comments, for example to explain the reasoning behind your
answer.
Graded homework programming assignments will be due throughout the semester.
Information Source | Policy |
---|---|
Your memory from before you viewed the quiz, regardless of source | OK |
A calculator or computer program you wrote | OK |
Course-provided recordings or readings | OK |
Interactive help from course staff | OK |
Language and API documentation and help (static or dynamic) | OK |
Non-overfitted static help | Cite** |
Non-overfitted dynamic help that does not include code (neither written nor described) | Cite** |
Interactive help that includes code | Prohibited |
Overfitted sources | Prohibited |
A programming assignment may explicitly allow more collaboration in its lead-in text on the homework description site.
** To cite sources, give a link (or other descriptor for non-web content) in comments in your code.
As members of the Illinois community, we each have a responsibility to express care and concern for one another. If you come across a classmate whose behavior concerns you, whether in regards to their well-being or yours, we encourage you to refer this behavior to the Student Assistance Center (217-333-0050 or http://odos.illinois.edu/community-of-care/referral/). Based on your report, the staff in the Student Assistance Center reaches out to students to make sure they have the support they need to be healthy and safe.
Further, as a Community of Care, we want to support you in your overall wellness. We know that students sometimes face challenges that can impact academic performance (examples include mental health concerns, food insecurity, homelessness, personal emergencies). Should you find that you are managing such a challenge and that it is interfering with your coursework, you are encouraged to contact the Student Assistance Center (SAC) in the Office of the Dean of Students for support and referrals to campus and/or community resources.
As a member of the Illinois Computer Science community, you are expected to know and abide by the Illinois Computer Science Values & Code of Conduct (URL: https://cs.illinois.edu/about/values). If you come across a classmate whose behavior concerns you in regards to this code of conduct, we encourage you to refer this behavior to the CS CARES Committee: https://cs.illinois.edu/about/cs-cares.
Behavior that persistently or grossly interferes with classroom activities is considered disruptive behavior and may be subject to disciplinary action. Such behavior inhibits other students’ ability to learn and an instructor’s ability to teach. A student responsible for disruptive behavior may be required to leave class pending discussion and resolution of the problem and may be reported to the Office for Student Conflict Resolution (https://conflictresolution.illinois.edu; conflictresolution@illinois.edu; 333-3680) for disciplinary action.
Emergency response recommendations and campus building floor plans can be found at the following website: https://police.illinois.edu/em/run-hide-fight/. I encourage you to review this website within the first 10 days of class.
Significant stress, mood changes, excessive worry, substance/alcohol misuse or interferences in eating or sleep can have an impact on academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings which are covered through the Student Health Fee. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below. Getting help is a smart and courageous thing to do for yourself and for those who care about you.
If you are in immediate danger, call 911.
This statement is approved by the University of Illinois Counseling Center
Illinois law requires the University to reasonably accommodate its students’ religious beliefs, observances, and practices in regard to admissions, class attendance, and the scheduling of examinations and work requirements. Students should complete the Request for Accommodation for Religious Observances form should any instructors require an absence letter in order to manage the absence. In order to best facilitate planning and communication between students and faculty, students should make requests for absence letters as early as possible in the semester in which the request applies.
Part of my religion discourages me from participating in work-related activities on Sundays. As such, I will generally not respond to course-related communications on those days.
The University of Illinois is committed to combating sexual misconduct. Faculty and staff members are required to report any instances of sexual misconduct to the University’s Title IX and Disability Office. In turn, an individual with the Title IX and Disability Office will provide information about rights and options, including accommodations, support services, the campus disciplinary process, and law enforcement options.
A list of the designated University employees who, as counselors, confidential advisors, and medical professionals, do not have this reporting responsibility and can maintain confidentiality, can be found here: https://wecare.illinois.edu/resources/students/#confidential.
Other information about resources and reporting is available here: https://wecare.illinois.edu.
To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor as soon as possible and provide the instructor with a Letter of Academic Accommodations from Disability Resources and Educational Services (DRES). To ensure that disability-related concerns are properly addressed from the beginning, students with disabilities who require assistance to participate in this class should apply for services with DRES and see the instructor as soon as possible. If you need accommodations for any sort of disability, please speak to me after class, or make an appointment to see me or see me during my office hours. DRES provides students with academic accommodations, access, and support services. To contact DRES, you may visit 1207 S. Oak St., Champaign, call 217-333-1970, e-mail disability@illinois.edu or visit the DRES website at http://www.disability.illinois.edu/. Here is the direct link to apply for services at DRES, https://www.disability.illinois.edu/applying-services.
Of particular note: by university policy, services recommended by DRES are not retroactive, applying only from the date of their being granted forward. If you believe you may benefit from such services, please contact DRES before the services are needed.
This course is almost entirely about how things look. If you have an uncorrected visual impairment, a light-induced disability, or any form of optical diversity or abnormality (for example: complete or partial blindness, uncorrected myopia or hyperopia, color blindness, monocular vision, flashing-light-induced seizures, scotophobia, etc.), please visit one-on-one with the course instructor to discuss how these may interact with the course.
I assume that most students will have their own computer, but sometimes they crash or otherwise fail for a time.
The Engineering Workstations have several of the most populat programming languages used in this class pre-installed.
Grainger runs a loaner laptop program.
Loaner laptops may be borrowed for up to 10 days from the Scholarly Commons at the 3rd floor of the U of I Main Library (Room 0306).
Files you’ve submitted you may download from the submissions page. Files you’ve not submitted I cannot help you recover.
Per the student code §1-401 a.1.
It is the responsibility of each student to refrain from infractions of academic integrity, …
Using code you find online instead of writing your own code is such an infraction.
… from conduct that may lead to suspicion of such infractions, …
Consulting a source without citing it in your code is likely to lead to such suspicion.
… and from conduct that aids others in such infractions.
Sharing code for assignments in this class in a way that is readily discoverable by other current or future students in this class qualifies as such aid.
If you are proud of the code you created for this class and want to
share it with others, please do so with specific people rather than the
general public in a way that cannot be found via search engines; for
example in direct messages, a private repository, a password-protected
website, or an unlisted website with noindex
HTTP response headers or meta tags.