🐄 csci-371 computer graphics (spring 2023)
james bern
LEC mon 2:35 - 3:50 pm @ Schow Library Classroom 030A
thu
LAB tue 1:00 - 2:30 pm @ Thompson Biology 301 (Ward Lab)
2:30 - 4:00 pm
HELP in-person
TA and Prof. Help Hours
via email
cs371staff@williams.edu
help hours | codebase | docs | notes | glow | last-semester
Homework is due on glow the first Monday after it is released at 8 pm.
Please contact me as soon as possible if you cannot meet a deadline. 🙂👍
Homework will be returned within 48 hours of the submission deadline.
You have until the following submission deadline to correct it for full points back.
- You can only correct problems you attempted before the regular deadline.
- You must submit a glow comment explaining what you have changed and why.
Calendar
FUNdaMENTALs
wk00 wed, feb 01
lec00a hw00
wk01 mon, feb 06
lec01a rec01a hw01
thu, feb 09
lec01b rec01b
create
wk02 mon, feb 13
lec02a rec02a hw02
thu, feb 16
lec02b rec02b
wk03 mon, feb 20
lec03a rec03a hw03
thu, feb 23
lec03b rec03b
wk04 mon, feb 27
lec04a rec04a hw04
thu, mar 02
lec04b rec04b
render
wk05 mon, mar 06
lec05a rec05a hw05
thu, mar 09
lec05b rec05b
wk06 mon, mar 13
lec06a rec06a hw06
thu, mar 16
lec06b rec06b
wk07 mon, mar 20
thu, mar 23
wk08 mon, mar 27
thu, mar 30
wk09 mon, apr 03
lec09a rec09a hw09
thu, apr 06
lec09b rec09b
animate
wk10 mon, apr 10
lec10a rec10a hw10
thu, apr 13
xxxxxx xxxxxx
special topics
wk11 mon, apr 17
lec11a xxxxxx hw11 (proposal) -- due thursday in class
thu, apr 20
lec11b rec11b
wk12 mon, apr 24
lec12a rec12a hw12 (progress report) -- due thursday in class
thu, apr 27
lec12b rec12b
wk13 mon, may 01
lec13a rec13a
thu, may 04
lec13b rec13b
wk14 mon, may 08
lec14a rec14a
thu, may 11
lec14b
What to Expect
A hands-on intro to computer graphics.
The Lectures will cover key points and technically interesting examples. There will be group activities. There will be movies.
The Homework will involve lots of challenging programming in C/C++. I will be there to help you along the way.
The Exam will require you to apply challenging mathematical concepts in new ways. I will provide practice problems as we go.
The Final Project will be open-ended, time-consuming, and require you to get creative. I think people enjoyed it last semester 🙂👍
Your final grade will have three parts.
+ 60% Homework,
+ 20% Exam,
+ 20% Final Project.
Homework
You are highly encouraged to collaborate on homework provided you follow the spirit of the
50 ft rule.
Homework is graded on two axes.
Correctness: Is the output correct? Is memory handled appropriately?
Effort (for Creative Coding problems): Was a substantial effort made to create something new/cool/interesting?
Note: you are *not* graded on artistry.
Note: You are *not* graded on comments, style, what you named your variables, etc. However, you are graded on whether your code crashes.
Grades will be assigned on an A, B, C, S scale.
A (95): Homework that is correct and exhibits substantial creative effort.
B (85): Homework with some incorrectness or substandard creative effort.
C (75): Homework with major incorrectness or marginal creative effort.
S (A+): A-tier homework that goes above and beyond (either by completing a challenging extra credit question or by pushing the regular assignment further than anticipated)
Exam
The exam is effectively a no-collaboration homework.
You may *not* ask your friends questions. You may *not* ask the TA's questions. You are welcome to ask Jim questions, though to ensure the exam is fair he is unlikely to be particularly helpful.
You may Google whatever you want, consult course notes, past homework, and textbooks (you can use my copies, provided you share and don't remove them from the lab).
You may write and run code.
You have a full week to finish the exam, though it is not meant to take longer than a regular homework.
You can also submit corrections for the exam, though you will receive a maximum of 50% of the missed points back.
Final Project
The final project is effectively an open-ended multi-week Super Homework.
You may do your final project on whatever you like, provided you can answer the following questions.
0) What is the title of my project?
1) What is my project's big "graphics method"?
Note: This should either be something that was not covered on a homework, or a significant extension of something that was.
2) What is the world that I am proposing? Who or what lives in it? How does it *feel*?
3) Will the viewer/player interact with my project? How so?
4) Does Jim think my project is doable? What is my fallback plan if my project ends up being harder/more time-consuming than I expect?
Here is a great example:
0) Archer
1) Physics-based simulation of a bow and arrow
2) A brightly-colored archery range; just the player and some clouds; feels fun and friendly
3) Click and drag to pull back arrow, release to shoot
4) Yes; if simulating the bow with torsional springs is too hard, then I plan to simulate only the string and render the bow using a geometric method
Optional Textbooks
These resources may be helpful, especially for the final project.
-
Learn OpenGL (free!)
-
OGLdev (free!)
-
the Graphics Codex (free!)
-
Fundamentals of Computer Graphics (I have a hard copy that will live in lab.)
-
Real-Time Rendering (I have a hard copy that will live in lab.)
Inclusivity
Williams College values an inclusive environment, and so do I. In this class, we welcome anyone regardless of age, background, beliefs, ethnicity, gender, gender identity, gender expression, national origin, religious affiliation, sexual orientation, and other visible and non visible categories. I am available to address any questions or concerns in person or over email.
Health/Accessibility Resources
Students with disabilities or disabling conditions who experience barriers in this course are encouraged to contact me to discuss options for access and full course participation. The Office of Accessible Education is also available to facilitate the removal of barriers and to ensure access and reasonable accommodations. Students with documented disabilities or disabling conditions of any kind who may need accommodations for this course or who have questions about appropriate resources are encouraged to contact the Office of Accessible Education at
oaestaff@williams.edu.