Enhancing Student Learning of Programming via Gaming Technology

Enhancing Student Learning of Programming via Gaming Technology

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] 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. Heres 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. 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.

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 modules 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 }

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. BEGIN PROGRAM EXAMPLE_SEQUENCE (INPUT, OUTPUT); READ A, B, C VAR A, B, C, D: REAL; BEGIN D --- A (B + C) READLN (A, B, C); D = A * (B + C);

WRITELN (D) PRINT D END END History of Structured Programming (contd) 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 Ifthenelse 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 bodys 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. History of Structured Programming (contd) 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 programmers 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 programmings 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. 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.

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

History of Object-Oriented Programming (contd) 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 Goslings 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. 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. III. How Universities Enhance Students Learning of Programming (contd) 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.

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. IV. Coding Software Programs (contd) 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.

IV. Coding Software Programs (contd) 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. IV. Coding Software Programs (contd)

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.). Installation Tutorial Usage Display Suggested Education Level Alice

Greenfoot Objectdraw JDK required for Available on website, Must be added as an versions below 3.0. but requires JDK. extension of current Java coding software [20]. Found on the Found online. Found online. software. Interactive Comprises several Comprises several and easy to follow.

articles [22][23][24] articles [44]. [25][26]. Requires no knowledge of Java. Methods are created and put in editor screen without coding. Operates based on user input. Middle school, high school, and college

students. Requires much Requires much knowledge of Java. knowledge of Java. Operates based on Operates based on user input. user input [11]. High school and High school and

college students. college students. 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.

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 21 st century like above all else: video games and/or gaming technology. THE END

Recently Viewed Presentations

  • Effective Data Presentation Making Figures and Tables

    Effective Data Presentation Making Figures and Tables

    Arial Unicode MS Arial Calibri Tahoma Pulse 1_Pulse Effective Data Presentation Making Figures and Tables Acknowledgements "Graphic Excellence is that which gives to the viewer the greatest number of ideas in the shortest time with the least ink in the...
  • Fluency with Information Technology Lawrence Snyder Chapter 17

    Fluency with Information Technology Lawrence Snyder Chapter 17

    Cryptography - study of methods to encrypt text. Cryptanalysis - study of how to decode an encypted text. Conventional or single key encryption - a simple algorithm is used to transform the text substitution cipher - each letter of the...
  • Romeo and Juliet: Act 1 Royce Tee Patrick

    Romeo and Juliet: Act 1 Royce Tee Patrick

    Romeo and Juliet: Act 1 Royce Tee Peter Onglao Patrick Wee Alfred Ti Michael Lopez Antonio Go II Alison Alcaraz Alfonso Panis
  • What is a Theme in Literature?

    What is a Theme in Literature?

    Arial Century Gothic Wingdings 2 Verdana Calibri Verve 1_Verve 2_Verve 3_Verve 4_Verve 5_Verve 6_Verve What is a Theme in Literature? Theme Definition SO…. Let's Practice… Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Ok, Let's Get...
  • The Water Cycle

    The Water Cycle

    By the end of the lesson students should be able to distinguish the key parts involved in the water cycle and why it happens. They should understand the sun's role in the cycle and be able to illustrate and label...
  • About Us Alpha Techno Precision Tooling is specialized

    About Us Alpha Techno Precision Tooling is specialized

    Alpha Techno Precision Tooling is specialized in manufacturing of high quality machined components and assemblies in a wide range of materials. The company was established 2009 and is located in Cavite Economic Zone, Rosario, Cavite - South of Manila the...
  • COMPARISON OF MEANS - Open Online Courses

    COMPARISON OF MEANS - Open Online Courses

    COMPARISON OF MEANS. QUESTION #10c. Use Excel to perform a paired samples t-test to evaluate whether or not the mean Motivation level is significantly different from mean Commitment level in the population.
  • Optimizing distribution of bikes: Myth or feasible

    Optimizing distribution of bikes: Myth or feasible

    Station 447 Rebalancing—Spatial Attributes. Chart 6: Inbound and outbound rebalancing trips for station 447 by route length (mi), and total cumulative rebalancing distance (% of rebalancing miles), New York Citi Bike, August 2014.