LESSON STUDY IN COMPUTER SCIENCE: INHERITANCE PART 1: OVERVIEW

Similar documents
The Effectiveness of Games as Assignments in an Introductory Programming Course

Pair Programming Improves Student Retention, Confidence, and Program Quality

Teaching Non-majors Computer Programming Using Games as Context and Flash ActionScript 3.0 as the Development Tools

Assessing Game-Themed Programming Assignments for CS1/2 Courses

Having Fun with Computer Programming and Games: Teacher and Student Experiences

Pair Programming in Graduate Software Engineering Course Projects

Outline. Creating Animations with Alice for Projects in all Disciplines

Evaluating Effectiveness of Pair Programming as a Teaching Tool in Programming Courses

Running head: LEARNING IN PAIR PROGRAMMING INTERACTIONS 1

Experiences with the LEGO Mindstorms TM throughout the Undergraduate Computer Science Curriculum

Pair Programming Fall 2015

AP CS Principles Pilot at University of California, San Diego

Introductory Game Creation: No Programming Required

Applying GQM Approach towards Development of Criterion-Referenced Assessment Model for OO Programming Courses

Session T1A How and Why Collaborative Software Development Impacts the Software Engineering Course

Analysis of the Effectiveness of Online Learning in a Graduate Engineering Math Course

Using Visual Logic with Pseudocode to Teach an Introductory Programming Course

USABILITY TEST. Appendix A. May 2001 TECHSOURCE COLLEGE LIBRARY (TCL)

Categories and Subject Descriptors K.3.2 [Computer and Information Science Education]: Computer Science Education, Curricula.

Bloomsburg University. Computer Science Assessment Report

RECEPTIVENESS OF EDUCATIONAL MULTIMEDIA TOOLS IN COMPUTER PROGRAMMING EDUCATION

Instructor. Phone: (855) 11:00 12:00 TH. This. released. industry is the. tested and. have. textbooks and. computer Software ts.

SCRATCH Lesson Plan What is SCRATCH? Why SCRATCH?

ANALYZING STUDENT LEARNING OUTCOMES IN PROGRAMMING COURSE USING INDIVIDUAL STUDY VS. PAIR PROGRAMMING

Incorporating the MARS Sales Management Simulation into a Sales Management Course

ENGAGING STUDENTS IN COMPUTING USING GAMESALAD: A PILOT STUDY

A. Student Learning Outcomes (SLO) for the M.S. Degree: Students will

Incorporation of an online tutoring tool into programming courses. Abstract

The Negative Impact of Rewards and Ineffective Praise on Student Motivation

A Survey of Evidence for Test Driven Development in Academia

Masters in Human Computer Interaction

TEACHING AN APPLIED BUSINESS INTELLIGENCE COURSE

Instructional Design Final Paper. TeaM 3J: Melissa Ferry, Terri Golden, Jaclyn Hawkins, Jennifer Lanza, Jenna Ward. University of Akron

A Comparison of Programming Languages for Graphical User Interface Programming

Improving learning outcomes for first year introductory programming students

Student Teamwork: A Capstone Course in Game Programming

Creative Ideas: Enhanced to Meet Special Needs of Students

!"#$%&'(&)*+"#+,#)-.#/").0"#1.&0# &)#)-.#23-++'#+,#4(05*"67# 8*9:*,.0;#&"9#<.&')-#2;5).=5!

Study Guide for the Special Education: Core Knowledge Tests

Letter from the Editor-in-Chief: What Makes an Excellent Professor?

Programming II. Cecotti, H. Seminars Tutorials. Independent study (including assessment)

Scratch: Applications in Computer Science 1

Differences in Perception of Computer Sciences and Informatics due to Gender and Experience

Measuring Online Course Design: A Comparative Analysis

Understanding novice programmers: their perceptions and motivations

xxx Lesson 19 how memory works and techniques to improve it, and (2) appreciate the importance of memory skills in education and in his or her life.

