Course Details

  • Course Number: 01:198:428
  • Instructor: Mridul Aanjaneya
  • Course Type: Undergraduate
  • Credits: 4
  • Description:

    To provide a broad introduction to the field of Computer Graphics, and to describe the techniques that are commonly used in the graphics industry today (such as in production of special effects, computer animation, 3D interactive games, and VR).

  • Video Intro:
  • Instructor Profile: Aanjaneya, Mridul
  • Prerequisite Information:

    For students considering a career involving graphics, a course in numerical analysis, such as 01:198:323, is recommended.

    01:198:112 or 14:332:351CALC201:640:250. Credit not given for this course and14:332:474.

    † This course is available for CS Graduate degree credit.

    - A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.

  • Course Links: 01:198:112 - Data Structures
  • Topics:

    This course is combination of algorithms, numerical methods, representations of the shape and appearance of real-world objects, and methods for their display and manipulation.  These algorithms must take into account the conflicting requirements for real-time interactions and usability by artists and animators, and are built upon a solid mathematical background.

  • Expected Work: Students will design, implement, and use interactive graphical applications (in Java, using the OpenGL API).This amounts to three or four large programming projects and some small assignments.¬†Computer Science graduate students taking this course for graduate credit will have additional programming and possibly written work (which is available to the undergraduates as extra credit).Some of the projects will require using graphical tools (no artistic skill is required).
  • Exams: Midterm and Final.
  • Learning Goals:

    Computer Science majors ...

    • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
    • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
    • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).