Instructor: Joseph O'Rourke
Textbook: None! This course
is somewhat unusual and is not approximated by any existing textbook. This saves you
money but puts a demand on your attendance, attention, and note-taking.
Location: Burton B17.
Time: MW 9:00-10:20AM.
Overview This course is intended for all students with one introductory programming class.
It serves both for the Digital Arts Minor, and as a Computer Science Major course, covering both Programming and Theory.
Prerequisites: The prerequisites are minmal: One course in programming, e.g.,
Computer Science I (CSC 111), language not so crucial; Four yrs of HS math.
Two Tracks: The course has two tracks in the assignments: (1) for those counting it for Computer Science major programming or theory credit, or (2)
for those counting it as a generic "elective," e.g., for the Digital Arts Minor.
Computer Science majors are welcome to follow Track 2 if it is not fulfilling the programming or theory requirements. And anyone nominally in Track 2 can select the Track-1 assignment any week.
Programming Language:
I am assuming only exposure to Python from Computer Science I. Programming experience in C or C++ is not required. One-course experience in C++ or Java will suffice to supplant experience with Python, because we will use Python only superficially to call OpenGL library routines.
Software:
Course Structure: We meet two times a week; there is no lab, although we will do many "minilabs" during class time. There will be one assignment per week, due (generally) each Tuesday at midnight. Ideally you get started over the weekend and are prepared to ask questions in Monday's class. Collaboration is permitted, even encouraged, on assignments. Precise details in the detailed schedule.
Exams: Two of the assignments will be one-week take-home "exams," which are very much like assignments except that (a) they focus more on understanding rather than doing, and (b) unlike assignments, there is no collaboration permitted. You can view the assignment-exams as more comprehensive assignments that count slightly more than a normal assignment.
Project: There is a final (structured) project, due on the last day of the exam period.
Grades:
| 8 Assignments |
|
| 2 Assignment-exams (take-home) |
|
| Project |
|
TA: Volha Charnysh <vcharnys@email.smith.edu>. Her lab hours will be as follows in McConnell 104 x3853:
Day |
Time |
| Monday | 7:30PM-10:30PM |
| Tuesday | ~9:30PM-11:00PM |
O'Rourke Office Hours & Schedule
Last Update:
Week |
Dates |
Topics |
Assignment |
Sep 8,10 |
Introduction; Postscript |
||
Sep 15,17 |
Postscript; OpenGL |
1: Postscript |
|
Sep 22,24 |
Graphics Hardware; OpenGL;2D Transformations; |
2: OpenGL |
|
Sep 29, Oct 1 |
Game Programming: GameMaker Basics |
3: Transformations |
|
Oct 6,8 |
GameMaker: Scripts |
4a: GameMaker-I |
|
6 |
Oct 15 |
[Oct 13: Fall Break] Review |
4b: GameMaker-II |
7 |
Oct 20,22 |
Bezier curves |
5: MidTerm |
8 |
Oct 27,29 |
Curves & Surfaces |
6:Illustrator |
9 |
Nov 3,5 |
Perspective; Blender |
7: Blender |
10 |
Nov 10,12 |
Blender | 8: Blender |
11 |
Nov 17,19 |
POV-ray: camera, lights | 9 :POV-ray |
12 |
Nov 24 |
[Nov 26: Thanksgiving] | |
13 |
Dec 1,3 |
Reflectance; Texture | POV-ray Project |
14 |
Dec 8,10 |
Ray-tracing algorithm | 10: Final |
Dec 12-15 |
[Reading Period] | ||
Dec 16-19 |
[Exams] |
Week |
Dates |
Topics |
Info/Software Links |
Sample Files |
Notes |
Labs |
Assignments |
Mon Sep 8 |
Introduction; Postscript: begin |
||||||
Wed Sep 10 |
Postscript: vars, procs, translate | ||||||
Mon Sep 15 |
Postscript: Transformation, Control Structures, Text | palette.ps |
|||||
Wed Sep 17 |
OpenGL: begin History Structure Operation PyOpenGL |
Python PyOpenGL OpenGL Tutorial |
|||||
Mon Sep 22 |
Graphics hardware Animation in OpenGL |
OpenGL pipeline | |||||
Wed Sep 24 |
Transformation matrices | Wikipedia on Transf. Matrix | |||||
Mon Sep 29 |
GameMaker Resources: Rooms, Objects, Sprites, Events, Actions, etc. |
GameMaker GM Wiki |
A4a due Tu 7th @midnight |
||||
Wed Oct 1 |
GameMaker: Events, Actions, Variables | ||||||
Mon Oct 6 |
Scripts; GML; variables | A4b due We 15th @midnight |
|||||
Wed Oct 8 |
Debugger; Particle Systems |