Game-Themed Programming Assignments: The Faculty Perspective

Core Values Judge Certification Questions Answer Key

How can I improve my interviewing skills? MATERIALS

Speech-Language Pathology Study Guide

South Plains College: General Course Syllabus

INTRODUCTION TO COACHING TEACHING SKILLS TEACHING/LEARNING. September 2007 Page 1

Challenging the Norm in the Teaching of Practical Computer Science

The Use of Computer Animation in Teaching Discrete Structures Course

Study Guide for the Elementary Education: Content Knowledge Test

The Impact of Game Design on Students Interest in CS

Using PBL Assignments in Undergraduate Operations Management Course

What Have I Learned In This Class?

OBJECTS-FIRST VS. STRUCTURES-FIRST APPROACHES TO OO PROGRAMMING EDUCATION: AN EMPIRICAL STUDY

Virtual Classroom Student Guide

Digging Deeper into Safety and Injury Prevention Data

A Games First Approach to Teaching Introductory Programming

Study Guide for the English Language, Literature, and Composition: Content Knowledge Test

Investors in People First Assessment Report

A PUBLIC AGENDA CITIZEN CHOICEWORK GUIDE FOR COMMUNITY CONVERSATIONS, CLASSROOMS, STUDY GROUPS AND INDIVIDUALS. Public Agenda

INTRODUCING PROGRAMMING TO MIDDLE AND HIGH SCHOOLS USING GAME-BASED APPROACH. Emmanuel Udoh 1. INTRODUCTION

Cooperative Learning Method Based On Game Design and Visual Object Oriented Environment to Teach Object Oriented Programming Course

Management Challenges in a Large Introductory Computer Science Course

Igniting young minds through computer programming

I n t r o d u c t i o n

Lesson Plan Cover Page

INSTRUCTION AT FSU THE FLORIDA STATE UNIVERSITY OFFICE OF DISTANCE LEARNING. A Guide to Teaching and Learning Practices

The Development and Validation of a Survey Instrument for the Evaluation of Instructional Aids

SI Coordinator Handbook. Information, Resources and Forms

Journal of College Teaching & Learning - December 2005 Volume 2, Number 12 ABSTRACT

TRAFFIC LIGHT: A PEDAGOGICAL EXPLORATION

EXPERIENCES BUILDING A COLLEGE VIDEO GAME DESIGN COURSE

AN EVALUATION OF LEARNING IN AN ONLINE PROJECT-BASED WEB APPLICATION DESIGN AND DEVELOPMENT COURSE *

A Comparative Study of Database Design Tools

CLASSROOM ASSESSMENT TECHNIQUE EXAMPLES

Onsite Peer Tutoring in Mathematics Content Courses for Pre-Service Teachers

Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course

UNIVERSITY OF PENNSYLVANIA THE WHARTON SCHOOL DEPARTMENT OF LEGAL STUDIES & BUSINESS ETHICS LGST OPIM MGMT

3.2 Methods of Addition

Assessing Online Asynchronous Discussion in Online Courses: An Empirical Study

Engaging Students Online

Average producers can easily increase their production in a larger office with more market share.

Improving Students Learning Programming Skills with ProGames - Programming through Games system

Game Programming & Game Design

STUDENT PERSPECTIVES ON A REAL WORLD PROJECT

Looking for Lincoln Throughout His Life

Pair-Programming Helps Female Computer Science Students

AN INTEGRATED APPROACH TO TEACHING SPREADSHEET SKILLS. Mindell Reiss Nitkin, Simmons College. Abstract

ENVIRONMENTAL HEALTH SCIENCE ASSESSMENT REPORT

International Undergraduates Classroom Experiences

IT Training for Students, Who Needs It?

LEARNING OBJECTS FOR JAVA PROGRAMMING LANGUAGE

Inclusive Computer Science Education Using a Ready-made Computer Game Framework

Student Ratings of College Teaching Page 1

Collaborative Design of Cross-Disciplinary Game Minors Based on the IGDA Curriculum Framework

