19
ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains, New York [email protected] , [email protected]

ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

Embed Size (px)

Citation preview

Page 1: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGYAri Butowsky and Dr. Mary Courtney

Seidenberg School of CSIS, Pace University, White Plains, New York

[email protected], [email protected]

Page 2: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

I. Introduction

Computer programming can be so complex that it can push beginning students away. This is due to students’ initial difficulty in learning programming skills, as well as the notion that computer science programming is difficult and boring. Here’s some data:

- 50% decline in incoming freshman computer science majors nationwide from 2000 to 2005.

- 80% decline in female computer science majors from 1998 to 2004.

To better motivate students into pursuing computer programming, various universities have turned to using gaming technology to teach their students.

Page 3: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

II. Background Information• There are two different types of computer programming:

1. Structured Programming: uses top-down analysis for problem solving, modularization for program structure and organization, and structured code for the individual modules.

2. Object-Oriented Programming: based on a hierarchy of classes, as well as well-defined and cooperating objects.

Page 4: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

Structured Programming - Terms• Top-down analysis = breaking a large problem down into smaller tasks or parts.

• Modular programming = organizing the instructions that programs require for a computer by dividing programs into modules/subroutines/subprograms.

• Structured Coding = dividing modules into and organizing them within control structures.• Control Structure = represents a pattern of execution for a specific set of instructions.

determines the order in which a module’s instructions are executed.• GOTO Statement = provides a jump from the “goto” to a labeled statement in the same

function. not included in structured code because a GOTO statement represents no

exact pattern of execution; it just jumps to a statement other than the next one in line.

• Compound Statement = groups one or more statements into a single statement. For example: compound-statement = 'begin' statement-sequence 'end'

    statement-sequence = statement { ';' statement }

Page 5: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

History of Structured Programming

• The timeline of the history of structured programming is as follows:

1964 – Structured programming is introduced with only three “control structures”:1. Sequence = represents sequential execution and is implemented in Pascal via a compound statement with a straight line execution path. Below is a flow diagram and accompanying code that illustrates this.

PROGRAM

EXAMPLE_SEQUENCE (INPUT, OUTPUT);VAR A, B, C, D: REAL;BEGINREADLN (A, B, C);D = A * (B + C);WRITELN (D)END

BEGIN

END

D --- A (B + C)

PRINT D

READ A, B, C

Page 6: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

History of Structured Programming (cont’d)2. Selection = represents conditional execution and is implemented via statements that support decision making, where a computer program selects a result from among a list of alternatives. This is an “If…then…else” statement.

If logical-predicate Then-- statements to execute if the predicate evaluates to true –Else-- statements to execute if the predicate evaluates to false –EndIf

3. DO-WHILE = represents repetitive execution and is implemented via statements where a condition is tested after the loop body’s execution. If the condition is true, the loop is executed again. If the condition is false, the loop ends.

program prog_19(input, output); var score, sum: integer; begin sum := 0; repeat write('Enter score (-1 to quit): '); readln(score); if score <> -1 then sum := sum + score until score = -1; writeln('Sum = ', sum); end.

 

Page 7: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

History of Structured Programming (cont’d)1968 – Edsger Dijkstra had been crusading for structured programming for 20 years. - He furthered his crusade by publishing a letter to the editor in the Communications of the ACM arguing that the quality of a programmer’s code increases as the number of GOTO statements used decreases.

1972 – The New York Times project by was developed Harlan Mills’ programming team at IBM. - Utilized in automating the New York Times’ clipping file. - Led to structured programming’s wide acceptance.

Structured programming became a programming revolution and an important advancement in computer software. People began turning more to its philosophy and techniques as a result.

Page 8: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

Object-Oriented Programming - Terms• Class = defines the data and the methods needed to work on that data. All program data is

wrapped in that class.

• Object = an executable copy of a class. There can be any number of objects of a certain class in memory at one time.

• Inheritance = defines relationships among classes. Methods from a superclass are inherited and implemented by its subclasses, namely every class in the Java API libraries.

Page 9: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

History of Object-Oriented Programming• The timeline of the history of object-oriented programming (OOP) is as follows:May 1964 – The first OOP language, Simula 67, was introduced.

- Simula 67 was designed for creating simulations, the work on which at the time dealt with exploding ships.

- Simula 67 introduced the concepts of classes and the objects of classes.

Early 1970s – Alan Kay’s team at Xerox Parc created Dynabook, the first ever personal computer.

- Dynabook provided graphics-oriented applications based on Simula 67. - Smalltalk was developed for Dynabook, introducing the concept of inheritance. - Simula 67 allowed OOP to gain momentum, leading to the creation of programming

languages like Pascal and Lisp.

Page 10: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

