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.
- 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 Scholar
- 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 Scholar
Digital Library
- Jeffrey Dean and Sanjay Ghemawat. "MapReduce: Simplified Data Processing on Large Clusters." Communications of the ACM, 51 (1), pp. 107--113. January, 2008. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- MIT Department of Electrical Engineering and Computer Science. VI. (Department Newsletter) 8(1). Fall 2006. See especially "New Undergraduate Curriculum," p. 4.Google Scholar
- 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 Scholar
- Lynn Stein. "What we've Swept under the Rug: Radically Rethinking CS1." Computer Science Education 8 (2): 1998, pp. 118--129.Google Scholar
Cross Ref
Index Terms
An aspect-oriented approach to the undergraduate programming language curriculum
Recommendations
A student-designed Undergraduate program
SIGCSE '70: Proceedings of the first SIGCSE technical symposium on Education in computer scienceIn recent years there has been a growing interest and concern among professionals and educators in Computer Science about undergraduate and graduate programs. A student could possibly offer a new viewpoint into this area, being immediately involved in ...
Research and Practice of Curriculum of Network Engineering in Application-oriented Undergraduate Teaching
ETCS '11: Proceedings of the 2011 Third International Workshop on Education Technology and Computer Science - Volume 01Network engineering was a new discipline for undergraduate in china. There were some imperfections in the curriculum of network engineering in application-oriented undergraduate teaching. Based on the analysis of training goals of network engineering in ...
Curriculum '78: recommendations for the undergraduate program in computer science— a report of the ACM curriculum committee on computer science
Contained in this report are the recommendations for the undergraduate degree program in Computer Science of the Curriculum Committee on Computer Science (C3S) of the Association for Computing Machinery (ACM).
The core curriculum common to all computer ...






Comments