Abstract
While the programming languages course played a key role in Curricula '68, '78, and '91, Curriculum 2001 replaced most of the content in programming languages with sections on learning to program. We argue that the need for a programming languages course has not diminished, but instead increased, especially as we move into an era of many-core computing.
- Eric Allen, David Chase, Joe Hallett, Victor Luchangco, Jan-Willem Maessen, Sukyoung Ryu, Jr. Guy L. Steele, and Sam Tobin-Hochstadt. The Fortress Language Specification 1.0. Sun Microsystems, 2008.Google Scholar
- Ali-Reza Adl-Tabatabai, Christos Kozyrakis, and Bratin Saha. Unlocking concurrency. Queue, 4(10):24--33, 2007. Google Scholar
Digital Library
- Nick Benton, Luca Cardelli, and Cédric Fournet. Modern concurrency abstractions for C#. ACM Trans. Program. Lang. Syst., 26(5):769--804, 2004. Google Scholar
Digital Library
- Gilad Bracha, Martin Odersky, David Stoutamire, and Philip Wadler. Making the future safe for the past: Adding genericity to the Java programming language. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, Vancouver, October 1998. ACM. Google Scholar
Digital Library
- Kim B. Bruce. Curriculum 2001 draft found lacking in programming languages. SIGPLAN Not., 35(4):26--28, 2000. Google Scholar
Digital Library
- P. Canning, W. Cook, W. Hill, J. Mitchell, and W. Olthoff. F-bounded quantification for object-oriented programming. In Functional Prog. and Computer Architecture, pages 273--280, 1989. Google Scholar
Digital Library
- Bradford L. Chamberlain, David Callahan, and Hans P. Zima. Parallel programmability and the Chapel language. International Journal of High Performance Computing Applications, 21:291--312, 2007. Google Scholar
Digital Library
- Philippe Charles, Christian Grothoff, Vijay Saraswat, Christopher Donawa, Allan Kielstra, Kemal Ebcioglu, Christoph von Praun, and Vivek Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 519--538, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- Liberal Arts Computer Science Consortium. A 2007 model curriculum for a liberal arts degree in computer science. J. Educ. Resour. Comput., 7(2):2, 2007. Google Scholar
Digital Library
- L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471--522, 1985. Google Scholar
Digital Library
- CC2001 Joint Task Force. Computing Curricula 2001: Computer Science. December 15, 2001. Available online at http://www.acm.org/sigcse/cc2001/.Google Scholar
- Simon Peyton Jones. Beautiful concurrency. In Greg Wilson, editor, Beautiful code. O'Reilly, 2007.Google Scholar
- Andrew Kennedy and Don Syme. Design and implementation of generics for the .NET Common Language Runtime. In Proceedings of the ACM Conference on Programming Language Design and Implementation, pages 1--12, 2001. Google Scholar
Digital Library
- B. Liskov, A. Snyder, R. Atkinson, and C. Schaffert. Abstraction mechanisms in CLU. Comm. ACM, 20:564--576, 1977. Google Scholar
Digital Library
- Jeremy Manson, William Pugh, and Sarita V. Adve. The Java memory model. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 378--391, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- Andrew C. Myers. JFlow: Practical mostly-static information flow control. In Proceedings of the ACM Symposium on Principles of Programming Languages, pages 228--241, 1999. Google Scholar
Digital Library
- US Dept. of Defense. Reference Manual for the Ada Programming Language. GPO 008-000-00354-8, 1980.Google Scholar
- Larry Wall, Tom Christiansen, and Jon Orwant. Programming Perl. O'Reilly & Associates, Inc., 2000. Google Scholar
Digital Library
- Dan S. Wallach and Edward W. Felten. Understanding Java stack inspection. In Proceedings of IEEE Symposium on Security and Privacy, 1998.Google Scholar
Index Terms
Programming languages as part of core computer science
Recommendations
Teaching programming languages in a post-linnaean age
Programming language "paradigms" are a moribund and tedious legacy of a bygone age. Modern language designers pay them no respect, so why do our courses slavishly adhere to them? This paper argues that we should abandon this method of teaching languages,...
An aspect-oriented approach to the undergraduate programming language curriculum
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 ...
Programming languages in a liberal arts education
Liberal arts curricula emphasize breadth of a student's educational experience, critical reasoning, and intellectual discourse to a greater degree than pre-professional training or engineering programs. This substantially impacts how the topic of ...






Comments