Delivering the fundamentals of software architecture, design and abstraction by developing a ray tracer for 3-dimensional graphical scenes

Research output: Contribution to journalArticlepeer-review

Abstract

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.

Original languageEnglish
Pages (from-to)2002-2011
Number of pages10
JournalComputer Applications in Engineering Education
Volume26
Issue number6
DOIs
StatePublished - Nov 2018
Externally publishedYes

Bibliographical note

Funding Information:
Research was funded by JCT research grant. The author would like to thank Tamara Pearlman for her insightful comments.

Publisher Copyright:
© 2018 Wiley Periodicals, Inc.

Keywords

  • design patterns
  • object oriented design
  • project-based learning
  • ray tracing
  • software engineering

Fingerprint

Dive into the research topics of 'Delivering the fundamentals of software architecture, design and abstraction by developing a ray tracer for 3-dimensional graphical scenes'. Together they form a unique fingerprint.

Cite this