CSC133: Object-Oriented Computer Graphics
Shankar N Swamy
About the course:
This course is more about software engineering using Java where we predominantly use graphics programming to learn software engineering. This is not a course to learn graphics or OpenGL per se and no prior knowledge of either is assumed.
The goals:- to train students to learn how to evolve specifications into working software,
- to train students to take up software development positions in the industry.
This is not a course in Java programming; you are expected to be able to write programs in Java.
We only support Windows 11 and Linux in the course. The instructor uses Linux and Windows. OpenGL is used in the assignments and OpenGL on Apple systems runs simulated on top of Metal API. Though students have used Apple systems for this course, instructor is unable to commit to it.
- Each section is run independently. If you have to switch sections, you have to do it through the departmental procedure, at the beginning of the semester.
- Quizzes, tests, and finals will be different for each section. Some assignments may be similar.
This is a project-oriented, hands-on course, which means it will involve significant software development.
We will make every attempt to cover the material that is most relevant to the industry as of today, and as such there is no single book or a small number of books that cover the material we cover and hence there is no textbook. Lectures cover what is needed for the assignments. Quizzes, tests, and finals will cover lectures and assignments. If you do all assignments yourself and understand the solutions, understand the material covered in the lectures, you are fully prepared for the quizzes, tests and the finals.
- All lectures, office hours are face to face only. There will be no recording of the lectures. Audio/video recording of the lectures with your cellphones, taking pictures without prior permission, are not allowed.
- All assignments are to be done individually. Assignments turned in form part of your grades and as such should be your own work. Turning in work done by others - ether paid for or obtained as gratis, either from fellow students or from outside sources - is considered cheating. You are expected to use the lectures, office hours and Canvas discussions to get the needed help to do the assignments.
All quizzes, Tests, Finals are open to handwritten notes. That is, handwritten notes. Not text books or computer printouts. Please do not ask for exemptions. If you take your notes on a tablet or in some digital format, you will have to transfer them to handwritten format to use them in the quizzes and tests.
We won't be covering graphics to the depth where you will need deep mathematics background such as projective geometry, monte carlo computations nor deep physics knowledge such as BRDF, Radiance or Photorealism. Whatever graphics/mathematical tools are needed will be covered from ground up, on a need driven basis.
This is an applied-engineering course. The overall emphasis will be on hands-on programming and engineering assignments to learn creating quality software and to learn graphics programming.
Development Environment, syllabus, etc will be covered on the Canvas platforms for the course.
Grading:
We will have multiple quizzes and a final. All quizzes and the final are closed to books, cellphones, computers etc. However, they are all open to handwritten notes. You can bring any amount of notes, notebooks etc. But they all have to be handwritten. No computer Printouts.
Quizzes are usually given at the end of the lecture, will cover the material from that lecture and previous lectures.
The grades for the course will be based on a curve.