- Course Description
- Prerequisites
- Instructor Info
- Important RIT Deadlines
- Textbooks, Resources, Materials
- Topic List
- Course Organization
- Grading and Late Work Policies
- Tips for Success
- RIT and IGM Policies
- Travel Exception
- Change Notice
In this course, students will learn to create visually rich interactive experiences. It is a course in programming graphics and media, but it is also a course on the relationship between ideas and code. Students will explore topics in math and physics by building programs that simulate and visualize processes in the natural world. Assignments will include major programming projects, such as building a virtual world inhabited by digital creatures that display observable behaviors.
- either IGME-201 New Media Interactive Design and Algorithmic Problem Solving III
- or IGME-106 Game Development and Algorithmic Problem Solving II
- IGME-110 Introduction to Interactive Media
- MATH-131 Discrete Mathematics
- MATH-185 Mathematics of Graphical Simulation I
Instructor | Joe Pietruch |
[email protected] | |
Phone | (585)496-4563 |
Office Hours | Tues/Thurs 5pm-5:30pm (ORN-1375) Monday 8pm-9pm (On Slack) Friday 5pm-6pm (GOL-2350) otherwise, by appointment |
I'm also available on slack and by appointment!
Last Add/Drop | Tuesday, January 23 |
Last Withdrawal | Friday, April 6 |
Required | The Nature of Code by Daniel Shiffman ISBN: 978-0123944436 Available online for free! http://natureofcode.com/book/ |
Optional | Game Programming Algorithms and Techniques by Sanjay Madhav ISBN: 978-0321940155 Available on Amazon |
Other Readings | Handouts, PDFs, URLs |
myCourses | Grades, Exams, Quizzes |
Slack | Messaging |
Google Hangouts | Remote Classes, Office Hours |
Roughly speaking, here is what we'll be covering over the course of the semester:
- Git, GitHub, Version Control
- Introduction to Unity 3D
- 3D Coordinate Systems
- Exploration of Randomness
- Mathematical Foundations
- Vectors and Movement
- Approximating Physics and Movement
- Steering Algorithms
- Flocking Algorithms
- Collision Detection Strategies
- Autonomous Agents with Simple AI
- Basic Obstacle Avoidance
Every day we'll have a warm-up exercise, some lecture/slides, and an exercise and/or quiz. There will be three mini-projects and a final project, along with two exams. Details below:
Attendance to each class is worth 2 points, weighted to 0.5% of your final grade. 30 classes adds up to 15%.
- 2 - show up: easy 0.5%
- 1 - notify me of an absence before class starts: consolation 0.25%
- 0 - no communication: 0.0%
In the event that I cancel class, I will provide ample notice, and you'll receive full attendence credit for that class.
Each week we'll have an exercise. Each exercise is worth 2 points, weighted to 1% of your final grade. 15 exercises adds up to 15%.
- 2 - high effort, complete: full 1.0%
- 1 - low effort, incomplete: partial 0.5%
- 0 - fail to turn it in: 0.0%
Most weeks we'll have a quiz (I have 11 planned). Each quiz is worth a varying amount of points, but each one is weighted to 0.909% of your final grade (yeah, the math is strange). Quizzes will be given through myCourses, and (usually) graded automatically. They are open book / open notes / open internet - closed communication. Quizzes have no time limit, but there will be a deadline.
Over the semester we'll have three mini-projects that put together the pieces we've learned in class. The course culminates in one final project where you show off what you've learned. Each project is weighted to 10% of your final grade.
- P1 - Random Placement
- P2 - Asteroids
- P3 - Humans v Zombies
- FP - TBD (based on where the class ends up)
Two exams: one mid-term, one final. Each exam is administered through myCourses, and weighted to 10% of your final grade. A portion of each is graded automatically, but the free-response answers require my eyes (so don't panic if you see a low mark at first!).
Attendence, Exercises, and Quizzes are reasonably clear-cut. If you have a dispute, come talk to me and we'll resolve it. Generally speaking, I do not accept late work. These items are worth few enough points, anyway.
Projects will be graded once after the due date. After receiving your grade, you will have one week to make improvements and resubmit for a better grade. If you did not submit your project on time, you still have until the end of the resubmit period to get something in, but you will be docked 10% of the project's value and lose the opportunity to resubmit. (An exception to this is the final project, in that resubmissions will only be allowed up until the labs close for the semester, in fairness to students who rely on the labs for work (this class isn't pay-to-win).)
If at all humanly possible, please take the Exams at the offered time. If you must miss an exam, we can schedule a make-up - but I'd really really prefer it not come to that.
Final grades are divided according to the percentage of weighted points earned over the semester. The letter grade breakdown is as follows:
Percentage Range | Grade |
---|---|
93 - 100 | A |
90 - 92.99 | A- |
87 - 89.99 | B+ |
83 - 86.99 | B |
80 - 82.99 | B- |
77 - 79.99 | C+ |
73 - 76.99 | C |
70 - 72.99 | C- |
60 - 69.99 | D |
0 - 59.99 | F |
Be present in class. This includes being physically in the room, as well as mentally attentive. Stay off Facebook / Steam / your phone during class time. Take notes. Ask questions. Be where you are when you're there!
When in doubt, ask me! I try to make myself super-available between slack, email, office hours. If you're struggling, if you need help, if something comes up, if you just want to say hello - send me a messgae!
Get Help Early and Often! As with many things, the material for this class builds on itself. If you struggle with the core concepts, and then wait a few weeks to ask for help, you'll have a harder time later on! Whereas if you get help as you need it, we can shore up things early and have a strong foundation to build on!
Read! The reading assignments are meant to help further your understanding of the software and course materail. Take notes as you read, and come to class with questions about anything that was unclear.
File Handling Work off of the D:/ drive. When possible, sit in the same seat every day. Back up everything (if you only have one copy, you actually have zero copies!). Use GitHub, too!
I work remote full-time for Forbes as a front-end web developer. This requires occassional business trips. In the event that I am out-of town for a class:
- All students will receive full attendance credit for that class.
- I will provide materials for class (slides, readings, exercises).
- I will attempt to host the class over Slack as a video call.
Lastly, these policies are subject to change. You can see the history in GitHub, and I'll notify you by email any time a change is to take place.