Transcription:

LESSON STUDY IN COMPUTER SCIENCE: INHERITANCE PART 1: OVERVIEW Title: Discovering Inheritance through a Popular Video Game in CS1 Authors: Terry Mason, Diane Christie, Bruce Johnston, and Radi Teleb at the University of Wisconsin-Stout Contact: Terry Mason, masont@uwstout.edu Discipline or Field: Computer Science 1 APPROACH In order to quantify the difference between the new lesson and the older lesson we attempted to create a control group. The same professor taught three sections of Computer Science 1 during the fall semester. One of the sections completed the well established inheritance lesson based on bank accounts. The two other sections completed the newly created Mario lesson. The three sections were presented the same course materials except for this lesson during the semester. In fact, we did not decide which section would be the control section until the week before the laboratory. We wanted to make sure that the sections were performing similarly on the preceding exams and laboratories. We treated all three laboratories the same. The students completing the older lesson were video taped and given the surveys in the same manner that the new lesson was observed. Aside from signing the waiver to gather data, the students did not know that anything was different and they did not know that different sections would complete different laboratories. 2 FINDINGS Two video cameras captured student responses during the lesson. Exit interviews were completed with two separate pairs of programmers. Important observations are available for review on the web [7]. In addition, the students completed a survey shown in Appendix D with results showing an increase in engagement in the new lesson compared to the established lesson. A quiz was administered four days after the laboratory session on inheritance. The students completing the new lab performed slightly better on the quiz than those that completed the older lesson. The details of the findings are explained in the next few sections. 2.1 Exit Interviews Two teams of pair programmers were interviewed on video [7] after the completion of the laboratory project. Each team consisted of one male and one female. 2.1.1 Team1 They stated that it was the most fun that they have had in a lab through the opportunity to interact with a graphics environment. The team was more engaged in the programming as it was not boring. The female team member suggested that this lesson really helped her understand the tree and how to pass in and override to make the code shorter. 1

2.1.2 Team2 This team expressed the same enthusiasm about the engagement of the project. The female felt confident and understood what we were doing today after expressing frustrations in understanding earlier course material. In response to what she learned she claimed to understand the tree. In a telling remark she expressed that the ability to see what is actually going on is what I really enjoyed. Her partner explained that he was familiar the objects and the game scenario as he had the background of playing video games. He would like to dig into the program some more and believed it would be fulfilling to complete a series of projects based on elements of this game. 2.2 Student Engagement Survey Results At the end of each laboratory throughout the semester, students complete a set of questions regarding the lab before receiving credit for the lab. The students receive a single participation grade for completing the laboratory and set of questions. The survey shown in the appendix with the following questions was administered at the conclusion of the lesson in the place of the usual questions. The older lesson was based on the well known bank accounts hierarchy and is widely used and well established in computer science as a successful lesson. 2.2.1 Survey Results Number of Students 23 Older Bank Account 46 Mario Increase in new lesson Question Number 1 2 3 4 5 2.74 2.70 2.70 2.48 2.96 3.28 3.33 2.87 3.78 3.5 19.8% 23.4% 6.5% 52.6% 18.4% Table 1. Survey Results comparing the new Mario the older bank account lesson. 2.2.2 Survey Questions- Results and Discussion 1. How much did today s lab exercise increase your understanding of the inheritance hierarchy in an object oriented program? (1-No help, 2-Somewhat helpful, 3-Helpful, and 4-Extremely helpful) New lesson moved above the helpful range with an average of 3.28 compared to 2.74 for the older approach. The opportunity to visually observe the sprites objects and creating the hierarchy as a group targeted this improvement. 2. How much did today s lab exercise help you understand the power of inheritance in Java (i.e., based classes and derived classes)? (1-No help, 2-Somewhat helpful, 3-Helpful, and 4-Extremely helpful) 2

