Title: A Recipe for Game Development Assignments in CS2
1A Recipe for Game Development Assignments in CS2
- Jude Allred
- Advised by Professor Michael Main and Professor
Clayton Lewis - Department of Computer Science, University of
Colorado, Boulder - Jude.Allred_at_colorado.edu
- Jude.FogBugz.com
2Spoiler
- I surveyed CS education research, and there are
many promising frontiers. - There are interested choices to make in designing
a CS class. - There is a strong case for using game development
as the basis for assignments in CS2.
3The Recipe
Incorporate these items into your CS2 Assignments
by using games
Doing so should provide increase student
comprehension of the course material, lowered
peer intimidation, performance improvements for
the low-end students, and increased comfort with
and enthusiasm for computer science.
4Use Games
5Familiarity
6Embedded Learning
7Fun
8Assets
9Deployability
10Playable on Startup
11Concretize Abstract Concepts
12Extensibility
13Mitigate Extraneous Code
14These steps are simple
- And you can incorporate at least some of them
into any assignment. - And you probably already are.
15Use The Recipe
Incorporate these items into your CS2 Assignments
by using games
Doing so should provide increase student
comprehension of the course material, lowered
peer intimidation, performance improvements for
the low-end students, and increased comfort with
and enthusiasm for computer science.
16General Difficulties in CS
- Computer science education suffers from
- Dropping enrollment
- Poor gender diversity
- Inconsistencies in teaching methodologies
17Background Topics
- CS1 CS2
- Language Choice
- Comfort, Intimidation, and Interest
18CS1 CS2
- In particular
- CS1 and CS2 experience severe dropout rates
- Primary focus of CS education research
- Defined by the 2001 Computing Curricula Final
Report
19CS1 CS2 Strategies
- ACM
- Imperative-first
- Objects-first
- Functional-first
- Breadth-first
- Algorithms-first
- Hardware-first
20CS1 CS2 Strategies
- ACM
- Imperative-first
- Objects-first
- Functional-first
- Breadth-first
- Algorithms-first
- Hardware-first
- New Strategies
- Components-first
- Games-first
21Imperative-first
- Most traditional model
- Delays object-oriented programming topics until
students have a solid foundation in imperative
programming - Imperative-first sets par for CS education
22Objects-first
- Emphasize OO and design immediately
- Motivate control structures and programming as
secondary topics motivated by OO - Promising results, especially using Python
- Easy to get wrong
23Components-first
- Focus on APIs and infrastructures in common use
by software engineers - Extremely practical
- Two implementations of components-first were
surveyed by Howe et. al. in 2004 - Concluded viable and best-suited as an
advancement upon existing Objects-first classes.
24Games-first
- Refocus course content on game development
without altering learning objectives - Follows the mentality that Imperative-first vs.
Objects-first is minor compared to course
content. - Continuing focus of iteration and advancement
results are promising.
25Separating CS1 CS2
- CS1
- Functions as stand-alone class
- Must convey base-level proficiency
- Split-Population
- Desires pragmatism
- CS2
- Secondary Programming Language
- Inadequate Preparation
26Choice of Language
27Comfort, Intimidation, and Interest
28Methods of reducing intimidation
29The Recipe
Incorporate these items into your CS2 Assignments
by using games
Game development is a maturing experiment in CS1
and is ready for active experimentation in CS2.
The components I prescribe have been shown
benefits in CS1 I expect their benefits to
generalize to CS2
30Others are working on it
- Lewis and Massingills Framework
- Sung and Panitzs Modules
- Leuteneggers continued iterations
31And there are many tools
I can personally recommend
32Next Step
- Controlled experiments on the results of
implementing components of this recipe in CS2
33Thanks!
More details, data, and citations are provided in
my Thesis document, available at http//jude.fog
bugz.com Please share your feedback with me,
especially if you try any of this Jude.Allred_at_Co
lorado.edu