z-logo
Premium
τ ε ́ χ ν η Photons: Evolution of a Course in Data Structures
Author(s) -
Duchowski A. T.
Publication year - 2014
Publication title -
computer graphics forum
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.578
H-Index - 120
eISSN - 1467-8659
pISSN - 0167-7055
DOI - 10.1111/cgf.12279
Subject(s) - computer science , course (navigation) , data structure , modular programming , computer graphics , rendering (computer graphics) , computer graphics (images) , graphics , tracing , ray tracing (physics) , theoretical computer science , algorithm , programming language , engineering drawing , physics , astronomy , engineering , quantum mechanics
Abstract This paper presents the evolution of a data structures and algorithms course based on a specific computer graphics problem, namely, photon mapping, as the teaching medium. The paper reports development of the course through several iterations and evaluations, dating back 5 years. The course originated as a problem‐based graphics course requiring sophomore students to implement Hoppe et al .'s algorithm for surface reconstruction from unorganized points found in their SIGGRAPH '92 paper of the same title. Although the solution to this problem lends itself well to an exploration of data structures and code modularization, both of which are traditionally taught in early computer science courses, the algorithm's complexity was reflected in students' overwhelmingly negative evaluations. Subsequently, because implementation of the k d‐tree was seen as the linchpin data structure, it was again featured in the problem of ray tracing trees consisting of more than 250 000 000 triangles. Eventually, because the tree rendering was thought too specific a problem, the photon mapper was chosen as the semester‐long problem considered to be a suitable replacement. This paper details the resultant course description and outline, from its now three semesters of teaching.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here