JFP 28, e5, 41 pages, 2018. c Cambridge University Press 2018 doi:10.1017/S0956796818000059 1 Infusing an HtDP-based CS1 with distributed programming using functional video games MARCO T. MORAZ ´ AN Department of Computer Science, Seton Hall University, South Orange, NJ, USA (e-mail: morazanm@shu.edu) Abstract A Computer Science introduction course ought to focus on exciting students about the subject matter and on problem solving through the methodical design of programs. An effective way to achieve both is through the development of functional video games. As most students are interested in video games, their development adds an exciting domain to any introduction to programming. This article advocates that an exciting crowning achievement for students in such a course is the design and implementation of a multiplayer distributed video game. By exploiting a domain that is popular with students, they are taught about design principles, communication protocols, and pitfalls in distributed programming. This article puts forth a successfully used design recipe that places distributed programming well within the reach of beginning students and outlines the use of this design recipe in the classroom. For those teaching beginners, this article presents a model for developing their own distributed programming module. The success of the presented methodology is measured through student feedback on their distributed programming experience. The empirical results suggest that the design and implementation of distributed functional video games is effective and well-received by students. Furthermore, the data suggests that the presented methodology fails to exhibit the gender gap common in Computer Science and is effective regardless of the programming experience CS1 students bring to the classroom. 1 Introduction The majority of introductory courses to Computer Science (CS1) focus on programming to provide students with training in an essential skill (Joint Task Force on Computing Curricula & Society, 2013). This essential skill is pertinent to a broad audience of students as much as reading, writing, and arithmetic (Felleisen & Krishnamurthi, 2009). Therefore, it is proper for a CS1 course to focus on programming as it is fundamental to all students both in and outside of Computer Science (CS). A CS1 course, however, ought to also excite students about the subject matter. After all, it is nearly impossible to encourage life-long learning of technical material when students find the subject matter dull. To make CS1 palatable and even exciting for students, the instructor can capture student imagination by using popular real-world applications in the classroom (Sung, 2009). One such popular domain for most beginning students is video games. The development of functional video games has proven effective teaching program design principles and exciting https://doi.org/10.1017/S0956796818000059 Published online by Cambridge University Press