The new lesson again moved above the helpful range with an average of 3.33 compared to 2.70 for the older approach. The opportunity to visually observe the sprites objects and creating the hierarchy as a group targeted this improvement. In addition, the students had the opportunity to add functionality to a complex set of code with minimal effort through code reuse in inheritance. 3. How well did today s lab exercise help you to understand the process of overloading and overriding base class methods? (1-No help, 2-Somewhat helpful, 3-Helpful, and 4-Extremely helpful) The new lesson showed only comparable results to the older lesson. The new lesson could use more emphasis on overloading and overriding methods. The older lesson is strong in this area. 4. How interesting was the application used for today s lab exercise? (1-Boring, 2-Marginally interesting, 3-Interesting, and 4-Exciting) This is the area where the new lesson was targeting an increase. We believed that a familiar video game would increase the interest in the subject. The new lesson scored close to the top level of exciting with a 52% increase in student excitement results. In fact the older lesson showed its lowest score in this area, while the new lesson showed its highest score. The opportunity to play a familiar game for learning a computer science subject proved exciting to the students. In addition, the opportunity for students to complete the functionality in a familiar game was observed to be motivating and reinforced through exit interviews. 5. How would you rate this lab exercise overall? 1-Not useful, 2-Somewhat useful, 3-Useful, and 4- Extremely useful) While the well written and established older lesson was seen as useful for the students, the new lesson was seen as extremely useful by half of the students. 2.3 Quiz Results The overall scores for the lesson show that the new lesson is as successful as the well established bank accounts approach for teaching inheritance. The older lesson was based on the well known bank accounts hierarchy and is widely used and well established in computer science as a successful lesson. The new approach showed a slight increase of 3% over the accounts lesson. Students Quiz 23 Older Bank Account 46 New Mario Average 7.476 7.698 Table 1. Quiz Results for students that completed the two lessons. 2.4 Additional Observations The entire lesson is observed by all members of the Study team. Many of these significant observations captured on videotape are available online[7]. 2.4.1 High Level of Engagement Observations of the students showed them clearly engaged in the game and identifying the objects for missing functionality. They expressed a sense of accomplishment in extending the functionality of the game. 3

2.4.2 Sense of Accomplishment Two different groups shouted Yes! when their new code provided the expected functionality of the game. In our 60 years of experience in teaching labs on inheritance, none of the observing professors remembers this happening. The graphical demonstration of their results was valued by the students. 2.4.3 Exploring beyond the Assigned Project From the back of the room it was observed that students would sneak some time to complete other tasks during the class. Students were observed investigating how the images could look like Mario is running on the screen. Other students were noted to explore code to try to further understand how the program worked. It is encouraging that students showed enough engagement to further investigate the program. 2.5 DISCUSSION Using a familiar video game allowed student to easily identify the object in a large amount of code. The familiar game engaged the students quickly into the project by completing the tasks in about half the expected time for the project. Students were motivated to add functionality that they expected to be in the game allowing the illustration of the value of code reuse in inheritance. The students working on the project expressed fulfillment and increased understanding through the visual feedback provided by a graphical environment. The survey and quiz provide quantitative results showing that students met the objectives of better understanding inheritance. It is hoped that the increased usefulness and interest in the project expressed by the students, results in a deeper appreciation and understanding of the value of inheritance in object oriented programming. Student engagement in the new laboratory ranked close to exciting versus a ranking of marginally interesting to interesting for the older lesson. In addition student surveys show that students believe that the lesson increased their understanding of inheritance hierarchies, the power of inheritance, and the usefulness of the lab compared the students completing the older lab. 2.6 FUTURE WORK This code provides a foundation for building new games with different (non-copyrighted) materials. This would support the development of additional projects on this somewhat familiar code. Follow up lessons on polymorphism, interfaces, and abstract classes based on this code would further reinforce the value of object oriented code. In addition, a group of students are currently developing a generic side scrolling game engine based on this code. This would allow the development of a project for students to build their own objectoriented games based on their knowledge acquired through this lesson. 2.7 ACKNOWLEDGMENTS We would like to acknowledge the University of Wisconsin Stout Nakatani Center for funding this Study Training Grant. 4

