Functional Video Games in the CS1 Classroom

  • Marco T. Morazán
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6546)


Over the past decade enrollments in Computer Science undergraduate programs have drastically dropped while simultaneously seeing demand for computer scientists in the job market increase. The reason for this disconnect is, in part, due to the perception new potential students have of programming as a dull activity requiring no creativity, very little social interaction, and endless hours of coding in front of a monitor. The question then is how can we capture the imagination of new students and perk their interest in a way that gets them excited while at the same time giving them a solid foundation in computer programming and Computer Science. This article puts forth the thesis that developing video games using functional programming should be a new trend in the CS1 classroom. The article describes the approach implemented at Seton Hall University using video game programming and Felleisen et al.’s textbook How to Design Programs. The first-year programming curriculum is briefly described and how to get students interested in programming through the development of a Space-Invaders-like game is illustrated. The presented development gives the reader a clear sense of how to use functional video games in the first semester classroom.


Video Game Teaching Language Functional Language Design Recipe Function Template 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Achten, P.: Teaching Functional Programming with Soccer-Fun. In: FDPE 2008: Proceedings of the 2008 International Workshop on Functional and Declarative Programming in Education, pp. 61–72. ACM, New York (2008)CrossRefGoogle Scholar
  2. 2.
    Courtney, A., Nilsson, H., Peterson, J.: The Yampa Arcade. In: Haskell 2003: Proceedings of the 2003 ACM SIGPLAN Workshop on Haskell, pp. 7–18. ACM, New York (2003)Google Scholar
  3. 3.
    Felleisen, M., Findler, R.B., Fisler, K., Flatt, M., Krishnamurthi, S.: How to Design Worlds (2008),
  4. 4.
    Felleisen, M., Findler, R.B., Flatt, M., Krishnamurthi, S.: How to Design Programs: An Introduction to Programming and Computing. MIT Press, Cambridge (2001)zbMATHGoogle Scholar
  5. 5.
    Felleisen, M., Findler, R.B., Flatt, M., Krishnamurthi, S.: A functional i/o system or, fun for freshman kids. In: Hutton, G., Tolmach, A.P. (eds.) ICFP, pp. 47–58. ACM, New York (2009)CrossRefGoogle Scholar
  6. 6.
    Felleisen, M., Krishnamurthi, S.: Viewpoint: Why Computer Science Doesn’t Matter. Communications of the ACM 52(7), 37–40 (2009)CrossRefGoogle Scholar
  7. 7.
    Harris, A.: The L Line, The Express Line to Learning. In: Game Programming, Wiley Publishing, Inc., Hoboken (2007)Google Scholar
  8. 8.
    Lacey, T.A., Wright, B.: Occupational Employment Projections to 2018. Monthly Labor Review, 82–123 (November 2009)Google Scholar
  9. 9.
    Lüth, C.: Haskell in Space: An Interactive Game as a Functional Programming Exercise. J. Funct. Program 13(6), 1077–1085 (2003)CrossRefzbMATHGoogle Scholar
  10. 10.
    Money Magazine and Best Jobs in America. Money Magazine (2009)Google Scholar
  11. 11.
    McGugan, W.: Beginning Game Development with Python and Pygame: From Novice to Professional. Apress, Berkeley (2007)Google Scholar
  12. 12.
    The Joint Task Force on Computing Curricula. Computing Curricula 2001 Computer Science (December 2001),
  13. 13.
    CS2008 Review Taskforce. Computer Science Curriculum 2008: An Interim Revision of CS 2001 (December 2008),
  14. 14.
    Zweben, S.: 2007-2008 Taulbee Survey. Computing Research News (May 2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Marco T. Morazán
    • 1
  1. 1.Seton Hall UniversitySouth OrangeUSA

Personalised recommendations