History of Object-Oriented Programming (cont’d)1980s – Bjorn Stroustrup created C++, which played a role in the creation of graphical user interfaces (GUI) that are compatible with OOP languages. - Event-driven programming was developed thanks to this paradigm.

1994 - James Gosling’s group at the Sun Company created Java. - Java was marketed to be used for programming Internet applications, which granted it widespread popularity for programming applications for the then booming Internet.

Page 11: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

III. How Universities Enhance Students’ Learning of Programming

•Universities are employing unique methods to make software programming appealing to their student populations.

1. Using MIT Scratch: During the summer, the University of Texas (UT) at Dallas holds coding camps where students are exposed to computer programming using MIT Scratch.

MIT Scratch - features an interface with drag-and-drop programming.- lets users create 2D animations of objects, make characters sing, create drawings, and develop interactive games.- can be used to control finch robots by writing programs that cause such robots to perform various functions.

Page 12: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

III. How Universities Enhance Students’ Learning of Programming (cont’d)

2. Using Actual Video Games to Teach Computer Coding – Professor Alexander Repenning of the University of Colorado developed a curriculum called Scalable Game Design.

Scalable Game Design: teaches students concepts of math and science, as well as how to create games.

Goal: bring computer science to middle schools to create a larger IT workforce and combat the notion that computer programming is tedious and boring.

Curriculum: utilizes the tool named AgentSheets.

Outcome: students experience Flow so their design skills match certain design challenges. students develop IT fluency and learn fundamental IT concepts and IT skills.

Page 13: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

IV. Coding Software Programs

Despite the best efforts of universities, however, new software needed to be developed to bring back an interest in computer programming amongst students due to the complex and frustrating nature of computer programming itself. This software included Alice, Greenfoot, and Objectdraw.

Alice – enables the creation of 3D animated movies and games where users can control the behavior of 3D objects and characters in a virtual world.

- has a drag-and-drop interface.- introduces students to programming in a supportive and engaging

environment from which they gradually transition to programming.- prevents users from making syntax errors.

- displays program sequences as animations so users can see mistakes and fix them.

Page 14: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

IV. Coding Software Programs (cont’d)

Greenfoot – enables the creation of classes, instances/objects, and members using a graphical user interface (GUI).

- has each program divide user-created classes into three categories: World, Actor, and Utility.- features a Greenfoot World, which is an invisible grid of cells, each containing one or more Actor objects. The grid corresponds to a coordinate system, except that the Y-axis points down instead of up. - allows users to invoke methods and create classes by clicking the mouse.

- provides much of the foundation needed to implement many games and simulations.

Page 15: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

IV. Coding Software Programs (cont’d)

Objectdraw – takes the approach of “objects first”, “events first”, and “concurrency early”. - uses graphics to help teach various computing concepts to students.

- supports the teaching of Java by simplifying the construction of programs that draw graphics and interact by reacting to mouse events. - provides simplified support for handling mouse events, facilities that help simplify the management of multiple Threads, and an assortment of classes for displaying drawings that provide a more object-oriented “look and feel” than the standard Java Graphics class.

Page 16: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

IV. Coding Software Programs (cont’d) Alice, Greenfoot, and Objectdraw are all very powerful. All three present similarities and differences, which

cause them to be most suitable for different types of users (i.e. See the table below.).  Alice Greenfoot ObjectdrawInstallation JDK required for

versions below 3.0.Available on website, but requires JDK.

Must be added as an extension of current Java coding software [20].

Tutorial Found on the software. Interactive and easy to follow.

Found online. Comprises several articles [22][23][24][25][26]. 

Found online.Comprises several articles [44].

Usage Requires no knowledge of Java. Methods are created and put in editor screen without coding.

Requires much knowledge of Java.

Requires much knowledge of Java.

Display Operates based on user input.

Operates based on user input.

Operates based on user input [11].

Suggested Education Level

Middle school, high school, and college students.

High school and college students.

High school and college students.

Page 17: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

VI. How to Create a Module that Would Peak Students’ Interests in Programming

The ideal module would include the following step-by-step curriculum:

1. Students should use Alice, MIT Scratch, or AgentSheets to get introduced to programming without learning any coding.

2. Students should use Greenfoot to get introduced to Java.

3. Students should use Objectdraw to understand how Java works regarding methods that need various parameters to function properly.

4. Students should create their own projects by utilizing the skills they learned from using the software discussed in steps 1-3.

Page 18: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

VII. Conclusion

• In conclusion, computer programming has come a long way since the 1960s. Hopefully the knowledge gained throughout the decades can help educators find ways to get students interested in this topic area by utilizing the one thing many kids of the 21st century like above all else: video games and/or gaming technology.

Page 19: ENHANCING STUDENT LEARNING OF PROGRAMMING VIA GAMING TECHNOLOGY Ari Butowsky and Dr. Mary Courtney Seidenberg School of CSIS, Pace University, White Plains,

THE END