Parallel implementations of functional programming languages
The Computer Journal - Special issue on Lazy functional programming
Parallel functional languages and compilers
Parallel functional languages and compilers
Artificial intelligence: a modern approach
Artificial intelligence: a modern approach
How to design programs: an introduction to programming and computing
How to design programs: an introduction to programming and computing
Artificial Intelligence
DrScheme: a programming environment for Scheme
Journal of Functional Programming
A functional I/O system or, fun for freshman kids
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Functional video games in the CS1 classroom
TFP'10 Proceedings of the 11th international conference on Trends in functional programming
Hi-index | 0.00 |
The use of video games to teach introduction courses to programming and Computer Science is a trend that is currently flourishing. One of the most successful and promising approaches uses functional video games to get students interested and engaged in programming. This approach is successful, in part, because functional video games provide a domain of interest to most Computer Science undergraduates and remove the need to reason about designing state-based programs. A plethora of examples exist that have students develop games exploiting structural recursion which resemble such classics as Space Invaders and Snake. Once students master the basics of structural recursion the time comes to move beyond structural recursion to generative and accumulative recursion. It is up to the instructor to harness the enthusiasm and appetite that students have to develop more video games. This requires finding games that require the generation of subproblems in the same class as the input problem or that require accumulators to be successfully played or solved. This article presents a road map to make the transition from structural recursion to accumulative recursion using the N-puzzle problem as motivation to capture student enthusiasm and exploit what they have learned about program design. The N-Puzzle was also chosen to demonstrate that informed heuristic search strategies, traditionally the domain of undergraduate courses in Artificial Intelligence, are within the grasp of CS1 students. With proper guidance, CS1 students can reason such an algorithm into existence instead of simply using a textbook to study such algorithms. If the work described in this article is replicated elsewhere, there is no doubt that it will be an exciting time for Computer Science education and it will elevate the relevance of functional programming in the minds of future CS professionals.