Teaching Software Engineering in a Compiler Project Course

  • Authors:
  • William G. Griswold

  • Affiliations:
  • University of California, San Diego

  • Venue:
  • Journal on Educational Resources in Computing (JERIC)
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

A compiler course with a long-term project is a staple of many undergraduate computer science curricula, and often a cornerstone of a program's applied-engineering component. Software engineering expertise can help a student complete such a course, yet that expertise is often lacking. This problem can be addressed without detracting from the core class materials by integrating a few simple software engineering practices into the course. A domain-specific, risk-driven approach minimizes overhead and reinforces the compiler's material, while treating the project as a "real world" enterprise reinforces key engineering lessons. The method might be called "syntax-directed software engineering," being driven by specification centered around a BNF-style grammar. Engineering lessons are reinforced with general engineering principles and contextualization of the subject matter. The approach can be taught without substantial software engineering background. The domain-specific risk-driven software engineering approach can be applied in other courses such as operating systems by redesigning the practices around its domain.