REFERENCES [1] D. Baldwin, Discovery learning in computer science, Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education, ACM Press, Philadelphia, Pennsylvania, United States, 1996, pp. 222-226. [2] R. Biddle, J. Miller-Williams, E. Tempero and E. Vaks, Tools to aid learning reusability, Proceedings of the 3rd Australasian conference on Computer science education ACM Press, The University of Queensland, Australia, 1998, pp. 127-135. [3] R. Biddle and E. Tempero, Explaining inheritance: a code reusability perspective, Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education ACM Press, Philadelphia, Pennsylvania, United States, 1996, pp. 217-221. [4] K. Bierre, P. Ventura, A. Phelps and C. Egert, Motivating OOP by blowing things up: an exercise in cooperation and competition in an introductory java programming course, Proceedings of the 37th SIGCSE technical symposium on Computer science education ACM Press, Houston, Texas, USA, 2006, pp. 354-358. [5] M. Guzdial and E. Soloway, Teaching the Nintendo generation to program, Communications ACM 45 (2002), pp. 17-21. [6] P. Haden, The incredible rainbow spitting chicken: teaching traditional programming skills through games programming, Proceedings of the 8th Austalian conference on Computing education - Volume 52, Australian Computer Society, Inc., Hobart, Australia, 2006, pp. 81-89. [7] B. Johnston, Inheritance Study, http://faculty.uwstout.edu/johnstonb/lessonstudy/lessonstudy.shtml, 2007. [8] C. Kelleher, R. Pausch and S. Kiesler, Storytelling alice motivates middle school girls to learn computer programming, Proceedings of the SIGCHI conference on Human factors in computing systems ACM Press, San Jose, California, USA, 2007, pp. 1455-1464. [9] C. Leska and J. Rabung, Learning O-O concepts in CS I using game projects, SIGCSE Bulletin, 36 (2004), pp. 237-237. [10] S. T. Leutenegger, A CS1 to CS2 bridge class using 2D game programming, Journal of Computing Small Colleges, 21 (2006), pp. 76-83. [11] C. McDowell, B. Hanks and L. Werner, Experimenting with pair programming in the classroom, SIGCSE Bulletin 35 (2003), pp. 60-64. [12] C. McDowell, L. Werner, H. Bullock and J. Fernald, The effects of pair-programming on performance in an introductory programming course, Proceedings of the 33rd SIGCSE technical symposium on Computer science education, ACM Press, Cincinnati, Kentucky, 2002, pp. 38-42. [13] N. Nagappan, L. Williams, M. Ferzli, E. Wiebe, K. Yang, C. Miller and S. Balik, Improving the CS1 experience with pair programming, Proceedings of the 34th SIGCSE technical symposium on Computer science education ACM Press, Reno, Navada, USA, 2003, pp. 359-362. [14] I. Parberry, M. B. Kazemzadeh and T. Roden, The art and science of game programming, Proceedings of the 37th SIGCSE technical symposium on Computer science education ACM Press, Houston, Texas, USA, 2006, pp. 510-514. [15] K. Powers, S. Ecott and L. M. Hirshfield, Through the looking glass: teaching CS0 with Alice, Proceedings of the 38th SIGCSE technical symposium on Computer science education ACM Press, Covington, Kentucky, USA, 2007, pp. 213-217. [16] A. Schmolitzky, Teaching inheritance concepts with Java, Proceedings of the 4th international symposium on Principles and practice of programming in Java ACM Press, Mannheim, Germany, 2006, pp. 203-207. [17] E. Soloway, How the Nintendo generation learns, Communications ACM 1991, pp. 17-21. [18] U. Wolz, T. Barnes, I. Parberry and M. Wick, Digital gaming as a vehicle for learning, Proceedings of the 37th SIGCSE technical symposium on Computer science education ACM Press, Houston, Texas, USA, 2006, pp. 394-395. 5