Software architects and designers develop abstract models of problems in the aim of designing software-based solutions in the context of customer's needs. Current paradigms for software engineering education are often providing a narrow interpretation of the field, neglecting the art of conceiving useful abstractions of new—often discipline-oriented—problems. Here, an introductory course to software engineering, design and architecture is described. The course is based on designing and modeling a ray tracer for a virtual 3-dimensional graphical renderer, including the realization of the physics involved (light sources, rays, reflections, refractions, colors, occlusions, etc.). During the course, students integrate their fundamental knowledge of mathematics and physics, with their basic understanding of algorithms, data structures, object-oriented design and programming. Multi-phase surveys (n = 312) show increased level of interest, challenge, and relevance. Course materials are available in NBEL-lab.com and shared under the creative common agreement.
Bibliographical noteFunding Information:
Research was funded by JCT research grant. The author would like to thank Tamara Pearlman for her insightful comments.
© 2018 Wiley Periodicals, Inc.
- design patterns
- object oriented design
- project-based learning
- ray tracing
- software engineering