Computer Graphics Courses |
|||
Course no. |
Title |
Credit
|
Reqd
(R)/ |
581 |
Interactive Computer Graphics |
4 |
E |
681 |
Introduction to Computer Graphics |
4 |
E |
682 |
Computer Animation |
4 |
E |
781 |
Introduction to 3D Computer Graphics |
4 |
E |
782 |
Advanced Image Generation |
3 |
E |
784 |
Geometric Modeling |
3 |
E |
Graphics is a popular applications area of Computer Science and one of the focus areas of the Department.
The field of Computer Graphics continues to evolve at a rapid pace, fueled mainly by the research and development taking place in industry at companies such as Microsoft, nVidia, ATI, PIXAR and ILM, just to name a few. In addition, graphics is becoming a ubiquitous tool in a variety of application areas because of advances in scientific visualization, virtual reality, and the use of the web. We have evolved the curriculum continuously to keep pace with the rapid development of the field, the interests of the students, and the demands of the employers.
We have a six courses in computer graphics, as explained in detail below. Fitting all of the important graphics topics into these courses is a continual challenge. The graphics faculty also offers research seminars that cover recent developments in Animation, Geometric Modeling, and Visualization. Developing new advanced courses on these topics is a priority of the graphics faculty. Additional details on the graphics faculty and courses can be found at:
http://www.cse.ohio-state.edu/graphics
The graphics curriculum satisfies many of the CSE and ABET objectives. As an application area, Computer Graphics is an area in which students can exercise the principles of software design, databases, algorithms, data structures, user interfaces, and programming languages which they have learned in the foundation courses. The graphics courses rely heavily on the application of various principles from areas of mathematics such as vector algebra, affine transformations, linear interpolation, perspective and parallel projections, the use of interpolating splines, geometry, and trigonometry. The advanced graphics courses use material common to Engineering such as heat transfer theory to explain radiosity, computational science simulations, including spring-mass systems, collision detection and particle systems and Fourier analysis to explain aliasing. The graphics sequence is intimately concerned with developing the principles of physics into computational models for illumination and shading. User interface issues are a common theme, which run through the graphics curriculum. Students who study graphics in the Department receive a good grounding in the area, are usually ready for graduate studies in graphics and are very employable.
Section 2.1 describes the individual courses in the group. Section 2.2 explains how the group is related to the rest of the CSE program. Section 2.3 explains how the group helps meet a range of CSE and ABET objectives. Section 2.4 provides information on the feedback we have received from students, recruiters, etc. about the courses in the group. Section 2.5 summarizes the changes we are considering in the various courses.
We have six courses in the computer graphics area: CSE 581, 681, 682, 781, 782, and 784. (784 was renumbered from 881 in order to allow undergraduate students to take the course.) The first course was design as a survey or terminal course for students wanting some computer graphics, but not necessarily continuing on towards the theory and advanced algorithms. CSE 681 has been redesigned to serve as the foundations or core theory course for the area, covering the basic physics, algorithms, data structures and theory behind the area. The remaining courses focus on specific sub-areas within computer graphics.
CSE 581: Interactive Computer Graphics is an introductory computer graphics course offered to OSU undergraduate and non-CSE majored graduate students. This is a new course designed in 2001 aiming to provide the students with practical programming skills using state-of-the-art graphics accelerators and the OpenGL API. Accompanying with a thorough discussion of 2D and 3D algorithms such as graphics display technology, transformations, lighting and shading, texture mapping, and color theory, students are asked to perform four individual programming labs using C/C++ and OpenGL. In the labs, students need to construct simple graphics models and perform real-time rendering using OpenGL. They also need to design basic interface and input event handlers to provide with the user an interactive control of the graphic scenes. By the end of the quarter, an image/animation competition is held where students will enter their best OpenGL images and animations produced from their labs. The top three entries from the students are chosen by the entire class.
CSE 781: Introduction to 3D Image Generation is an advanced course focused on real-time rendering of polygonal models. The target students of this course are CSE advanced undergraduate and graduate students who have a solid background in basic graphics algorithms such as transformations, projections, lighting and shading, and OpenGL programming. In the past, about 70% of the students in the class were graduate students and 30% were undergraduates. A common theme for the topics discussed in this course is to add realism to the final rendered images. The algorithms discussed in the course include shadows, anti-aliasing, advanced texture mapping, occlusion culling, advanced transformations, non-photorealistic rendering, shaders, and GPU programming. Students in this course need to complete three labs, each of which involves a substantial amount of programming, and a final project for which students can form teams. Besides the standard OpenGL features, students will learn advanced programming of graphics hardware and many of the extensions to OpenGL that are continually being developed (and later added to the standard).
CSE 782: Advanced Image generation. This course is a continuation of CSE681. CSE undergraduate students and graduate students (also from other disciplines) often enroll in this course. The methods of ray-tracing are studied further and a larger range of topics are examined. The emphasis is on photorealistic rendering. Monte-Carlo methods (including path tracing and photon map methods) form the staple of algorithms that allow the rendering of large complex scenes and of participatory media. Other topics include tone reproduction operators to deal with high dynamic range images and acceleration techniques based on spatial sub-division. The course relies on the software pbrt (physically based ray tracer). Pbrt allows users to practice a dialect of literate programming. Access to an elaborate set of C++ classes and methods are provided through a literate programming interface. Students enrolled in the course are required to complete four laboratory assignments. In lieu of the final exam, they also complete a final project. The first laboratory assignment allows the student to gain familiarity with pbrt. The second laboratory assignment requires the students to complete an implicit surface ray tracer while exploiting spatial sub-division methods to accelerate ray-tracing. The third assignment when completed will inform the users of the power of tone reproduction operators. Students are allowed to choose from a list of options for the final laboratory assignment. The choices are mostly in the topic of Monte-Carlo algorithms. For the final projects, the students are given much latitude. A project suggested by the instructor can be pursued. Or, the students can choose a project that matches their interest. It should be noted that given the complexity of the projects and assignments, teams of two students are allowed to complete all programming tasks. The midterm exam required the discussion of seminal papers and the students were not allowed to co-operate.
Computer Graphics is a very popular elective area. As an application area, it is an area in which students can exercise the principles of software design, databases, algorithms, data structures, and programming languages they have learned in the foundation courses (1a). All of the graphics courses require fairly intensive programming; CSE560 is a prerequisite to CSE581 in order to ensure significant programming experience among the students. CSE781 has a prerequisite of CSE675 because it covers some hardware issues related to frame buffers and color look-up tables. CSE541 is a prerequisite to CSE784 because of the dependence on numerical techniques when analyzing sculptured surfaces. None of the graphics courses are prerequisites to any courses outside of the graphics curriculum.
The courses in this group play a key role in meeting both CSE program objectives as well as ABET Criterion 3 objectives. In section 2.3.1 we consider the CSE objectives that this course group helps us meet, and in section 2.3.2 we consider the ABET objectives.
As an application area, Computer Graphics is an area in which students can exercise the principles of software design, databases, algorithms, data structures and programming languages which they have learned in the foundation courses. CSE 581 utilizes a pervasive standard in OpenGL that quickly allows the user to develop full-functioning programs and results. The course also stresses the interaction with the program and user interface elements to control the various graphical elements, including the camera. CSE 681 delves into spatial databases and partitioning, as well as hierarchical representations. Both CSE 581 and CSE 681, as well as all of the graphics courses, are heavily project oriented and students heavily exercise the design and implementation of practical systems, meeting Objective I.
The graphics sequence is intimately concerned with developing the principles of physics into computational models for illumination and shading. Computer Graphics relies heavily on basic mathematical and scientific principles. CSE581 depends on matrix manipulation, clipping procedures, 2D and 3D linear mappings, affine transformations, perspective projections and perspective transformations. CSE681 uses vector algebra, line intersection, polygon intersection, normal vector calculation, dot product, cross products, trigonometric identities, geometric arguments, ray tracing, complex spatial data organization and processing, and hierarchical data structures. CSE681 covers the basic illumination models including diffuse and specular illumination, reflectance, and refraction. CIS782 includes radiosity (heat transfer theory), photon transport and anti-aliasing (Fourier analysis). CSE 784 deals with interpolation properties and surface reconstruction from discrete samples. These fully meet Objective II.
User Interface design issues are a common theme which run through the graphics curriculum. CSE581 provides an introduction to the use and design of graphical user interfaces and how information can be effectively communicated from user to system. In addition, various input devices are surveyed in CSE581. In CSE784, students are also required to design their own graphical interfaces to drive their own geometric modeling packages which they develop in the course. While a user interface is stressed, rather than good user interface design and principles, the courses provide some measure towards Objective III.
The complexity of the programming assignments seems to encourage more chatter on the newsgroups and dialog within the labs as students seek out help from fellow students. CSE 682 is a new capstone course, satisfying the goals of team-oriented design. In fact, this course is typically taught in conjunction with faculty and students from the School of Art through the graphics faculty’s close relationship with the Advanced Center for Computer Art and Design (ACCAD). This provides a nice interdisciplinary teamwork and a capstone experience that more closely mimics the computer animation industry. Bi-weekly progress reports are required of the student teams as they work towards a 10-week final project. Organization and well-thought out design are critical during this course. CSE 781, CSE 782 also have team projects in which the students not only work together but must come up with their own design and research issues for their final projects. These courses heavily meet the objectives in Objective IV.
As a result of increased bandwidth of the Internet, cheaper processing power and storage devices, and more sophisticated display devices, computer graphics is becoming part of the computing infrastructure. As a consequence, it is becoming more important to industry in everything from web pages to Hollywood films to interactive kiosks. The graphics curriculum in the Department covers the basics of graphics very thoroughly. Students who study graphics in the Department receive a good grounding in the area, are usually ready for graduate studies/research in graphics and are very employable. Evidence for this is anecdotal in the successful employment of many of our graduates in the graphics industry as well as several students continuing on for advanced studies at Ohio State and other institutions. The project-based approach in the graphics courses also provides the students with additional materials for a portfolio, which can aid in the discussions and possible interviews. The continual updating of the courses is critical to staying on this leading edge, particularly for a very rapidly changing field such as computer graphics. Finally, a key ingredient to continued success is the networking between our alumni and colleagues working in the field and our students. This is supported through invited talks and recruiting events. Objective V has been met, and we will continually strive to satisfy this objective through refinement of the curriculum, and continued interaction between alumni and students.
The contributions that these courses make toward meeting various CSE outcomes are summarized in the following table:
Summary of Relation to CSE Outcomes |
||||||||||||||
CSE Course |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
CSE |
|
581 |
XXX |
X |
XX |
|
|
|
X |
|
|
|
XX |
X |
|
|
681 |
XXX |
XXX |
X |
X |
XX |
X |
|
|
X |
X |
X |
XX |
XXX |
|
682 |
XXX |
XX |
XX |
|
XX |
|
|
|
XXX |
XXX |
XX |
XX |
XXX |
|
781 |
XXX |
XX |
X |
|
XX |
|
|
|
XX |
|
XX |
XX |
XXX |
|
782 |
XX |
XXX |
X |
XX |
XX |
|
|
|
XX |
|
XX |
XX |
XXX |
|
784 |
XX |
XXX |
X |
XX |
|
|
X |
|
X |
X |
XX |
XX |
XXX |
|
Engineering programs must demonstrate their graduates have:
a. an ability to apply knowledge of mathematics, science, and engineeringb. an ability to design and conduct experiments, as well as analyze and interpret datac. an ability to design a system, component, or process to meet desired needsd. ability to function on multi-disciplinary teamse. an ability to identify, formulate, and solve engineering problemsf. an understanding of professional and ethical responsibilityg. an ability to communicate effectivelyh. the broad education necessary to understand the impact of engineering solutions in a global and societal contexti. a recognition of the need for, and an ability to engage in life-long learningj. a knowledge of contemporary issuesk. an ability to use techniques, skills, and modern engineering tools necessary for engineering practice.
This group of courses strongly contributes toward meeting ABET criteria 3a, 3c, 3g (with CSE 682) and 3k; moderately towards criteria 3e, 3i and 3j; and to a limited extent 3b, 3d and 3h. Highlights of the various software engineering and development assignments attest to meeting criteria 3c and 3k. These have been collected by the individual faculty member, but probably should be placed within the graphics web-page domain. Section 2.3.1 explains how CSE 681, CSE 682, CSE 781, CSE 782 and CSE 784 are heavily focused on the mathematics and underlying physics in illumination, as well as in dynamics (movement) to meet criteria 3a. Section 2.3.1 also explains the in detail the capstone course (CSE 682) outcomes contributing towards criteria 3g. All of the courses stress a progression from understanding the basic mathematics and physics towards algorithms and finally towards efficient implementations either in software or under the constraints of the graphics hardware and APIs.
The contributions that these courses make toward meeting various ABET objectives are summarized in the following table:
Summary of Relation to ABET Criterion 3 Outcomes |
|||||||||||
CIS Course |
ABET |
ABET |
ABET |
ABET |
ABET |
ABET |
ABET |
ABET |
ABET |
ABET |
ABET |
581 |
X |
|
XXX |
|
XX |
|
|
|
XX |
XX |
XXX |
681 |
XXX |
X |
XXX |
|
XX |
|
|
|
XX |
XX |
XX |
682 |
XXX |
X |
XXX |
XX |
XX |
|
XXX |
X |
XX |
XX |
XXX |
781 |
XX |
X |
XXX |
|
XX |
|
X |
|
XX |
XX |
XXX |
782 |
XXX |
|
XXX |
|
XX |
|
X |
|
XX |
XX |
XX |
784 |
XXX |
|
XXX |
|
XX |
|
|
|
XX |
XX |
X |
One of the major concerns in our last report was the difficulty current students had with our first course, CIS 681 at the time. This course required the students to develop their own transformation, clipping and rasterization implementations, which at the end of the quarter provided very crude graphical representations. With the strengthening of OpenGL as an industrial standard, and the promulgation of OpenGL textbooks, we pushed for both a new course surveying the components and issues in computer graphics. We utilized the OpenGL standard to focus the initial user's interest on the capabilites and limitations of the current consumer hardware, rather than the nitty-gritty implementation details of the underlying algorithms. We also successfully pushed for a dedicated PC-based computer lab where students could program the graphics hardware and have interactive results. This was done for both CSE 581 and CSE 781 where real-time interaction and customization are heavily stressed. This lab was equipped with state-of-the-art graphics cards and has served the students well. This course now exposes students who are interested in a survey of the field, as well as an introduction to the field and the toolkits used for those students intending to seriously study the field.
With many of our graduates seeking employment at various animation houses and game companies, we indicated a desire to provide a project-based animation course. The graphics area also lacked a designated capstone course. The animation course was developed and designed to fullfill the requirements for a CSE capstone course.
As visualization is one of our key research areas, there was also a desire to provide a core visualization course. This course has been developed and just went through its third pilot (Spring 2005).
Since the last report, several major changes have been made to the CSE graphics curriculum. First of all, we introduced an introductory graphics course CSE 581 for undergraduate students. This course is designed as a terminal course for students who will only take one graphics course before they graduate. To give students some skills needed by industry, we put a particular focus on programming OpenGL, an industry standard API so that the students can develop hands-on experience in graphics programming. As CSE 581 replaces CSE681 as the introductory graphics course, we modified the course contents for CSE 681 and CSE 781 accordingly. CSE 681 is now targeted as an intro course for CSE graduate students who already have background in graphics, or undergraduate students who have taken CSE 581. Topics discussed in CSE 681 include ray tracing algorithms and related issues, which were taught previously in CSE 781. For the revised CSE 781, right now we are focused on interactive techniques for advanced graphics algorithm using OpenGL and graphics accelerators. This course is designed primarily for CSE graduate students who major in graphics, with a few advanced undergraduate students.
Another new course that we offered since last course report is the computer animation course CSE 682. This course is also the capstone course for the graphics series. More information about the course can be found in section 2.
Finally, we changed the course number for Geometric Modeling from CSE 881 to CSE 784. The rationale behind is that the 800 course number can be intimidating to some of the undergraduate students (and they need special permission) even though the course can be handled by most of our undergraduate students who are interested in graphics.
Textbooks for the mainstream of Computer Graphics display and illumination are well-developed at this point and, while we continually fine tune, there are no major problems. Some of our seminars lack good texts, but papers from the literature are used effectively.
Other possible courses which might be introduced include a course in Visualization. This course is currently going through the piloting stage.
We are now in the third year of our migration to the new curriculum and it appears to be a very successful switch. With six courses now instead of four, enrollment in the upper courses has wavered some, but recent enrollments are consistent with previous years. The piloted Visualization course has not drawn in the students from other disciplines as we had hoped and the rational and format for this course is still be evaluated. The new survey course, CSE 581, is extremely popular, but is only offered twice throughout the year. As demand continues, it is hoped that this course can be offered more frequently. This will provide a larger audience for the remaining graphics courses. It also might be a good idea to drop 560 as a prerequisite to 581, which would make it accessible to students in the proposed Applied Software Engineering graduate minor. This prerequisite is mostly for programming maturity, not necessarily its team project.
We have successfully redesigned the curriculum, but still need to change the official titles and descriptions to more closely reflect the new content. The course desciptions provide the updated content. All courses have undergone significant changes.
While user interfaces are not an area associated with any of the existing computer graphics faculty, this is some concern about the lack of a good user interface course.
The Computer Graphics group is a popular application area for the CSE program and serves as a testbed for the mainstream programming concepts and techniques taught in the spine of the curriculum. The courses, as they currently stand, are doing very well; students are generally satisfied with the courses, we are placing students in with top-notch employers and graduate programs in the field and there is strong faculty commitment to the courses.
Course |
Coordinator |
Recent Instructors |
|
|
|
581 |
Shen |
Shen, Crawfis |
681 |
Machiraju |
Machiraju, Parent, Wenger |
682 |
Parent |
Machiraju, Parent |
781 |
Shen |
Shen, Crawfis |
782 |
Machiraju |
Machiraju, Crawfis |
784 |
Dey |
Dey |
People involved in preparing report: Roger Crawfis, Han-Wei Shen, Raghu Machiraju, Tamal Dey, Rick Parent
Date of report: Tuesday, May 17, 2005