skip to main content
article

Teaching Software Engineering in a Compiler Project Course

Published: 01 December 2002 Publication History

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.

Supplementary Material

ZIP File (p3-griswold.zip)

References

[1]
BECK, K. 1999. <I>Extreme Programming Explained: Embrace Change</I>. Addison-Wesley, Reading, MA.
[2]
BOEHM, B. W. 1988. A spiral model of software development and enhancement. <I>Computer 21</I>, 5 (May), 61-72.
[3]
BROOKS, F. P. 1975. <I>The Mythical Man Month: Essays on Software Engineering</I>. Addison-Wesley, Reading, MA.
[4]
DIJKSTRA, E. W. 1968. The structure of the "THE"-multiprogramming system. <I>Commun. ACM 11</I>, 5 (May), 341-346.
[5]
GIBBS, W. W. 1994. Software's chronic crisis. <I>Sci. Am. 271</I>, 3 (Sept.), 72-81.
[6]
JACKSON, M. A. 1975. <I>Principles of Program Design</I>. Academic Press.
[7]
JACKSON, M. A. 1976. Constructive methods of program design. In <I>Proceedings of the 1st Conference of European Cooperation in Informatics</I>. Springer-Verlag, 236-262.
[8]
JOHNSON, S. C. 1978. A portable compiler: Theory and practice. In <I>Proceedings of the 5th Symposium on Principles of Programming Languages</I>. 97-104.
[9]
LEVESON, N. G. AND TURNER, C. S. 1993. An investigation of the Therac-25 accidents. <I>IEEE Computer 26</I>, 7, 18-41.
[10]
LIU, H. 1993. Software engineering practice in an undergraduate compiler course. <I>IEEE Trans. Edu. 36</I>, 1 (Feb.), 104-107.
[11]
PARNAS, D. L. AND WEISS, D. M. 1985. Active design reviews: Principles and practices. In <I>Proceedings of the 8th International Conference on Software Engineering</I>. 132-136.
[12]
PETROSKI, H. 1994. <I>Design Paradigms: Case Histories of Error and Judgment in Engineering</I>. Cambridge University Press, Cambridge, UK.

Cited By

View all

Index Terms

  1. Teaching Software Engineering in a Compiler Project Course

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Journal on Educational Resources in Computing
    Journal on Educational Resources in Computing  Volume 2, Issue 4
    December 2002
    54 pages
    ISSN:1531-4278
    EISSN:1531-4278
    DOI:10.1145/949257
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 December 2002
    Published in JERIC Volume 2, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. compiler course
    2. software engineering

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)10
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 22 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media