skip to main content
research-article

An aspect-oriented approach to the undergraduate programming language curriculum

Published:30 November 2008Publication History
Skip Abstract Section

Abstract

Three key forces are shaping the modern Computer Science (CS) curriculum: (1) new topics/courses are squeezing out existing ones; (2) a focus on "big picture" and interdisciplinary aspects of CS is leading to curricula in which the traditional core courses + electives model is being superseded by a more flexible approach based on tracks/threads; and (3) project-based courses are increasingly relying on a notion of just-in-time teaching in which particular skills are not bundled into a particular course, but are covered at a point when they are needed for particular project work.

The undergraduate programming language curriculum is feeling the pressure of these forces. Core courses on programming languages and compilers are being changed to electives, relegated to a software/systems track, or phased out altogether. Particular programming languages and programming language concepts are being taught in a more piecemeal fashion on an as-needed basis. Unfortunately, these changes make it increasingly likely that CS majors can graduate without being exposed to certain "big ideas" of programming languages.

Programming languages (along with many other subdisciplines of CS) contains ideas that every well-educated computer scientist needs to know and which are relevant to a wide variety of projects/careers. In a CS curriculum based on tracks and projects, how can we ensure that vital intellectual components are not lost in the shuffle?

One way to think about this problem is to view the CS curriculum as a collection of aspects that can be combined in different arrangements to produce various projects/courses. In this paper, we consider the benefits and challenges of an aspect-oriented view of the CS curriculum, particularly in regard to programming language concepts.

References

  1. Lenore Blum & Carol Frieze. "In a More Balanced Computer-Science Environment, Similarity is the Difference and Computer Science is the Winner." Computing Research News 17(3). May 2005.Google ScholarGoogle Scholar
  2. Russell Shackelford, et al. "Computing Curricula 2005: The Overview Report." SIGCSE '06: Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education. Association for Computing Machinery, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Jeffrey Dean and Sanjay Ghemawat. "MapReduce: Simplified Data Processing on Large Clusters." Communications of the ACM, 51 (1), pp. 107--113. January, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Allen B. Downey and Lynn Andrea Stein. "Designing a small-footprint curriculum in computer science." In Proceedings of the 36th Annual IEEE Frontiers in Education Conference. October 2006, pages 21--26.Google ScholarGoogle Scholar
  5. Merrick Furst, Charles Isbell, and Mark Guzdial. "Threads: How to Restructure a Computer Science Curriculum for a Flat World." SIGCSE '07: Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education. Association for Computing Machinery, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Gregor Kiczales, et al. "Aspect-Oriented Programming." Proceedings of the European Conference on Object-Oriented Programming, Mehmet Aksit and Satoshi Matsuoka, eds. pp. 220--242. 1997.Google ScholarGoogle Scholar
  7. Liberal Arts Computer Science Consortium. "A 2007 Model Curriculum for a Liberal Arts Degree in Computer Science." Journal on Educational Resources in Computing (JERIC) 7(2): 2. June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. MIT Department of Electrical Engineering and Computer Science. VI. (Department Newsletter) 8(1). Fall 2006. See especially "New Undergraduate Curriculum," p. 4.Google ScholarGoogle Scholar
  9. Mehran Sahami. Preview of the New Undergraduate Computer Science Curriculum. Slides available at http://cs.stanford.edu/degrees/undergrad/CurriculumRevision-Preview-04-03-08.pdf.Google ScholarGoogle Scholar
  10. Lynn Stein. "What we've Swept under the Rug: Radically Rethinking CS1." Computer Science Education 8 (2): 1998, pp. 118--129.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. An aspect-oriented approach to the undergraduate programming language curriculum

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 43, Issue 11
      November 2008
      137 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1480828
      Issue’s Table of Contents

      Copyright © 2008 Authors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 30 November 2008

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!