A Recipe for Game Development Assignments in CS2

Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

A Recipe for Game Development Assignments in CS2 : 

A 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@colorado.edu Jude.FogBugz.com

Spoiler : 

Spoiler 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.

The Recipe : 

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.

Use Games : 

Use Games

Familiarity : 

Familiarity

Embedded Learning : 

Embedded Learning

Fun : 

Fun

Assets : 

Assets

Deployability : 

Deployability

Playable on Startup : 

Playable on Startup

Concretize Abstract Concepts : 

Concretize Abstract Concepts

Extensibility : 

Extensibility

Mitigate Extraneous Code : 

Mitigate Extraneous Code

These steps are simple : 

These steps are simple And you can incorporate at least some of them into any assignment. And you probably already are.

Use The Recipe : 

Use 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.

General Difficulties in CS : 

General Difficulties in CS Computer science education suffers from Dropping enrollment Poor gender diversity Inconsistencies in teaching methodologies

Background Topics : 

Background Topics CS1 & CS2 Language Choice Comfort, Intimidation, and Interest

CS1 & CS2 : 

CS1 & CS2 In particular CS1 and CS2 experience severe dropout rates Primary focus of CS education research Defined by the 2001 Computing Curricula Final Report

CS1 & CS2 Strategies : 

CS1 & CS2 Strategies ACM: Imperative-first Objects-first Functional-first Breadth-first Algorithms-first Hardware-first

CS1 & CS2 Strategies : 

CS1 & CS2 Strategies ACM: Imperative-first Objects-first Functional-first Breadth-first Algorithms-first Hardware-first New Strategies: Components-first Games-first

Imperative-first : 

Imperative-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

Objects-first : 

Objects-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

Components-first : 

Components-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.

Games-first : 

Games-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.

Separating CS1 & CS2 : 

Separating CS1 & CS2 CS1 Functions as stand-alone class Must convey base-level proficiency Split-Population Desires pragmatism CS2 Secondary Programming Language Inadequate Preparation

Choice of Language : 

Choice of Language

Comfort, Intimidation, and Interest : 

Comfort, Intimidation, and Interest

Methods of reducing intimidation : 

Methods of reducing intimidation

The Recipe : 

The 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

Others are working on it : 

Others are working on it Lewis and Massingill’s Framework Sung and Panitz’s Modules Leutenegger’s continued iterations

…And there are many tools : 

…And there are many tools I can personally recommend:

Next Step : 

Next Step Controlled experiments on the results of implementing components of this recipe in CS2

Thanks! : 

Thanks! More details, data, and citations are provided in my Thesis document, available at: http://jude.fogbugz.com Please share your feedback with me, especially if you try any of this: Jude.Allred@Colorado.edu