a dozen ideas for engaging cs1 students

170
The Journal of Computing Sciences in Colleges Volume 26, Number 1 October 2010

Upload: depauw

Post on 20-Nov-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

The Journal of ComputingSciences in Colleges

Volume 26, Number 1 October 2010

The Journal of Computing Sciences in Colleges

Papers of the Seventeenth Annual CCSC

Midwestern ConferenceSeptember 24-25, 2010

Franklin CollegeFranklin, Indiana

Papers of the Eleventh Annual CCSC

Northwestern ConferenceOctober 8-9, 2010

George Fox UniversityNewberg, Oregon

John Meinke, EditorUMUC Europe

George Benjamin, Associate Editor Susan T. Dean, Associate EditorMuhlenberg College UMUC Europe

Jeffrey L. Lehman, Contributing Editor Sharon Tuttle, Contributing EditorHuntington University Humboldt State University

Volume 26, Number 1 October 2010

ii

The Journal of Computing Sciences in Colleges (ISSN 1937-4771 print, 1937-4763digital) is published at least six times per year and constitutes the refereed papers ofregional conferences sponsored by the Consortium for Computing Sciences in Colleges.Printed in the USA. POSTMASTER: Send address changes to Jim Aman, CCSCMembership Chair, Saint Xavier University, Chicago, IL 60655.

Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permissionto copy without fee all or part of this material is granted provided that the copies are notmade or distributed for direct commercial advantage, the CCSC copyright notice and thetitle of the publication and its date appear, and notice is given that copying is bypermission of the Consortium for Computing Sciences in Colleges. To copy otherwise,or to republish, requires a fee and/or specific permission.

iii

TABLE OF CONTENTS

THE CONSORTIUM FOR COMPUTING SCIENCES IN COLLEGES BOARD OF DIRECTORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

CCSC NATIONAL PARTNERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

FOREWORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiiJohn Meinke, University of Maryland University College Europe

PAPERS OF THE SEVENTEENTH ANNUAL CONSORTIUM FOR COMPUTINGSCIENCES IN COLLEGES MIDWESTERN CONFERENCE . . . . . . . . . . . . . 1

WELCOME — 2010 CCSC: MIDWESTERN CONFERENCE . . . . . . . . . . . . . . . . 2Robert E. Beasley, Franklin College

2010 STEERING COMMITTEE — CCSC MIDWESTERN REGION . . . . . . . . . . 3

2010 CCSC MIDWESTERN CONFERENCE COMMITTEE . . . . . . . . . . . . . . . . . 3

REVIEWERS — 2010 CCSC MIDWESTERN CONFERENCE . . . . . . . . . . . . . . . . 3

MEETING EVERYONE'S NEED FOR COMPUTING — KEYNOTE ADDRESS . 5Mark Guzdial, Georgia Institute of Technology

CHANGING WHAT'S HAPPENING IN HIGH SCHOOL COMPUTER SCIENCE— BANQUET ADDRESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Jan Cuny, National Science Foundation

DEVELOPING ANDROID APPLICATIONS — PRE-CONFERENCE WORKSHOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Hans Dulimarta, Jonathan Engelsma, Grand Valley State University

HONEY, I SHRUNK THE CLUSTER! PARALLEL COMPUTING AND MONTECARLO SIMULATIONS ON iPOD TOUCHES, iPHONES AND iPADS . . . . 9Michael P. Rogers, Northwest Missouri State University

LITTLEFE – PARALLEL AND DISTRIBUTED COMPUTING EDUCATION ONTHE MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Charles Peck, Earlham College

iv

BUILDING APPLICATIONS FOR THE ANDROID OS MOBILE PLATFORM: APRIMER AND COURSE MATERIALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Victor Matos, Cleveland State University, Rebecca Grasser, Lakeland

Community College

EFFECTIVE TEACHING PRACTICES USING FREE GOOGLE SERVICES — CONFERENCE TUTORIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Paul Gestwicki, Brian McNely, Ball State University

DESIGN OF A VIRTUAL COMPUTER LAB ENVIRONMENT FOR HANDS-ONINFORMATION SECURITY EXERCISES . . . . . . . . . . . . . . . . . . . . . . . . . . 32Nathaniel Gephart, Benjamin A. Kuperman, Oberlin College

USING MOCK OBJECT FRAMEWORKS TO TEACH OBJECT-ORIENTEDDESIGN PRINCIPLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Jagadeesh Nandigam, Yonglei Tao, Grand Valley State University, Venkat N.

Gudivada, Marshall University, Abdelwahab Hamou-Lhadj, ConcordiaUniversity, Montreal

THE BENEFIT OF THE CSSLP CERTIFICATION FOR EDUCATORS ANDPROFESSIONALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Charles E. Frank, Northern Kentucky University, Laurie Werner, Miami

University Hamilton

TEACHING WITH EMBEDDED XINU: AN INEXPENSIVE HANDS-ONLABORATORY THAT PROMOTES STUDENT ENGAGEMENT WITHOPERATING SYSTEMS, ARCHITECTURE, AND NETWORKINGCURRICULA — CONFERENCE WORKSHOP . . . . . . . . . . . . . . . . . . . . . . . 56Dennis Brylow, Marquette University, Paul Ruth, University of Mississippi

RHEA: A STUDENT-DRIVEN TOOL FOR ENHANCING THE EDUCATIONALEXPERIENCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Andrew W. Haddad, Mireille Boutin, Purdue University

TEACHING GLOBAL ISSUES IN IT: AN INTERCULTURALCOMMUNICATION APPROACH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Elizabeth V. Howard, Martha Petrone, Miami University Middletown

THE LOOKING GLASS IDE FOR LEARNING COMPUTER PROGRAMMINGTHROUGH STORYTELLING AND HISTORY EXPLORATION —CONFERENCE WORKSHOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Paul Gross, Caitlin Kelleher, Washington University in St. Louis

RAY TRACING AS AN OBJECT-ORIENTED EXAMPLE FOR CS 1 . . . . . . . . . 77Ryan L. McFall, Charles A. Cusack, Hope College

v

A PILOT STUDY ON THE IMPACT OF CREATIVE ACHIEVEMENT ONACADEMIC ACHIEVEMENT IN MEDIA-ORIENTED CS1 . . . . . . . . . . . . 85Paul Gestwicki, Khuloud Ahmad, Ball State University

A DOZEN IDEAS FOR ENGAGING CS1 STUDENTS . . . . . . . . . . . . . . . . . . . . 93Adebayo Olowoyeye, Khadija Jirari Stewart, Gloria Childress Townsend,

DePauw University

PROVEN STRATEGIES THAT INCREASE PARTICIPATION OF HIGHSCHOOL STUDENTS IN COMPUTING — CONFERENCE WORKSHOP 103Henry M. Walker, Grinnell College

PAPERS OF THE TWELFTH ANNUAL CONSORTIUM FOR COMPUTINGSCIENCES IN COLLEGES NORTHWESTERN CONFERENCE . . . . . . . . 107

WELCOME – 2010 CCSC: NORTHWESTERN CONFERENCE . . . . . . . . . . . . 108Richard Weiss, CCSC -NW 2010 Program Chair

2010 CCSC: NORTHWESTERN CONFERENCE COMMITTEE . . . . . . . . . . . . 108

REGIONAL BOARD — NORTHWESTERN REGION . . . . . . . . . . . . . . . . . . . . 109

ROSTER OF REVIEWERS — 2010 CCSC NORTHWESTERN CONFERENCE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

WHITHER AND WHENCE PARALLELISM — KEYNOTE ADDRESS . . . . . . 110Michael Wolfe, The Portland Group, Inc.

3D VORONOI DIAGRAMS OF REAL TREES . . . . . . . . . . . . . . . . . . . . . . . . . . 112Andrew Walsh, The Evergreen State College

ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Pradip Peter Dey, Mohammad Amin, Bhaskar Raj Sinha, Alireza Farahani,National University

A GENTLE WAY OF INTRODUCING MULTI-CORE PROGRAMMING INTOTHE CURRICULUM — TUTORIAL PRESENTATION . . . . . . . . . . . . . . . 124Timothy J. McGuire, Sam Houston State University

GAME PROGRAMMING IN CS0: A SCAFFOLDED APPROACH . . . . . . . . . . 126Michael Panitz, Cascadia Community College, Kelvin Sung, University of

Washington, Bothell, Rebecca Rosenberg, CSU Monterey Bay

A PUZZLE GAME FOR INTRODUCTORY DATA STRUCTURES . . . . . . . . . 133Lukasz Opyrchal, Miami University, James Van Boxtel, Scott A. Wallace,

Washington State University

vi

MAKING YOUTH EXCITED ABOUT STEM EDUCATION . . . . . . . . . . . . . . . 140Giti Javidi, Ehsan Sheybani, Virginia State University

THE IMPACT OF OPENGL 3.X AND 4.0 ON THE TEACHING OF COMPUTERGRAPHICS — PANEL DISCUSSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Mike Bailey, Oregon State University, Robert R. Lewis, Washington State

University, Richard Weiss, The Evergreen State College, David A. Wolff,Pacific Lutheran University, Genevieve Orr, Willamette University

DESIGN AND CONSTRUCTION OF GENERAL PURPOSE COMPUTINGRESOURCES FOR LINUX BASED COMPUTER SCIENCE EDUCATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

Richard Sharp, Ed Harcourt, St. Lawrence University,

INDEX OF AUTHORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

vii

THE CONSORTIUM FOR COMPUTING SCIENCES IN COLLEGESBOARD OF DIRECTORS

Following is a listing of the contact information for themembers of the Board of Directors and the Officers ofthe Consortium for Computing Sciences in Colleges(along with the year of expiration of their terms), aswell as members serving the Board:Bob Neufeld, President (2012), Professor Emeritus ofComputer Science, McPherson College, P. O. Box421, North Newton, KS 67117, 316-283-1187 (H),[email protected] J. Baker, Vice-President (2012), Professor,Computer Sciences Department, St. Edward'sUniversity, Box 910, 3001 S. Congress Ave, Austin,TX 78704, 512-448-8675, [email protected] Aman, Membership Chair (2013), Assoc.Professor, Computer Science, Saint Xavier University,Chicago, IL 60655, 773-298-3454 (O), 614-492-1306(H), 630-728-2949 (cell), [email protected]. Bill Myers, Treasurer (2011), Dept. of ComputerStudies, Belmont Abbey College, 100 Belmont-MountHolly Road, Belmont, NC 28012-1802, 704-461-6823(O), 704-461-5051, (fax), [email protected] Meinke, Publications Chair, (2012), CollegiateAssociate Professor, UMUC Europe, US Post: CMR420, Box 3668, APO AE 09063; (H) Werderstr 8,D-68723 Oftersheim, Germany, 011-49-6202-5 77 7916 (H), [email protected] P. Kihlstrom, Southwestern Representative(2011), Associate Professor of Computer Science,Westmont College, 955 La Paz Road, Santa Barbara,CA 93108, 805-565-6864 (O), 805-570-6722 (cell),805-565-7036 (fax), [email protected] S. Adams, Eastern Representative (2011),Associate Professor Emeritus, James MadisonUniversity - Mail Stop 4103, CISAT - Department ofComputer Science, Harrisonburg, VA 22807,540-568-2745 (fax), [email protected] Hwang, Midwestern Representative (2011),Dept. of Electrical Engineering and ComputerScience, University of Evansville, 1800 LincolnAvenue, Evansville, IN 47722, 812-488-2193 (O),812-488-2780 (fax), [email protected] Sigman, Central Plains Representative (2011),Associate Professor of Computer Science, DruryUniversity, Springfield, MO 65802, 417-873-6831,[email protected] Treu, Southeastern Representative (2012),Furman University, Dept of Computer Science,Greenville, SC 29613, 864-294-3220 (O),[email protected] J. McGuire, South Central Representative(2012), Sam Houston State University, Department ofComputer Science, Huntsville, Texas 77341-2090,936-294-1571, [email protected].

Brent Wilson, Northwestern Representative (2012),George Fox University, 414 N. Meridian St, Newberg,OR 97132, 503-554-2722 (O), 503-554-3884 (fax),[email protected] Ormond, Rocky Mountain Representative (2013),Professor, Information Systems and Technology, UtahValley University, 800 West University Parkway,Orem, UT 84058, 801-863-8328 (O), 801-225-9454(cell), [email protected] D’Antonio, Northeastern Representative(2013), Ramapo College of New Jersey, ComputerScience Dept., Mahwah, NJ 07430, 201-684-7714,[email protected] Sherrell, MidSouth Representative (2013),Associate Professor, Computer Science, University ofMemphis, 209 Dunn Hall, Memphis, TN 38152, 901-678-5465 (O), [email protected] the Board: The following CCSC members areserving in positions as indicated that support theBoard: Will Mitchell, Conference Coordinator, 1455 SGreenview Ct, Shelbyville, IN 46176-9248, 317-392-3038 (H), [email protected]. George Benjamin, Associate Editor, MuhlenbergCollege, Mathematical Sciences Dept., Allentown, PA18104, 484-664-3357 (O), 610-433-8899 (H),[email protected] Dean, Associate Editor, Collegiate Professor,UMUC Europe, US Post: CMR 420, Box 3669, APOAE 09063; Werderstr 8, D-68723 Oftersheim,G e r m a n y . 0 1 1 - 4 9 - 6 2 0 2 - 5 7 7 8 2 1 4 , ( H )[email protected] Bryant, Comptroller, Professor & InformationTech. Program Director, MSC 2615, GonzagaUniversity, Spokane, WA 99258, 509-313-3906,[email protected] D. Wiedemeier, National Partners Chair, TheUniversity of Louisiana at Monroe, Computer Scienceand CIS Department, 700 University Avenue,Administration Building, Room 2-37, Monroe, LA71209, 318-342-1856 (O), 318-342-1101 (fax),[email protected] Wilson, Database Administrator, George FoxUniversity, 414 N. Meridian St, Newberg, OR 97132,503-554-2722 (O), 503-554-3884 (fax),[email protected] McNally, Webmaster, Professor of ComputerScience, Alma College, 614 W. Superior St., Alma, MI48801, 989-463-7163 (O), 989-463-7079 (fax),[email protected].

viii

CCSC NATIONAL PARTNERS

The Consortium is very happy to have the following as National Partners. If youhave the opportunity please thank them for their support of computing in teachinginstitutions. As a National Partner they are invited to participate in our regionalconferences. Visit with their representatives there.

Microsoft CorporationCengage Learning

The Shodor Education Foundation, Inc.Turing’s Craft

FOREWORD

We start out a new fiscal and academic year with two excellent conferences –Midwest and Northwest. Both offer outstanding programs, and it has been a pleasure toput the proceedings together.

I call your attention to the conference Welcome statements in which the paperacceptance rates are indicated. We are a double blind reviewed organization, and thatlends credence to Promotion and Tenure committees for our academic members.

I would also like to thank UPE (Upsilon Pi Epsilon, the national honor society forComputer Science) for their increased support for student activities at our conference forthis coming year. Our students are our future and getting them involved in ourconferences certainly helps to ensure their continued development in the field.

I also need to express my thanks to Susan Dean, George Benjamin, Jeff Lehmann,and Sharon Tuttle for their work on putting together this issue of the Journal. Withouttheir assistance, both on the regional level and the national level, there would be noJournal. I am indebted to them for all of their help.

For now, it is a pleasure to present this set of papers and commend them to you toincorporate them into your coursework and curriculum development. Enjoy!

John MeinkeUniversity of Maryland University College Europe

CCSC Publications Chair

Papers of the Seventeenth AnnualConsortium for ComputingSciences in CollegesMidwestern Conference

September 24-25, 2010Franklin UniversityFranklin, Indiana

2

WELCOME — 2010 CCSC: MIDWESTERN CONFERENCE

Welcome to the 17th Annual CCSC Midwest Regional Conference on the campusof Franklin College in Franklin, Indiana!

This year, our conference planning committee had the pleasure of selecting twelvequality papers, a number of interesting tutorials and panels, and a pre-conferenceworkshop-all for your professional enrichment. In addition, the committee acceptedseveral student research/project posters for presentation and will host yet another studentprogramming competition. Also in store for us at this year's conference is a keynoteaddress by Mark Guzdial from Georgia Tech titled "Meeting Everyone's Need forComputing" and a banquet address by Jan Cuny of the NSF titled "Changing What'sHappening in High School Computer Science". Both of these addresses promise to beinteresting and enlightening.

We had a number of papers submitted to our conference for blind, peer review thisyear. The papers that were accepted will be presented at this year's conference and willalso be included in the Journal of Computing Sciences in Colleges. Each paper wasreviewed by three faculty members from institutions around the country who haveexpertise in that paper's topic. Seventy percent of the papers submitted were accepted forpresentation at the conference and inclusion in the Journal.

Conferences like this can only succeed with the help of many people. First, I wouldlike to thank all the members of the conference planning committee who have given theirtime and talents to help put this event together. They are all hard-working and dedicatedprofessionals willing to help when called upon. I have enjoyed working with them overthe years and am especially grateful to them this year as Conference Chair. I would alsolike to thank those who served as peer reviewers during the paper review process. Theircareful attention to detail and thoughtful and candid critique of each paper is greatlyappreciated. I would also like to thank the staff and students of Franklin College whohave helped make sure everything is in place and ready as the conference begins.

I hope you go away from this conference encouraged, recharged, and enriched withnew ideas that you can use in your own classroom. I also hope you will consider hostinga conference at your college or university in the future. Finally, our committee welcomesyou to participate with us in planning next year's event. Enjoy the conference!

Robert E. Beasley2010 CCSC Midwest Conference Chair

Franklin College

3

2010 STEERING COMMITTEE — CCSC MIDWESTERNREGION

Laurie Werner, Membership (2010) . . . Miami University - Hamilton, Hamilton, OHJeff Lehman, Authors (2012) . . . . . . . . . . . . . . Huntington University, Huntington, INCathy Bareiss, Treasurer (2011) . . . . . . Olivet Nazarene University, Bourbonnais, ILScott Thede, At-Large (2012) . . . . . . . . . . . . . . . DePauw University, Greencastle, INTom Wulf, At-Large (2010) . . . . . . . . . . . . University of Cincinnati, Cincinnati, OHKerry Smith, Web Master (2011) . . . . . . . . . . . . . . . . . Franklin College, Franklin, INDeborah Hwang, Regional Representative (2011) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . University of Evansville, Evansville, INBob Beasley, Conference Chair . . . . . . . . . . . . . . . . . . . Franklin College, Franklin, INLaurie Werner, Past Conference Chair . Miami University - Hamilton, Hamilton, OH

2010 CCSC MIDWESTERN CONFERENCE COMMITTEE

Bob Beasley, Conference Chair . . . . . . . . . . . . . . . . . . . Franklin College, Franklin, INDeborah Hwang, Associate-Chair . . . . . . . . . University of Evansville, Evansville, INJeff Lehman, Authors . . . . . . . . . . . . . . . . . . . . Huntington University, Huntington, INCathy Bareiss, K-12 Program . . . . . . . . Olivet Nazarene University, Bourbonnais, ILCyrus Grant, Nifty Assignments . . . . . . . . . . Dominican University, River Forest, ILScott Anderson, Panels and Tutorials . University of Southern Indiana, Evansville, INBob Beasley, Papers . . . . . . . . . . . . . . . . . . . . . . . . . . . Franklin College, Franklin, INKerry Smith, Papers Assistant . . . . . . . . . . . . . . . . . . . . Franklin College, Franklin, INLaurie Werner, Past Conference Chair . Miami University - Hamilton, Hamilton, OHJonathan Geisler, Programming Contest . . . . . . . . . . . . Taylor University, Upland, INDan Nohl, Programming Contest Problems . . . . . . . . Benedictine University, Lisle, ILPaul Gestwicki, Publicity . . . . . . . . . . . . . . . . . . . . . Ball State University, Muncie, INLaurie Werner, Registrar . . . . . . . . . . . . Miami University - Hamilton, Hamilton, OHKerry Smith, Site Chair . . . . . . . . . . . . . . . . . . . . . . . . . Franklin College, Franklin, INStefan Brandle, Speakers . . . . . . . . . . . . . . . . . . . . . . . . Taylor University, Upland, INJanet Helwig, Student Posters . . . . . . . . . . . . Dominican University, River Forest, ILRichard Barnhart, Vendors . . . . . . . . . . . . . Indiana Wesleyan University, Marion, IN

REVIEWERS — 2010 CCSC MIDWESTERN CONFERENCE

Robert Adams . . . . . . . . . . . . . . . . . . . . Grand Valley State University, Allendale, MIJames Cercone . . . . . . . . . . . . . . . . West Virginia University Tech, Montgomery, WVJimmy Chen . . . . . . . . . . . . . . . . . Salt Lake Community College, Salt Lake City, UT

JCSC 26, 1 (October 2010)

4

Pamela Cutter . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kalamazoo College, Kalamazoo, MILawrence D`Antonio . . . . . . . . . . . . . . . . . . . . . . . . . . . Ramapo College, Mahwah, NJHerbert Dershem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hope College, Holland, MIPaul Gestwicki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ball State University, Muncie, INErnie Giangrande Jr. . . . . . . . . . . . . . . . . . . . . . . . . Wingate University, Wingate, NCSimon Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . College of Wooster, Wooster, OHBrian Howard . . . . . . . . . . . . . . . . . . . . . . . . . . . . DePauw University, Greencastle, INDeborah Hwang . . . . . . . . . . . . . . . . . . . . . . . University of Evansville, Evansville, INBoris Kerkez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ashland University, Ashland, OHMichael Lantis . . . . . . . . . . . . . . . . . . Purdue University North Central, Westville, INDavid Largent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ball State University, Muncie, INAlina Lazar . . . . . . . . . . . . . . . . . . . Youngstown State University, Youngstown, OHJeffrey Lehman . . . . . . . . . . . . . . . . . . . . . . . . Huntington University, Huntington, INKathy Liszka . . . . . . . . . . . . . . . . . . . . . . . . . . . The University of Akron, Akron, OHBill Marion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Valparaiso University, Valparaiso, INRalph Meeker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Benedictine University, Lisle, ILJagadeesh Nandigam . . . . . . . . . . . . . . . Grand Valley State University, Allendale, MIRam Raghuraman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Joliet Junior College, Joliet, ILJohn Ross . . . . . . . . . . . . . . . . . . . . . . . . . . . Indiana University Kokomo, Kokomo, INDean Sanders . . . . . . . . . . . . . . . Northwest Missouri State University, Maryville, MOPete Sanderson . . . . . . . . . . . . . . . . . . . . . . . . . . . . Otterbein College, Westerville, OHAmber Settle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DePaul University, Chicago, ILWilliam Slough . . . . . . . . . . . . . . . . . . . . . Eastern Illinois University, Charleston, ILJames Teresco . . . . . . . . . . . . . . . . . . . . Mount Holyoke College, South Hadley, MAScott Thede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DePauw University, Greencastle, INKeith Tookey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eureka College, Eureka, ILHenry Walker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grinnell College, Grinnell, IALaurie Werner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Miami University, Hamilton, OHRong Yang . . . . . . . . . . . . . . . . . . Western Kentucky University, Bowling Green, KY

__________________________________________

* Copyright is held by the author/owner

5

KEYNOTE ADDRESS

Friday, September 24, 2010

MEETING EVERYONE'S NEED FOR COMPUTING *

Mark GuzdialProfessor

School of Interactive ComputingCollege of Computing

Georgia Institute of TechnologyAtlanta, Georgia 30332-0280

While interest in computer science degrees has declined, interest in computerscience continues to grow across campus. Some estimates suggest that by 2012 there willbe some 13 million end-user programmers in the United States, compared to an estimated3 million professional software developers. In this talk, I argue for more attention to thatmuch greater number, for having an impact by making the non-professional programmermore successful. I will present historical evidence that our field has had a goal ofteaching the non-professional programmers for over 40 years, that end-user programmerswant what we have to offer, but that we need to develop new kinds of classes and newkinds of approaches to teaching CS to meet their needs. I will present methods forteaching computing that have improved success rates for non-computing majors (whilestill including programming), such as contextualized computing education. I will presentevidence that non-computing majors want more computer science than we might expect.

__________________________________________

* Copyright is held by the author/owner

6

BANQUET ADDRESS

Friday, September 24, 2010

CHANGING WHAT'S HAPPENING IN HIGH SCHOOLCOMPUTER SCIENCE *

Jan CunyProgram Officer

CISE Broadening Participation in Computing (BPC) ProgramNational Science Foundation

Computing has become ubiquitous. IT innovation drives our economy, underliesmany of the advances we are making in science and engineering, and ensures our nationalsecurity. IT has the highest projected job growth of any STEM field and its careersconsistently rank near the top of "best job" lists. Yet student interest in computing hasplummeted - the proportion of incoming college students who intend to major incomputing has fallen by 70% this decade, 80% for women - and we are producingsignificantly fewer degrees than are needed.

We need to change what's happening in K-12, and specifically what's happening inhigh school. Computational thinking needs to be infused throughout the curriculum andwe need to offer rigorous, engaging and accessible academic computing courses as well.We will need new curriculum and we will need to prepare teachers to teach it. This talklooks at the National Science Foundation's effort to catalyze change that change with theCS 10K Project. CS 10K aims to build new high school curriculum (based on a proposednew CS Advanced Placement course) and to get 10,000 teachers ready to teach thatcurriculum in 10,000 schools by 2015 (when the new AP test could be ready). The talkconcludes with actions that we as educators can take in our own communities to supportthis change.

___________________________________________

* Copyright is held by the author/owner.

7

DEVELOPING ANDROID APPLICATIONS*

PRE-CONFERENCE WORKSHOP

Hans Dulimarta and Jonathan EngelsmaSchool of Computing and Information Systems

Grand Valley State UniversityAllendale, Michigan 49401

Since the Android mobile platform was first open sourced by Google in November2007, it has attracted more than 180,000 developers and deployment of 50,000 mobileapplications in the Android Market. Today, more than 60 smart phones from majormanufacturers run the Android platform. In addition, within the last two years, thenumber of web searches through mobile phones (both Android and non-Androidplatforms) has increased five times. All these numbers show how the Android project hasgained its momentum to move forward and how mobile applications will become morewidely-used by smart phone users. A larger percentage of these users are young adultsthat include college students.

This workshop will introduce participants to the open source Google Android SDKand how to develop mobile applications on the Android platform. Upon completing thistutorial, participants will have acquired a working knowledge of the Android platformand its development environment. Participants will develop an Android-based mobileapplication from scratch to learn the key concepts and overall life cycle of an Androidapplication. Participants will then progressively add features to the application to showvarious building blocks of the Android SDK. The workshop will also present somepractical guidelines for adopting the Android platform into the typical undergraduate CScurriculum.

Outline of Content • The Android System Architecture: major components that constitute the Android

operating system: Linux kernel, Dalvik virtual machine, libraries, and applicationframework

• Basic Building Blocks: the four types of component that Android applications arecomposed from: Activities, Services, Broadcast Receivers, and Content Providers;Activity life cycle, Activity Stack, Linux Processes that host Android applications

• "Hello World" application: creating a new Android project (single view, singleactivity), project files organization, layout design using XML files, manifest file,running and using the Android emulator.

• Using ListActivity: designing a ListView, using Intent to switch between Activities

JCSC 26, 1 (October 2010)

8

• Network Applications: building a basic Twitter client that displays a public timelineof tweets relative to the user's current location, managing application permissionsin the manifest file.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

9

HONEY, I SHRUNK THE CLUSTER! PARALLEL COMPUTING

AND MONTE CARLO SIMULATIONS ON iPOD TOUCHES,

iPHONES AND iPADS*

Michael P. RogersComputer Science / Information Systems

Northwest Missouri State UniversityMaryville, MO 64468

[email protected]

ABSTRACTOne of the more intriguing new frameworks in the iPhone 3 SoftwareDevelopers Kit (SDK) is GameKit, designed to support multiplayer gaming onthe iPod Touch/iPhone/iPad family of devices. With surprisingly little effort,it is possible to adapt GameKit to set up a cluster of devices to perform parallelcomputing. This paper outlines what is required, and how this might be usedin an intriguing Monte Carlo simulation.

1. INTRODUCTION: There has been much written in recent years on the topic of cluster computing —

harnessing multiple computers to a common purpose. While these clusters are typicallybuilt with discarded computers, it seems reasonable to investigate whether a useful clustercan be built using the iPod Touch/iPhone/iPad family of devices (abbreviated henceforthas the iFamily).

On the basis of CPU specifications alone, one might conclude that the outlook isbleak: while perfectly suited for their intended purpose, iFamily devices are slowcompared to even the lowliest of computers that one might find in an inexpensiveBeowulf cluster. For example, the iPhone 3GS CPU runs at 600 MHz. However, one ofthe hallmarks of cluster computing is that the individual computers need not beparticularly powerful: it is the size and parallel nature of the cluster that gives it its speed.

JCSC 26, 1 (October 2010)

10

2. CLUSTER REQUIREMENTS:2.1 Hardware

The cluster will be based on iFamily devices running iPhone OS 3.0 or higher,connected via Bluetooth or Wi-Fi. It is pleasing to observe that, with Bluetooth,absolutely no additional hardware is required. Regardless of the networking technology,thanks to Bonjour, Apple's Zero-Configuration Network Device Discovery technology,assembling the cluster is merely a matter of placing the devices in proximity, andlaunching the apps.

A trivial cluster can be constructed with as few as 2 devices, but more is better. Forembarrassingly parallel problems, it is possible to mix-and-match different devices (e.g.,2 iPhones and 3 iPod Touches). Note that the iPod Touches and iPhones must be at leastsecond generation. Since this cluster will use a client-server architecture, it makes senseto make the server the fastest of the available iFamily devices.

2.2 Development ConsiderationsDeveloping iFamily apps, such as the software that will run on the cluster, has its

own unique hardware requirements. Specifically, development must be done onMacintosh computers running Mac OS X 10.5 or higher. Thankfully, the requisitesoftware — the iPhone 3 SDK, a free download from developer.apple.com — can run oneven the least expensive Intel-based Macintoshes, so obtaining appropriate hardwareshould not be a huge fiscal obstacle.

For testing the server app, it will be necessary to run multiple client apps. Thiscould be done on multiple Macintoshes, each running an iPhone Simulator; or, it couldbe done with 1 Macintosh, with multiple iFamily devices attached. Unfortunately, Appledoes not officially support running multiple copies of the iPhone Simulator on oneMacintosh.

3. A BRIEF OVERVIEW OF OBJECTIVE-CThis section is for those unfamiliar with the language of iFamily apps, Objective-C.

In this obscure but easy-to-learn language, objects are sent messages by enclosing theobject reference and message in [ ], and arguments are labeled. Consider an example:

[person setAge:25 firstName:@"Monty" isFamous:YES];

The object is person: the method follows. It has three arguments — an int (25),string (@"Monty"), and BOOL (YES). In Objective-C, string objects are preceded withan @, to distinguish them from ordinary C strings. Booleans have the value YES or NO.The name of the method is the concatenation of its labels. In this case, the method's nameis setAge:firstName:isFamous, a bit lengthy but certainly easy to understand.

Instance methods are preceded by a –, and class methods by a +. Data types areenclosed in (). For instance, the setAge:firstName:isFamous method might look like this:

White space is ignored: the above could have been on one line, as:

CCSC: Midwestern Conference

11

-(void) setAge:(int) age firstName:(NSString *) fNameisFamous:(BOOL *) famous

Objective-C divides object instantiation into two components— memoryallocation and initialization. They are typically nested in one statement so that, forinstance, Person * person = [[Person alloc] initWithAge:25birthPlace:@"Toronto"];

allocates a Person object, and then initializes two instance variables.

4. GAMEKITGameKit is a refreshingly compact framework, consisting of a mere 6 classes, which

first appeared in iPhone OS 3.0. While designed to facilitate multiplayer games, it ismore versatile: GameKit makes it possible to establish peer-to-peer and server-clientconnections in just a few lines of code.

At the heart of GameKit is a GKSession. GKSessions are instantiated in an app,discover other GKSessions running in apps on other iFamily devices on a local network,and then communicate with those GKSessions. The GameKit API calls any device onthe network running a GKSession a peer.

GKSessions can establish themselves as servers, clients, or peers, and behaveaccordingly: servers advertise their services, and clients connect to them; peers bothsimultaneously advertise their services and connect to other peers. We use the termserver to mean a GKSession running as a server; similarly for clients.

4.1 Servers GKSessions that advertise as servers do so via a SessionID, a simple string.Clients wishing to connect to a particular server, use the SessionID to locate it. Setting up a GKSession requires a mere 4 statements (found in the app's

constructor):The first statement instantiates a GKSession, with a Session ID of "Monty". It is

stored in the instance variable session. [Notice the use of self rather than this as akeyword].

The second statement establishes a delegate. Delegation is a ubiquitous designpattern in iFamily apps that makes it unnecessary to extend a class and override its

-(void) setAge:(int) age firstName:(NSString *) fName isFamous:(BOOL *) famous // method body omitted

JCSC 26, 1 (October 2010)

12

methods to customize behavior. Instead, those methods are defined in a separate class,the delegate.

Specifically, in this case, the method to handle requests from clients to connect tothe session, is defined not in a subclass of GKSession, but in the MyGKSessionDelegateclass that the GKSession references. The method, which here accepts the request, is short:

The third statement sets up the data handler — an object that defines a singlemethod, receiveData:fromPeer:inSession:context:, which will be invokedwhen new data arrives from another peer. The censusTaker, an instance of theCensusTaker class, is responsible for tallying results from the clients: we will discuss itin section 5.

The last statement causes the session to start advertising itself by setting theavailable property. The session is now visible throughout the cluster. The actualexchange of information between client and server involves thesendDataToAllPeers:withDataModeand receiveData:fromPeer:inSession:context: methods which we willillustrate, in context, in section 5.

4.2 Clients A GKSession acting as a client uses the same 4 statements as the server, with just

one minor change: instead of GKSessionModeServer, it uses GKSessionModeClient.The difference is in the delegate. It must define a method, session:peer:didChangeState,which will be invoked when peers on the network have changed — most critically whena server session starts advertising. When it detects a server has appeared, it tries toconnect to it — invoking the method session:didReceiveConnectionRequestFromPeer:defined above. Here is the code:

// Defined in MyGkSessionDelegate// Called when a client requests to connect to this serversession- (void) session:(GKSession *)sessiondidReceiveConnectionRequestFromPeer:(NSString *)peerIDNSError * error;bool result = [session acceptConnectionFromPeer:peerIDerror:&error];// error handling code deleted

self.session = [[GKSession alloc]initWithSessionID:@"Monty"displayName:nilsessionMode:GKSessionModeServer];self.session.delegate = [[MyGKSessionDelegate alloc]init]; // for peer requests[session setDataReceiveHandler:self.censusTaker withContext:nil]; // for dataself.session.available = YES; // now the server starts advertising on the network

CCSC: Midwestern Conference

13

5. AN EXAMPLE: THE CLUSTER AS A SIMULATION TOOL IN THECLASSROOM

For a demonstration, we have chosen to simulate the famous Monty Hall problem,in which contestants on a game show are presented with three doors. Behind one is avaluable prize, behind two are so-called zonk prizes. A contestant chooses a door, whichremains unopened. Then Monty Hall opens a second door to show a zonk prize. Thecontestant is asked if they wish to stay with their current door, or switch. This simulationinvestigates the probability of success if they stay or if they switch.

The code for the actual simulation is straightforward, except the if statement: it iscorrect, and doubtful readers may wish to consult the appropriate reference in section 7.

// A required method in the GKSessionDelegate protocol// It is invoked when a peer changes state- (void)session:(GKSession *)pSession

peer:(NSString *)peerIDdidChangeState:(GKPeerConnectionState)state

if(state == GKPeerStateAvailable)[pSession connectToPeer:peerID withTimeout:30];

- (NSString *)performSimulationdouble numWinsStaying = 0;double numWinsSwitching = 0;int winningDoor, chosenDoor;

for(int i=0; i < numGames; i++)winningDoor = [self randBetween:1 and:3];chosenDoor = [self randBetween:1 and:3];if(chosenDoor == winningDoor)

numWinsStaying++;else

numWinsSwitching++;return [NSString stringWithFormat:@" %f / %f", // results delimited by a /numWinsStaying/numGames * 100, numWinsSwitching/numGames *100];

JCSC 26, 1 (October 2010)

14

As noted previously, client and server communication involves repeatedinvocations of sendDataToAllPeers:withDataMode andreceiveData:fromPeer:inSession:context:

The server begins, telling all the clients how many games to play:

In the first line, the number of games is extracted from a text field (numGamesTF) astext, and then encoded into a generic container known as NSData. That NSData objectis then broadcast to all the clients on the network. Each client has a data handler, and the broadcast invokes its method:

As each client in turn reports back, the text — delimited by a '/' — is parsed and theresults added to those already gathered. [This code is essential, but not particularlyinstructive, and so not included here.] The display appears on the server, but of course,if desired, the results can then be echoed back to the clients. The cost of all the extranetworking traffic has a somewhat detrimental affect on performance.

Although the Monty Hall problem is embarrassingly parallel, the time to solve it isnot reduced to 1/n on an n-peer network, but it is of the order of 1/n. And the ease withwhich the network can be constructed, to say nothing of its novelty, makes the iFamily

NSData * numGamesToSimulate = [self . numGamesTF .text //get # games as text then dataUsingEncoding :NSASCIIStringEncoding ]; //

convert it[ session sendDataToAllPeers :numGamesToSimulate // send it

withDataMode : GKSendDataReliableerror :&error];

- ( void) receiveData:( NSData *)data fromPeer:( NSString *)peerinSession: ( GKSession *)session context:( void *)context

NSString * gamesStr = [[ NSString alloc ] initWithData :data // NSData -> string encoding : NSASCIIStringEncoding ];

numGames = [gamesStr intValue ]; // string -> int NSString * resultsToSend = [ censusTaker

generateResults ]; // do computationNSData * dataToTransmitBackToServer = [resultsToSend

// string -> NSData dataUsingEncoding :NSASCIIStringEncoding ];

[ session sendDataToAllPeers:dataToTransmitBackToServer // send it withDataMode : GKSendDataReliable error:&error];

CCSC: Midwestern Conference

15

cluster worthy of exploration in a variety of Computer Science / Computational Scienceclasses.

6. CONCLUSIONWhile not the most powerful cluster, the iFamily cluster has several compelling

features. First, students can take pride in helping assemble the cluster (even though theassembly consists of merely showing up with an iFamily device, loading, and launchingan app: those students capable of writing the app will, of course, be able to take muchmore pride). Secondly, if the cluster is used for simulation in the classroom, the studentscan observe intermediate results, in the palm of their hands, as they appear on theiriFamily device. This immediacy is enticing. Finally, because the cluster is so easy touse, and can be applied in so many situations, it is easy to envision a situation where twoclasses collaborate: a CS class writes the cluster software for use in another class, inanother discipline.

GameKit remains a work in progress, and both it, and the documentation, are in astate of flux. In addition, for those planning to incorporate this into a course, it may takea considerable amount of ramp-up time to learn Objective-C and the associatedframeworks. However, many of your students will have iFamily devices, and may beeager to program them, and they may be spurred by the end result — building a largecluster can be done more readily with this technology than any other.

7. REFERENCES:

Apple, Inc. Game Kit Framework Reference. Apple Inc., 2009.

Cochran, Stephen G. Programming in Objective-C 2.0, 2nd Edition. Addison-Wesley,2008.

Gardner, Martin. Aha! Gotcha: Paradoxes to Puzzle and Delight. W.H. Freeman &Co., 1982.

IEEE. IEEE Task Force on Cluster Computing. www.ieeetfcc.org, retrieved March22, 2010.

Mark, Dave and Jeff LaMarche. More iPhone 3 Development. Apress, 2010.

Prins, Philip R. Teaching Parallel Computing Using Beowulf Clusters: A LaboratoryApproach. Journal of Computing Sciences in Colleges, (20), 55-61, 2004.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

16

LITTLEFE – PARALLEL AND DISTRIBUTED COMPUTING

EDUCATION ON THE MOVE*

Charles PeckEarlham College

Computer Science Department801 National Road West

Richmond, IN 47374765/983–1667

[email protected]

ABSTRACTMany institutions have little or no access to parallel computing platforms forin–class computational science or parallel and distributed computingeducation. Key concepts, motivated by science, are taught more effectivelyand memorably on an actual parallel platform. LittleFe is a complete 6 nodeBeowulf style portable computational cluster. The entire package weighs lessthan 50 pounds; easily travels; and sets–up in 5 minutes. Current generationLittleFe hardware includes multi–core processors and GPGPU supportenabling support for shared memory parallelism, distributed memoryparallelism, and hybrid models. By leveraging the Bootable Cluster CD(BCCD, [3]) project, and the Computational Science Education ReferenceDesk (CSERD, [5]), LittleFe is a powerful, ready–to–run, computationalscience and parallel programming educational platform for the price of ahigh–end laptop.

Keywords: portable cluster, computer science education, undergraduatecurriculum, computational science education, outreach

CCSC: Midwestern Conference

17

INTRODUCTIONLittleFe is a complete multi–node Beowulf–style [2] portable computational cluster

designed as an "educational appliance" for substantially reducing the friction associatedwith teaching high performance computing (HPC) and computational science in a varietyof settings. The entire package weighs less than 50 pounds, easily travels, and sets–up in5 minutes.

LittleFe's design grew out of our work building stationary clusters and ourexperience teaching workshops in a variety of places that lacked parallel computationalfacilities. Once we had some gear and some experience moving it around we workedthrough three different approaches before arriving at the system described here. Theprinciple design constraints for LittleFe are: $3,000USD total cost, less than 50lb(including the case), less than 5 minutes to setup and minimal power consumption (lessthan 100 Watts peak, 80 Watts average).

The current production LittleFe design is composed of the following majorcomponents: • 6 mainboards (Mini–ITX, 1–2GHz 2 core CPU, 512MB–1GB RAM, 100Mb/1Gb

ethernet) • 6 12VDC–ATX power supplies • 1 320 Watt 110VAC–12VDC switching power supply • 1 80GB 7200RPM ATA disk drive (2.5" form factor) • 1 DVD/CD optical drive (slim–line form factor) • 1 8 port Gigabit Ethernet switch • 1 rack assembly • 1 1610 Pelican travel case • Fasteners, cabling, and mounting hardware

The $3,000USD costper unit includes about 10hours of student labor toassemble and test eachunit. This includesliberating the BootableCluster CD [3] image ontothe disk drive andconfiguring the users. Themainboards, CPUs, andRAM comprise the bulk ofthe cost. With all 6 nodesidling, LittleFe drawsabout 80 Watts of power(about the same as anincandescent light bulb).W h e n r u n n i n g aCPU–intensive moleculardynamics simulation usingevery node LittleFe draws

Figure 1: An early version 3 production unit almost readyfor deployment

JCSC 26, 1 (October 2010)

18

about 88 Watts of power. Detailed parts manifests, cost estimates and sources areavailable on–line at http://LittleFe.net.

MOTIVATIONOne of the principle challenges to computational science and HPC education is that

many institutions do not have access to HPC platforms for demonstrations andlaboratories. Paul Gray's Bootable Cluster CD (BCCD) project has made great strides inthis area by making it possible to non–destructively, and with little effort, convert acomputer lab of Windows or Macintosh computers into an ad hoc cluster for educationaluse.

LittleFe takes that concept one step further by merging the BCCD with aninexpensive design for an 6–8 node portable computational cluster. The result is amachine that sets–up in 5 minutes wherever there is a 110VAC outlet and a wall toproject an image on. The BCCD's package management feature supports curriculummodules in a variety of natural science disciplines, making the combination of LittleFeand the BCCD a ready–to–run solution for computational science and HPC education,outreach and training.

LittleFe's principle edge is resource availability for computational science and HPCeducation. To teach a realistic curriculum in these areas there must be guaranteed andpredictable access to HPC resources. There are currently two common barriers to thisaccess. Resource provider policies typically allocate HPC resources under a "researchfirst, pedagogy second" prioritization scheme, which often precludes the use of "computeit now" science applications in the classroom. The second barrier is the capital andongoing maintenance costs associated with owning an HPC resource. This affects mostmid–size and smaller educational institutions and is particularly acute in liberal artsenvironments, community colleges, K–12 settings and among traditionallyunderrepresented groups, e.g. minority serving institutions.

LittleFe's second important feature is ease of use, both technically andeducationally. Our adoption of the BCCD as the software toolkit makes it possible tosmoothly and rapidly advance from bare hardware to science. Further, we haveminimized ongoing maintenance since both hardware and software are standardized. PaulGray, from the University of Northern Iowa, and a number of our student researchassistants have successfully maintained the BCCD for many years now via a highlyresponsive listserv and well organized web presence, http://bccd.net.

Portability is useful in a variety of settings, such as workshops, conferences,outreach events and the like. It is also useful for educators, whether illustrating principlesin the K–12 arena or being easily passed from college classroom to college classroom.Wherever a LittleFe is setup it draws a crowd.

OVERALL DESIGNLittleFe's physical architecture is built around bare Mini–ITX mainboards mounted

in a custom designed frame, which in turn is housed in a Pelican traveling case. Toaccomplish this we use daughter–board power supplies which mount directly to the

CCSC: Midwestern Conference

19

mainboard's ATX power connector. Current LittleFe's use disk–less compute nodes, onlythe head node has a disk drive, compute nodes boot via DHCP/PXE from the head node.

HARDWAREMainboard

Basing our design around the Mini–ITX mainboard form factor standard has servedus well. Currently there is significant demand in the industry for this size system, whichyields rapid evolution, a significant number of choices from multiple vendors such asVIA, Intel, and Advanced Micro Devices (AMD), and consequently low price points.Smaller boards such as the PC–104 form factor, while using less electrical power, lackthe computational power to be useful. Larger boards, while offering much morecomputational power, would be impractical in terms of both the physical packaging andelectrical power consumption.

StorageAll of the persistent storage devices are attached to the head node. Due to packaging

and weight constraints the disk drive must be in a 2.5" form factor. The disk drive can beATA or SATA: spindle speed, buffer size, and overall transfer rate are the most importantcriteria. Since there is only a single disk in each LittleFe, it should be a fast one. For mostapplications a 60GB disk drive is sufficient.

Network FabricWhile 100Mb networking is sufficient for some applications, the availability and

cost of Mini–ITX mainboards with 1Gb NICs makes them very attractive now for mostnew units. Any small unmanaged 8–12 port network switch which uses 9–12VDC forline–in voltage can usually be mounted in the frame. Some LittleFe units sport a smallWiFi access point, allowing a group of people to interact with a simulation from theirlaptops.

Power120–240VAC line–input is brought to a frame mounted fused switch and then routed

to a 320 Watt 12VDC regulated power supply. This minimizes the amount ofhigh–voltage wiring in the system and provides the source for powering the 120 Wattdaughter–board ATX power supplies located on each mainboard. With a peak draw ofabout 100 Watts, the primary power supply is generously sized for cool operation andincreased reliability and longevity. For the head node, the daughter–board ATX powersupply provides Molex connectors for the disk drive and CD/DVD drive.

JCSC 26, 1 (October 2010)

20

CoolingLittleFe's open frame, vertically mounted board design promotes a significant

amount of natural cooling. This reduces the need for additional fans, further reducing thepower consumption profile and the amount of system noise. LittleFe is quiet enough touse even when sitting in the arrivals lounge at an airport.

PACKAGINGFrame

The frame is made of .10" smooth plate aluminum with punches for the rail mounts,case mounts, and line–input power switch. The rails and board guides are also made ofstandard aluminum stock with pre–drilled mounting holes.

The mainboards are mounted on 1/4" AA luan plywood plates using 1/8" nylonstandoffs. We explored many other materials for the mainboard plates, particularlyaluminum and a variety of plastics and polymers. None could match the strength toweight ratio, cost, or ease of use associated with high quality plywood.

Traveling CaseThe system is shock–mounted in a Pelican 1610 traveling case using a two–part

rubber cup and plug system. The cups are mounted on the floor and lid of the Pelicancase. The plugs are mounted on the top and bottom of each frame's end–plates. When youplace the frame in the case the plugs nestle in the cups on the floor. When the lid is closedthose cups encase the plugs on top. This gives the system support and shock resistancein each direction. We have tested this system extensively both in field trials and byexamining the results of approximately 25 commercial flights where LittleFe travelledas checked baggage. While there is occasional distortion of an end–plate if an excessiveamount of baggage is placed on top of the Pelican case, on the whole the system appearsto functional adequately.

In terms of overall weight, LittleFe, traveling case, and any accessories, can be nomore than 50lbs. This is the maximum allowed by airlines before heavy baggagesurcharges apply. Practically, it is also about the maximum amount that most people cansafely maneuver around an airport or school building. One advantage of the Pelican 1610is that is has built–in wheels and a retractable tow handle.

ASSEMBLY AND TESTINGAssembling LittleFe consists of the following steps: 1. Assembling the frame and rails 2. Mounting the regulated 110/240 VAC power supply to the frame 3. Mounting the network switch and installing the network cabling 4. Mounting the mainboards to the cards 5. Mounting the power supplies and switches to the mainboards 6. Installing the up–link NIC on the head–node 7. Installing the mainboards in the cage

CCSC: Midwestern Conference

21

8. Cabling the power supplies 9. Mounting the disk drive and CD/DVD drive to the frame and installing the power

and data cables 10. Plugging in the monitor, keyboard, and mouse 11. Performing the initial power–up tests 12. Configuring the BIOS on 5 of the mainboards to boot via the LAN and PXE

Basic hand tools: screwdrivers, pliers, wire cutters, adjustable wrench, drill, and asoldering iron are all the tools which are needed to fully assemble a unit. Most peoplebudget a full day to do a complete assembly, test, and software installation. With practice,it has been shown that if nothing goes wrong, a single unit can be assembled in about 4hours. See the detailed step–by–step instructions and video that illustrates the assemblyof a unit available at http://LittleFe.net

SOFTWAREOne of the primary goals of this project has been to reduce the friction associated

with using HPC resources for computational science education. This friction is made upof the time and knowledge required to configure and maintain HPC resources. To thisend, LittleFe's system software was re–designed to use Paul Gray's Bootable Cluster CDdistribution. The BCCD comes ready–to–run with many of the system and scientificsoftware tools necessary to support a wide range of computational science education.

CURRENT AND FUTURE WORKFunding from TeraGrid, the SC Conference series, and private sources has enabled

our group to put about 15 LittleFe units into production as of this writing. LittleFe unitsare used in a variety of contexts: undergraduate computer science education at collegesand universities, K–12 science outreach and engagement programs, the SuperComputingEducation Program's workshops and conference program, and the Dine'h Grid project ofthe Navajo Nation in Crownpoint, New Mexico. We also support a number of institutionsthat have built LittleFe units, or close cousins, themselves using our instructions. Acouple of projects have paid their respects to this project by basing their own work onLittleFe's core principles. The most well known of these is Joel Adam's MicroWulfproject at Calvin College [1]. Joel's group made the decision to trade portability forcompute power, Microwulf is much more computationally capable than LittleFe, buttransportation is difficult and power consumption a concern for certain venues. Stationaryoperation also saves a significant amount of cost, Microwulf 's price tag is about$1,500USD. Microsoft recently published documents [4] describing a low–power,work–load adaptive cluster which uses many of the same design techniques as LittleFe.During a conversation with one of their people at a conference I learned that they had infact studied our materials while doing their design work.

The most recent LittleFe units have been built with Intel's Atom multi–coreprocessor–based mainboards. These are still relatively low power units and allow us tosupport shared memory parallelism as well as hybrid shared–distributed programmingmodels. We've also started exploring mainboards that support GPGPU programmingmodels through NVIDIA's CUDA–capable chipsets. The number of Mini–ITX formfactor

JCSC 26, 1 (October 2010)

22

mainboards that support both multi–core Atom CPUs and the CUDA capable chipsets isstill fairly small. After collecting a couple of years worth experience we are in the processof simplifying and strengthening the frame design. This will also make it easier cheaperfor us to produce frame–only kits for people who don't have easy access to aluminumfabrication equipment.

BIBLIOGRAPHY

[1] Joel Adams, Tim Brom, and Jeff Layton. Microwulf: Breaking the $100/GFLOPbarrier. Cluster Monkey, November 2007.

[2] Robert G. Brown. Engineering a Beowulf-style compute cluster. PhysicsDepartment, Duke University, Durham, NC, 2008.

[3] Paul Gray. The Bootable Cluster CD (BCCD). Web site: http://bccd.cs.uni.edu,2004.

[4] Timothy Prickett Morgan. Microsoft plays with small, sleeply servers. The Register,02(25):3, 2009.

[5] D. Tanase, David A. Joiner, and J. Stuart-Moore. Computational ScienceEducational Reference Desk: A digital library for students, educators, and scientists.D-Lib Magazine, September 2006.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

23

BUILDING APPLICATIONS FOR THE ANDROID OS MOBILE

PLATFORM: A PRIMER AND COURSE MATERIALS*

Victor MatosComputer and Information Science

DepartmentCleveland State University,

Cleveland OH [email protected]

Rebecca GrasserInformation Technology & Computer

Science DepartmentLakeland Community College

Kirtland, OH [email protected]

ABSTRACTThis paper has two parts: first a brief tutorial on Android OS and then wecomment on our experience teaching a first offering of this material. Theapplication in the tutorial is based on a case of reverse geo-coding(transforming a textual address to coordinates and producing its correspondingrepresentation on a map). This example contains components normallyincluded in a typical Android application, and although simple it is not trivial.We argue in favor of adopting a mobile programming experience in the CScurriculum. We believe students will find in Android a rich platform on whicha variety of concepts, techniques, and resources can be combined to produceuseful and marketable applications (a situation not often found in the CScurriculum). We provide suggestions on laboratory setups and some potentialresearch projects.

Keywords: K.3.2 [Computers and Education]: Computer and InformationScience Education - Computer science education, Curriculum. C.3 [ComputerSystem Organizations] Special-Purpose and Application-Based Systems: Real–time and embedded systems.

JCSC 26, 1 (October 2010)

24

1. INTRODUCTIONCellular telephony has had a significant worldwide rate of acceptance, by year 2010

it is estimated that 3.5B of the 6.8B people in the planet will have access to a cell phone[4, 10]. Smartphone devices such as iPhone, Blackberry, and those that support theAndroid operating system are progressively making an impact on society. In addition totheir support for voice and text exchange, smartphones are capable of executingsophisticated embedded software applications, as well as provide a simple link to theInternet and its resources.

It is reasonable to assume many of our students will engage in the development ofthe next generation of software applications for embedded and mobile devices. Aseducators we should recognize the importance of this reality and make our curriculumrespond to the challenge. While introducing mobile computing is listed as optional inCS2008 [5], one of the outcomes of this area is to "Implement a simple application thatrelies on mobile and wireless data communications." To illustrate some concepts ofAndroid development and to help students meet this outcome, we require the constructiona simple mapping application, as well as a more complex application at the end of theterm.

In the next section we take a brief look at the main components of the AndroidOperating System and the development of the simple mapping system. In the final sectionwe discuss our experiences and provide guidelines for organizing a course on systemdevelopment for Android-based devices.

2. ANDROID OSAndroid OS includes a large set of features for supporting mobile applications. At

the heart of Android there is the Application Framework enabling reuse and replacementof components. Android has its own virtual machine based on Linux but optimized formobile devices.

The Android developer creates code solutions in Java, the development environmentincludes a device emulator, tools for debugging, memory and performance profiling, anda plugin for the Eclipse IDE [3]. Each Android application runs in its own Linux process.An application consists of a combination of components including: Activities, Services,Broadcast Receivers, and Content Providers [2]. Activities roughly correspond to a formor “screen”; they are invoked directly or indirectly using Intents. An Intent is amechanism for calling a method, passing data, and receiving results. For instance, placinga phone call and showing a YouTube webpage can be done as follows:

Intent myActivity1 = new Intent (Intent.ACTION_CALL, Uri.parse("tel:555-1234"));startActivity (myActivity1);Intent myActivity2 = new Intent (Intent.ACTION_VIEW, Uri.parse("http://www.youTube.com"));startActivity (myActivity2); A Service is an application component that runs in the background, has no GUI, and

does not interact with the user for an indefinite period of time. For example the GPShardware could be activated to collect positional information while other non-locationbased applications (such as music player) may work in the foreground without interactingwith the GPS service. If an application wants to receive and respond to a global event,

CCSC: Midwestern Conference

25

such as the phone ringing or an incoming text message, it must register aBroadcastReceiver. Finally, Content Providers globally expose and update persistent dataas a simple table on a relational database [2].

Although Android is a real multi-tasking, multi-threaded OS, its activity manageris stack oriented. While the stack-oriented behavior is customizable, we illustrate thegeneral concept with a basic example. Assume application AP1 (say, a music player) isrunning, the user (without stopping AP1) calls for a video-game AP2. Then the userrequests a weather update calling AP3. Android pushes AP3 on top of AP2, which isalready on top of AP1. Pressing the back button pops AP3 from the system’s stack. Theunfinished video-game AP2 is exposed. Pressing the back button one more time popsAP2 and AP1 is shown. Central to the Android OS architecture is the notion ofapplication’s life-cycle. Unlike most systems an Android application does not directlycontrol itself. Its life span is determined by the OS after evaluating a number of factorsincluding: how much of the app is running, how important these things are to the user,and how much overall memory is available in the system. The Android Developer'sGuide [2] has a complete description of the stack process and the application life cycle.

3. ADONDE? - A MAPPING PRIMERWe use the project of a simple mapping system (called Adonde? in our lab write-up)

to introduce students to the process of designing and building a mobile application. Theproject specifies that "the user of this application will type in a valid address and a mapof the given place will be drawn on the phone’s screen". Figure 1-(Left) depicts on a roadmap the location of “Franklin College, IN”. Observe there are view controls to zoom inand out. The user can also touch the screen and drag the map in any direction.

We start the lab by assuming the students have installed the most recent AndroidSDK [2], obtained a Google Maps API key [8], and their Eclipse IDE includes the ADTplugin [3]. The basic concepts of developing an Android application are discussed,including the file structure of the application. When a new Android application is createdthe Eclipse ADT provides the basic skeleton of the solution. The code is stored in a

JCSC 26, 1 (October 2010)

26

package inside the /src folder; resources such as pictures, files, etc. are stored in the /ressubdirectory (see Figure 1-Right). In our example, the class Adonde extends Android’snative MapActivity interface which provides means of displaying and navigating a mapheld in a MapView container. The GUI definition – holding the MapView widget- isstored as an XML document in the /res/layout/main.xml file. The AndroidManifest.xmlfile contains a list of all the activities, and special permissions requested by theapplication.

Once the students have explored and understand the file layout, they are given thelab assignment to complete. Complete details on the coding of similar labs can be foundat the university web site for this course [9].

4. COMMENTS ON OUR TEACHING EXPERIENCEOur first offering of the Android OS course targeted a small class consisting of

fourteen CS and engineering majors [9]. Students had already completed a course in datastructures using Java; we did not assume a background in networking and databases. Thesemester course was delivered using traditional lectures, weekly lab assignments, and amajor team/individual project presented to an audience at the end of the semester. Thecourse materials and teaching resources were posted on the university website [9].

We were fortunate to have the assistance of local experts on mobile and embeddedprogramming. We had three guest lectures on iPhone OS development during thesemester. Although small coverage was given to this non-Android platform, it seemed tobe beneficial as it provided an opportunity to compare and contrast features, andmethodologies of these competing systems.

Android OS is a new platform and it is been constantly reviewed and updated; thismakes the selection of a textbook very difficult. Excellent on-line documentation of theAndroid OS system is available at the Android Developers website [2]. We chose MarkMurphy's [11] text for the main reference as there are annual subscriptions available onhis website. Finally, Abelson, Collins, et.al. [1] is a reasonable choice for an additionaltextbook. The instructor should be prepared to spend many hours writing (and updating)lecture notes and examples as the underlying structure of the platform changes and theproduct becomes more mature.

Students do not have to own an Android device to do their work. Almost all labprojects can be tested in the Android Emulator. Clearly some limitations exist, howeverthe Emulator Control Tool provides support for telephony (sending and receiving phonecalls and text-messages to other emulators) as well as GPS Location control. Forequipping your laboratory we suggest acquiring a number of unlocked devices calledAndroid Developer Phones (ADP) [2]. Currently only a few models of ADP are availablefrom Android Market ($400.00-$600.00 per unit). If available, students can borrow thedevices from the school lab, and insert their personal phone’s SIM card to activate theADP. It should be noted that not all applications require telephony as there are other ways(WiFi, for example) to provide students with the opportunities to meet the outcomesgiven in CS2008 [5].

While learning the foundations of Android development, our students worked inidentifying a problem and producing a solution. Obviously it is very difficult to commit

CCSC: Midwestern Conference

27

to a major application when still learning introductory material. We worked around thisproblem by selecting a number of solutions already in the Android market and re-engineering and modifying to local needs the chosen application. Students could workalone or in pairs, and were asked to select one of the projects from the given list. Forinstance, one of the projects called ‘Go Cavs’ shows live scores for the local basketballteam, as well as its schedule, team’s web-site material, and so forth. Another interestingapplication called ‘Ride & Roll’ displays on a Google map the location of the user, theclosest bus/train station, and the current location of the bus or train. The goal is to tell theuser when the next public transportation unit is approaching her location. Another projectcalled ‘McTalk’ uses the voice recognition unit to assemble and place an order at aMcDonald’s restaurant before approaching the drive-thru booth. As a final example, theapplication ‘I am Ok’ [10] assembles a text-message containing text and GPS location ofthe sender and delivers to an emergency database from where data can be accessed byfriends and family.

Some of these projects were not fully completed by the end of the semester;however the students had most of the conceptual design and GUI specifications toillustrate their application’s functionality. The major impediment to project completionwas time - the project proposal was simply too large to complete during the semester. Wefound this to be an important concept - as students learn to propose time requirementsfor a project, they need to understand how they work through complex undertakings.Each team was asked to formally present their work in the classroom. Students presentedthe proposal, the artifacts from the development process, the application, and thoughtsfor future work. Students were encouraged, but not required, to investigate the Androidmarketplace. While intellectual property was discussed during the course of the semester,the course curriculum concentrated on the development process. Any student work on theAndroid Marketplace was, by necessity, put there by the student on their own.

The reading of the course evaluation indicated that the material and format of thecourse raised the student’s level of enthusiasm and participation. Students interacted inthe classroom and worked in small teams. Overall there was a noticeable positive attitude,excitement, and sense of collaboration. Class discussion of team projects providedopportunities for self-criticism and self-improvement as well as peer evaluation.

The field of mobile application development is fertile ground for innovators. A fewof the independent projects created in the course are now for sale in the Android Market.Most students commented about their willingness to continue ‘polishing’ their solutionon their own time to make them be more attractive in the actual market.

5. CONCLUSIONIn many traditional computer science programs, students mainly develop

applications for desktop computing. Ideally you would like to prepare your students tobe ready for as many as development platforms as possible. While there has been a recentaddition of multimedia and robotics subjects in our curriculum[6], many of the studentsat our institution have not been fully exposed to skills that should transfer toemployability. The addition of mobile computing to their academic program adds anotherlevel of authenticity c to their work [7].

JCSC 26, 1 (October 2010)

28

The inherent complexities in developing mobile applications tests the student'sability to design, develop, test, and release an application that may be an order ofmagnitude more challenging than a desktop application. We believe mobile computinghas become a necessary component in the education of CS majors. It does not matterwhat platform you choose; we tend to favor Android because of the openness of tools andresources, there is no cost to the student to test and distribute their code; however otheralternatives are equally acceptable.

In our limited experience we saw students working with a great deal of enthusiasmin their individual projects. Perhaps the motivation comes from the novelty of the mediaand the opportunity for innovation. Getting ready to teach the material is not differentfrom preparing other courses. Android development has a very low setup cost as all thetools are free, no special hardware is required, and the simulator is powerful enough tomimic almost all the functionality of the actual device. The strategy used in our firstoffering was depth in a single platform, we hope in the next offering to provide a surveyof different mobile application environments to supplement the student’s learning.

6. REFERENCES

[1] Abelson, W.F., Collins, C., Sen, R. Unlocking Android - A Developer's Guide.Manning Pub. April, 2009.

[2] Android Developer’s Guide. http://developer.android.com/, Retrieved Feb 2010.

[3] Eclipse Foundation. Eclipse IDE – Plugin for Android. http:// www.eclipse.org.Retrieved Feb 2010.

[4] Central Intelligence Agency. 2008 World Factbook – Guide to Country Profiles -Telecommunications. https://www.cia.gov/library/publications/the-world-factbook/docs/profileguide.html. Retrieved March 2010.

[5] Computer Science 2008, An Interim Revision of CS 2001(http://www.acm.org//education/curricula/ComputerScience2008.pdf). RetrievedMay 2010.

[6] Guzdial, M., Ranum, D., Miller, B., Simon, B., Ericson, B., Rebelsky, S. A.,Davis, J., Deepak, K., and Blank, D. 2010. Variations on a theme: role of mediain motivating computing education. In Proceedings of the 41st ACM TechnicalSymposium on Computer Science Education (Milwaukee, Wisconsin, USA,March 10 - 13, 2010). SIGCSE '10. ACM, New York, NY, 66-67. DOI=http://doi.acm.org/10.1145/1734263.1734287

[7] Guzdial, M. and Tew, A. E. 2006. Imagineering inauthentic legitimate peripheralparticipation: an instructional design approach for motivating computingeducation. In Proceedings of the Second international Workshop on ComputingEducation Research (Canterbury, United Kingdom, September 09 - 10, 2006).ICER '06. ACM, New York, NY, 51-58. DOI=http://doi.acm.org/10.1145/1151588.1151597

[8] Obtaining a Google Maps API Key. http://code.google.com/android/add-ons/google-apis/mapkey.html. Retrieved Feb 2010

CCSC: Midwestern Conference

29

[9] Matos, V. CIS493 – Special Topics in Computer Science.http://grail.cba.csuohio.edu/~matos/notes/cis-493/Android-Syllabus.pdf.Retrieved February 2010.

[10] Matos, V., Blake, B. ‘I am OK’ - A Conceptual Model for a Global EmergencySystem and Its Societal Impact. International Journal of Technology, Knowledgeand Society. 2(5), 7-18, 2007.

[11] Murphy, M.L. The Busy Coder's Guide to Android Development. CommonsWarePub., 2009 (available at: http://commonsware.com/Android/index.html).

___________________________________________

* Copyright is held by the author/owner.

30

EFFECTIVE TEACHING PRACTICES USING FREE GOOGLE

SERVICES*

CONFERENCE TUTORIAL

Paul GestwickiComputer Science Department

Ball State UniversityMuncie, IN 47306

765 285 [email protected]

Brian McNelyEnglish DepartmentBall State University

Muncie, IN 47306765 285 8682

[email protected]

ABSTRACTIn this 90-minute tutorial, we will share our experiences using free Web services

from Google in order to maximize teaching effectiveness. Participants will engage withthese services as part of the tutorial. We have used and studied these technologies, andwe have developed best practices for using them to facilitate student inquiry and learning.

Speci c technologies that will be discussed include: • Reader. Reader is an online feed aggregator that includes sharing and social

functions that integrate well with course-related activities. For example, through theuse of specially designed "bundles," an instructor can easily share articles andcollections of syndicated feeds with students, allowing them to explore contentrelated to a given course, where they can make timely connections to primarysources. The "Note in Reader" bookmarklet and tagging functions allow instructorsto move any kind of Web content into course Reader bundles without the hassle ofadding a new feed. This allows instructors to target speci c items to coursediscussions throughout a unit or quarter/semester.

• Sites. Sites is a user-friendly tool for creating public or private Web sites. The accesscontrol mechanism allows for shared ownership of the space between instructors andstudents, making it an excellent tool for promoting student projects and collaborativelearning. It can also be used for wiki-style collaborative knowledge work, butwithout the need to install and maintain a Web server.

• Buzz. Though ostensibly a social networking application positioned somewherebetween Facebook and Twitter, Buzz integrates well with both Reader and Sites. Forexample, comments on items shared through Reader are also viewable in Buzz,

CCSC: Midwestern Conference

31

creating more opportunity for backchannel discussion around items related to thecourse. Buzz can also act as a microblogging or project management platform,complementing work in Reader or Sites.

• Alerts. Alerts enable systematic daily searching of a given topic or phrase, with pushdelivery of the most relevant results. Alerts can be particularly useful for studentssearching for specific (or esoteric) items and researching trends about those itemsthroughout the stages of a given project.

• Groups. Groups provides the core functionality of a mailing list together withcollaborative, wiki-style page editing and lesharing. Groups can be especially usefulfor project management within student-driven collaborative teams.

• Wave. Wave is a collaborative and extensible writing environment. Recently openedto the public, during preview testing we have found Wave to be a valuableenvironment for managing student-directed, project-oriented learning experiences,as well as for research coordination.

• Docs. Docs is a suite of o ce productivity tools, but the Web-centric nature of thesuite provides powerful teaching opportunities. The ability to seamlessly sharedocuments among multiple users allows project teams to collaboratively edit richtext documents and spreadsheets, while an instructor can easily survey the progressof teams. For example, our students have used Docs spreadsheets to maintain riskmatrices of semester-long projects, and the instructor can monitor their managementof risk in terms of both the document's content and the frequency of change. Docsalso contains a simple and free mechanism for distributing anonymous surveys, andwe have used this to elicit feedback from students during the semester as well as inhuman subjects research.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

32

DESIGN OF A VIRTUAL COMPUTER LAB ENVIRONMENT

FOR HANDS-ON INFORMATION SECURITY EXERCISES*

Nathaniel Gephart, Benjamin A. KupermanComputer Science Department

Oberlin CollegeOberlin, OH 44074

[email protected], [email protected]

ABSTRACTThere is an increasing demand from both students and industry for morecomputer science students to have experience in information security. Onearea that is difficult for smaller colleges to implement is hands-on securityexercises for students. This paper describes a method and our designconsiderations for constructing a virtual computer lab environment to be usedfor such courses. This system uses a single server to host virtual machines thatcan be configured into small networks and made available for studentassignments. These machines for each student group can communicateamongst themselves but are isolated from each other and from the rest of thecampus network. Students can be given administrative access to the machineswithout compromising the security of the campus network.While our initial focus is on an information security course, this type of systemwould also be useful for laboratory exercises in operating systems, networking,and system administration classes. This software is under active developmentand is being made freely available for use in other courses and at otherinstitutions.

INTRODUCTION AND OVERVIEWOver the past several years there has been an increasing demand from both students

and industry sponsors for more graduates with experience in information security.According to the U.S. Bureau of Labor and Statistics, growth in the employment of

CCSC: Midwestern Conference

33

computer scientists and computer network, systems, and database administrators will bedriven in part by the increasing need for information security [2, 3].

In academia, many of the professors with the relevant background experience (eithergraduate research or other specialization) have positions at larger research orientedinstitutions. Few smaller computer science programs offer specializations in informationsecurity, but a growing number of schools offer it as an elective. In support of these non-specialists, there is a growing wealth of information available for interested professorsin the forms of textbooks, prepared course material, research literature, professionaltraining books, and web resources all dedicated to information security. One area that isdifficult for a smaller institution to implement is meaningful hands-on laboratoryexercises to accompany a security course. For many schools, constructing a dedicatedsecurity lab is not feasible due to limited resources including money, space, machines,time, and staffing. This paper describes a method and the design considerations made toimplement such laboratory exercises through the use of virtualization and virtual machinetechniques, with a particular emphasis on being implemented at 4-year institutions.

We believe that there is a need for realistic, hands-on laboratory exercises ininformation security courses. Many instructors believe that experiential learningsignificantly improves understanding and retention of material by students. For manysecurity laboratory assignments, students will need to have privileged access to machines(root or administrator access), a situation that is not easily provided for by a generalpurpose CS lab environment. Some exercises involve analyzing or controlling thecommunication between multiple machines increasing the number of machines needed.Further, each student group will be attempting to accomplish the same set of tasks(changes, patching, configuration, etc.) requiring them to each have their own set ofmachines to work on. Finally, a number of interesting security assignments involve theuse of network tools or generation of traffic (worm spreading, port scanning, etc.) whichshould be isolated from the campus network and care must be taken to keep one group’straffic from interfering with others. In the past, this has been done through theconstruction of dedicated, closed network laboratories [4] or through mobile carts withlaptops [6, 9].

DESIGN CONSIDERATIONS AND DECISIONSWe made a number of important design decisions during the development of this

Virtual Computer Lab (VCL). These decisions can be broken down into the followingbroad categories: physical environment, virtualization platform, security/isolation, andsystem management. First, the physical environment describes the limitations weencountered and the equipment purchased. The platform selection concerns the style ofvirtualization hypervisor as well as licensing. Security is focused on the problems of howto manage isolation of worlds, users, and access controls. Finally, system managementconsiders how to automate certain world-related tasks: the management of virtual worldstate, handing in of worlds for grading, and templates for rapid deployment of labs.

JCSC 26, 1 (October 2010)

34

Physical EnvironmentBefore discussing the software environment and our configuration of it, we first

want to outline the computing environment at our institution as it motivated much of thedesign of this project. As is probably the case at many other liberal arts colleges, we havea dedicated computer lab that is available for use by all CS classes. It was viewed asunacceptable, even detrimental, to task a number of these machines for use solely as partof a security course as they are in high demand during our introductory lab sessions. Asecond possibility would be to purchase and deploy a set of computers dedicated for usein a security course. Space is at a premium – there is not room in the existing lab nor isthere vacant space available for a separate lab. It would also have been expensive topurchase a set of machines to be used for a class that is only offered every other year.

Our idea to overcome these limitations was to purchase a single server that couldbe housed in the campus server room and have it host a set of virtual machines that couldbe used for the lab. We then could take advantage of the bandwidth and high-speedconnections available on our LAN to allow the existing lab machines to remotely accessthe virtual computers using remote desktop software.

In terms of hardware selection, almost all modern x86 CPUs have hardware supportfor virtualization. A typical security exercise might involve 1 to 3 machines with verylight loads, so the processor speed need not be excessive. Space is a greater concern (bothmemory and disk), as each virtual machine requires a full disk image of the computer anddedicated memory while executing. For our budget of $3,000 we purchased a HPProLiant ML150 G6 Non-Hot Plug server with a 2.40 GHz Quad-Core Intel XenonProcessor, 24GB of PC3 RAM, and four 250GB disk drives configured as a single 1TBlogical volume. For the price of 2 or 3 stand-alone lab machines, we are able to purchaseserver-class hardware with sufficient resources for virtualization. In our opinion, thespecific components are less important than ensuring that there is copious amounts of

CCSC: Midwestern Conference

35

RAM available and that some considerations regarding disk space and disk access timeare made.

Virtualization PlatformOur first consideration was what virtualization platform to use. We examined a

number of available solutions, both commercial and open source. The Xen project [10]and Sun Microsystem’s VirtualBox [7] were the most promising open source solutions,while Citrix XenServer [11] and VMware ESXi [8] were the most attractive commercialpackages.

Hypervisors exist in two flavors: Type II or host-based hypervisors, and Type I or“bare metal” hypervisors. The latter are made up of a thin software layer with the solepurpose of virtualizing the underlying hardware. The former require the presence of afull-fledged host operating system to manage I/O operations and provide other basicsystem services. Bare metal hypervisors boast greater speed and security because of thereduced complexity and size of the virtualization code. However, they can also besomewhat limited in their support for a variety of hardware platforms. See [5] foradditional details on virtualization.

Licensing was also an important concern as it encompassed questions such aswhether we needed professional, paid support of the platform, access to official supportdocumentation, or more advanced feature sets. Since we were developing an environmentaround one of these hypervisor platforms, having access to support and documentationwas essential. The commercial solutions we considered offered basic documentation fortheir products on their websites, but for troubleshooting and technical support, it wasnecessary to purchase a support contract. Introducing monthly or yearly expenses fortechnical support would immediately make our environment significantly less sustainableand decrease its attractiveness as a potential solution for other schools. In contrast, thewebsites for both the Xen project, and VirtualBox offered access to extensivedocumentation. Both also had active message boards, IRC chat rooms, and mailing listswhere we could ask questions as they arose. In addition to the cost of professionalsupport, the commercial solutions both offered entry level products for free, but requiredadditional licensing to take advantage of larger hardware platforms (more CPUs, RAM,etc.) and advanced features. This was, again, a deterrent because it required recurring costfor us and others to implement our environment.

Ultimately, we chose the open source Xen project to serve as our virtualizationplatform. We found that it offered the best solutions to the above platforms of the fourwe considered. Xen is also the basis for the XenWorlds project at the University of Iowa[1], with whom we were collaborating. Because Xen is a very complex system with manyclose ties to the Linux kernel, we also wanted to find a distribution of Linux that includedpackages for easy installation of Xen and its dependencies. The number of suchdistributions is growing steadily; however, we chose to use Debian as the base for oursystem. Debian’s package management tools are well-tested and easy to use, and Debianwas one of the first to include Xen packages in its repositories.

JCSC 26, 1 (October 2010)

36

Figure 2: An example of how labs can bedeployed using this system. An instructor

creates an initial image and the scripts create acopy of this virtual network for each group inthe class. Students access the virtual machines

SecurityThe security and isolation of the system was a high priority. We designed this

system keeping in mind that these worlds may be used by students to work withpotentially harmful software and attack techniques. We therefore required that worlds begiven extremely limited or no access to the outside network. Further, we wanted eachstudent group to be isolated from each other so that the network traffic they each generatewould not interfere with other groups.

Worlds were isolated by the creation of virtual bridges, one per world, in the Dom0of the Xen platform. Virtual machines that were together on the same network bridgecould communicate with each other, but no other systems. This configuration of bridgesin the Dom0 allows easy administration, particularly in that it is easy to move a VM toanother world by simply deleting its interface from one bridge and adding it to another.Also, network traffic of all the VMs is handled entirely within the Xen platform; notraffic ever goes out on a physical interface. Problems that arise because of the isolationrequirement included how to allow students and administrators to upload files to worlds,and how to handle automatic configuration of network settings.

Another significant set of problems was that of user management and access control.Our isolation requirement dictated that students be limited to accessing only those worldsspecifically designated to them. Xen is designed such that the administrator can controland connect to all virtual machines running on the system. Our system has an initialimplementation of procedure-oriented access control that mirrors the Unix usermanagement system. This is done through a menu system that only offers a limited subsetof actions to the students, and no direct command line access to the Xen server. Each

CCSC: Midwestern Conference

37

student is given a username in the system along with a unique numeric identifier. Theworlds are also identified by name and number. Part of the configuration of the systemis a mapping of user IDs to world IDs. A student, thus, should be able to access theworlds allocated to him but no others. When a student logs in the system presents himwith the option to log in to only those worlds allocated to him.

System AdministrationIn a system of this complexity, in which groups of virtual machines are created and

destroyed on a regular basis, administration becomes an issue. Questions consideredincluded the following: automated management of virtual machine creation anddestruction, how to hand in lab assignments, and automatic provisioning of virtualmachines through templates.

Administration of the entire system is through a set of scripts written in Python.Included in the setup package for Iowa State’s XenWorlds environment were a numberof Python scripts to handle the administration and configuration of XenWorlds worlds.We were able to use much of this code as a base, adapt it to our purposes, and extend itin ways we found necessary.

In order to ease distribution of lab assignments to students, we decided the systemhad to be capable of creating several worlds at once based on a template or configurationfile. The XenWorlds system uses the configuration file format and classes that are partof the Python standard library. In these files, administrators specify the number of nodesin a world as well as the specific disk and network configurations for each node. Bypointing the configuration scripts at the instructor created configuration file, the systemcould create the necessary virtual machines, link them together, and start them on theserver. At this point, our system is not yet capable of that level of automation – there arestill many tasks that need to be handled by the administrator manually – however, ourvision is that running one command would allow the creation and configuration of aworld and would not require any user intervention.

In order to handle this kind of configuration automatically, we needed a scheme forassigning IP and MAC addresses to each virtual machine in each world. Since worlds areisolated from each other, it is sufficient to assign the nodes of all the worlds the sameMAC and IP addresses. However, this would present significant problems for theadministrator if ever two worlds needed to be linked together or VMs needed to be movedfrom one world to another. Thus, we decided on a scheme that assigned addresses basedon the world owner’s ID, the world assignment number, and the node number. Thesethree values were sufficient to give all virtual machines running on the server at a giventime unique addresses and avoid any potential configuration problems that might occurwhen moving VMs. A problem we encountered with automatic configuration arose whenwe tried to setup a Microsoft Windows VM. We were unable to find a way to assignMAC or IP addresses to the VM without manually logging into each machine andspecifying the settings. This may be a significant barrier if we decided to use Windowsfor one of our lab exercises.

Another of our design goals was the ability to manage virtual machine and worldstate. This goal ties in closely with a number of our other objectives including handingin assignments and templates. It was our hope to include functionality that would allow

JCSC 26, 1 (October 2010)

38

a student to restore her world to its original state, wiping out any progress she has madesince the lab was distributed. This functionality is really a specific case of being able torollback the state of the world to any predefined save point. There exist several projectsthat implement this functionality including UnionFS and various copy-on-write solutions.Xen itself can work with COW snapshots of filesystems created in lvm logical volumes.Copy-on-write also promises huge improvements in disk usage because only the changesmade to the filesystem need to be stored. Using COW systems, a particular lab setupwould need one or more base images. Using those, each virtual world’s nodes would beprovided with a snapshot as its root filesystem which would keep only the changes thestudent made to the filesystem instead of a complete copy of the base image.

We also considered handing in of lab assignments. Since our system still uses fullcopies of disk images per student per lab, handing in entire virtual machines withassociated disk images is only feasible over a fast network connection. With COWsnapshots, such a hand in scheme is much more viable. We also discussed alternative,more traditional methods of handing in assignments such as lab write-ups. At present, oursystem does not have any hand in functionality built into the system. This is an area thatwe will continue to explore.

Finally, to lessen the effort required to create and distribute a lab, we wanted todevelop a number of prebuilt disk images. These images would allow rapid deploymentof VMs with specific functionality, such as a web server, database server, and attackplatform (with various scanning and offensive tools).

CONCLUSIONS AND FUTURE WORKIn this paper we have presented our design for a virtual computer lab to be used for

information security exercises at a liberal arts college. To explain our design, and to helpothers who are designing similar projects, we included a list of items that we had toconsider during the construction of this system. By using virtualization, we can reducethe expense in both dollars and space for establishing a hands-on system laboratory.

While our presentation of this system has focused only on information security labs,the lab environment lends itself to use in other courses. Operating systems courses couldhave students compile and run their own kernels implementing features such asschedulers or virtual memory. Networking courses can have students implement sniffers,route packets, or create and modify network topologies without interfering with the restof the campus. And information systems courses can have students install and administera set of servers. With a common file format such as the Open Virtualization Format, itmay be possible to create a repository of a wide variety of laboratory exercises to beshared among the academic community.

We are continuing to refine and add additional features to the scripts that make thislab- oratory setup possible. We are concurrently developing a set of security laboratoryexercises that we will distribute with the system and use in our own information securityclass. In the summer of 2010, we will be hosting a regional workshop to give faculty atother liberal arts colleges an opportunity to learn how to install and administer this systemat their own colleges.

CCSC: Midwestern Conference

39

AVAILABILITYAdditional documentation, source code, and laboratory exercises for this system are

available online at http://www.cs.oberlin.edu/~kuperman/research/vmlab/.

ACKNOWLEDGEMENTSThis material is based upon work supported by the National Science Foundation

under Grant number DUE-0830877 and Oberlin College. We would like to thank thereviewers for their time and comments, the Oberlin College Computer ScienceDepartment, and OCCS system administrator Nate Daniels.

REFERENCES

[1] Anderson, B., Joines, A., Daniels, T., Xen Worlds: leveraging virtualization indistance education, ITiCSE ’09: Proceedings of the 14th annual ACM SIGCSEconference on innovation and technology in computer science education, 293-297, 2009.

[2] Bureau of Labor and Statistics, Occupational Outlook Handbook, 2010-11Edition, chapter Computer Scientists, 2010, http://www.bls.gov/oco/ocos304.htm, [cited 22 March 2010].

[3] Bureau of Labor and Statistics. Occupational Outlook Handbook, 2010-11Edition, chapter Computer Network, Systems, and Database Administrators,2010, http://www.bls.gov/oco/ocos305.htm, [cited 22 March 2010].

[4] Hill, J., Jr., Carver, C., Humphries, J., Pooch, U., Using an isolated networklaboratory to teach advanced networks and security, SIGCSE ’01: Proceedings ofthe thirty-second SIGCSE technical symposium on computer science education,36–40, 2001.

[5] Matthews, J., Dow, E., Deshane, T., Hu, W., Bongio, J., Wilbur, P., Johnson, B.,Running Xen: a Hands-On Guide to the Art of Virtualization, Upper SaddleRiver, NJ: Prentice Hall, 2008.

[6] Robila, S., Wachsmuth, B., Scharff, C., Popyack, J., Mobile instructionallaboratory environments and their use in computing sciences, Journal ofComputing Sciences in Colleges, 23, (3), 114–118, 2008.

[7] VirtualBox, http://www.virtualbox.org/, [cited 22 March 2010].

[8] VMware ESXi with VMware Go, http://www.vmware.com/ products/esxi/,[cited 22 March 2010].

[9] Wagner, P., Phillips, A., A portable computer security workshop, Journal onEducational Resources in Computing, 6, (4), article 3, 2006.

[10] Xen Hypervisor, http://www.xen.org/, [cited 22 March 2010].

[11] Citrix XenServer, http://www.xensource.com/, [cited 22 March 2010].

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

40

USING MOCK OBJECT FRAMEWORKS TO TEACH

OBJECT-ORIENTED DESIGN PRINCIPLES*

Jagadeesh Nandigam and Yonglei TaoComputing and Information Systems

Grand Valley State UniversityAllendale, MI 49401

nandigaj, [email protected]

Venkat N. GudivadaEngineering and Computer Science

Marshall UniversityHuntington, WV 25755

[email protected]

Abdelwahab Hamou-LhadjElectrical and Computer Engineering

Concordia University, Montreal,Quebec H3G1M8, [email protected]

ABSTRACTA well-designed reusable object-oriented software system adheres to two keyobject-oriented design principles – i) program to an interface, not animplementation, and ii) favor object composition over class inheritance.Furthermore, the effect of unit testing (especially in the context of test-first ortest-driven development) on quality of the resulting object-oriented softwareis undeniable. Teaching good object-oriented design principles in upper-levelundergraduate courses in an effective way is challenging. We believe the useof mock object frameworks can help in teaching these object-oriented designprinciples in a pragmatic and hands-on manner. Using mock objects and mockobject frameworks requires students to not only learn and understand theprinciples of good object-oriented design, but actively apply them indeveloping reusable object-oriented designs. This paper describes these broadobject-oriented design principles and how to use mock object frameworks toteach object-oriented software design that is based on these principles.

CCSC: Midwestern Conference

41

INTRODUCTIONGamma et al. in their seminal book [6] on design patterns identified two broad

object-oriented design principles or techniques that would lead to good object-orientedsoftware design. The first principle is "Program to an interface, not an implementation."Object-oriented systems that make rich use of interfaces display three key characteristics– flexibility, extensibility, and pluggability [3]. The second principle is "Favor objectcomposition over class inheritance." Class inheritance and object composition are twocommon techniques of reusing functionality in object-oriented systems. Unit testing isanother key practice useful in developing robust object-oriented software systems.Specifically, units (classes) in an object-oriented system should be tested in isolation.

It is our opinion that teaching good object-oriented design principles in upper-levelundergraduate courses in an effective way is challenging. Typical class room discussionof these principles/techniques includes appropriate theory with some small code examplesto demonstrate the intent behind these principles. We believe the use of mock objectframeworks can help in teaching these object-oriented design principles in a pragmaticand hands-on manner. Using mock objects and mock object frameworks requires studentsto not only learn and understand the principles of good object-oriented design, butactively apply them in developing reusable object-oriented designs. The open sourcemock object framework tools available are a great way to introduce students to the abovementioned object-oriented design principles and techniques in a very practical manner.

This paper describes how to use mock objects to teach good object-oriented designprinciples and unit testing. The rest of this paper is organized as follows. Theobject-oriented design principles mentioned above and unit testing are described in moredetail in the next section. Challenges in teaching object-oriented design principles inundergraduate curriculum are addressed next. Mock objects and mock object frameworksare described next. We then describe how to use mock object frameworks to teachobject-oriented design principles. Next, we summarize the benefits of using this approachwith mock objects. Finally, we finish the paper with concluding remarks. Java is used asthe language for the code examples in this paper.

OBJECT-ORIENTED DESIGN PRINCIPLESIn this section, we describe the two object-oriented design principles mentioned

above and the benefits of observing these principles during object-oriented design. Unittesting and its benefits are discussed next.

Program to an interface, not an implementationIn object-oriented programming languages, an interface of an object specifies the

expected behavior of that object as a set of operations or method signatures. Interfacesare specification-only constructs and do not provide implementation details. In Java,interfaces are defined using the keyword interface and may contain only methodsignatures and constant declarations. An interface cannot contain methodimplementations. All methods declared in an interface are implicitly public and abstract,even if these modifiers are omitted. All constants declared in an interface are implicitly

JCSC 26, 1 (October 2010)

42

public, static, and final, so these modifiers can be omitted. The following example showsan interface definition for an interface called IStack in Java:public interface IStack boolean empty(); Object peek(); Object pop(); void push(Object item); int size();

A class, which is a blueprint for objects instantiated from it, uses the keywordimplements to specify that it implements the methods specified in a given interface. Thefollowing Stack class implements the IStack interface:public class Stack implements IStack public boolean empty() // implementation here Object peek() // implementation here Object pop() // implementation here void push(Object item) // implementation here int size() // implementation here

In interface-rich designs, one consciously and proactively defines and usesinterfaces wherever possible. When you program to interfaces, you can reduce theimplementation dependencies between classes and subsystems [6]. Client objects remainunaware of the specific type of objects they use as long as these objects provide theinterface that clients expect. Client objects also remain unaware of the classes thatimplement these objects. The benefits to adhering to the principle of "program to aninterface, not an implementation" are that the resulting system has three important qualitycharacteristics [3]: flexibility, extensibility, and pluggability (gracefully substitutingobjects that have identical interfaces for each other at run-time using dynamic bindingand polymorphism).

Favor object composition over class inheritanceClass inheritance and object composition are two common techniques of reusing

functionality in object-oriented systems [6]. Reuse by inheritance (reuse by subclassing)leads to white-box reuse, resulting in less encapsulated classes since the internals of theparent classes are often visible to the child classes. Further, class inheritance is definedat compile-time and cannot be changed at runtime. In general, inheritance is overused.Reuse with object composition is preferred (over class inheritance) because it leads toblack-box reuse, resulting in systems with smaller class hierarchies and classes withwell-defined interfaces. Composition requires objects to respect each others' interfaces,which requires designers to carefully define these interfaces. Object composition isdefined dynamically at run-time with objects acquiring references to other objects. Anyobject that is referred by another object can be replaced at run-time by another object,including mock objects, as long as it has the same interface. Thus, object-oriented designsare more reusable, simpler, and less coupled when object composition is used properlyfor functionality reuse.

CCSC: Midwestern Conference

43

Unit testing in isolationWith the introduction of automated and regression testing tools, unit testing has

rapidly become a fundamental practice in software development methodologies such asExtreme Programming (XP) and test-driven development (TDD). Unit testing has manyadvantages – finding problems early in the development life cycle; facilitating regressiontesting; verifying that refactorings [5] did not alter functionality; enabling integrationtesting (as well tested units are easier to integrate); and serving as formalrequirement/design documents when used in the context of TDD. Though unit testing isa common practice in agile software development methods, most non-trivial code isdifficult to test in isolation. In order to keep the amount of coupling (dependence onavailability of other objects and their expected state for testing to work) into the testingprocess low and to make testing go faster, units should be tested in isolation [1,10]. Mockobjects, discussed later in this article, which are lightweight controllable replacements forreal objects can be used to test units in isolation.

CHALLENGES TO TEACHING OBJECT-ORIENTED DESIGN PRINCIPLESTeaching object-oriented design based on well-known design principles and unit

testing is very important for the reasons described in the previous section. Especially, itis important to cover the topics – interface specification, programming to interfaces,inheritance vs. composition, ways to achieve reuse using inheritance or composition, andunit testing – in a pragmatic manner using appropriate tools.

In a typical undergraduate course in software engineering or object-oriented design,students will be exposed to these concepts at a superficial level when discussing theUnified Modeling Language (UML) and design techniques. Interfaces are typicallydiscussed in the context of GUI classes and the collections framework in Java. Studentsdo not truly understand the power of interfaces in building pluggable systems and the useof object composition as an alternative to inheritance to achieve functionality reuse.Students also rarely write unit tests that are repeatable and automated unless enforcedstrictly as part of project evaluation. We believe that mock objects and mock objectframeworks can bring these practices together into one place. Students who use a mockobject framework are implicitly required to apply the above mentioned OO designprinciples and unit testing techniques, which yield a successful development project.

MOCK OBJECTSAn object-oriented program is a web of collaborating objects that send messages to

each other to accomplish a specific task. In unit testing, the goal is to test a class inisolation. However, it is not always easy to test an object that has many collaborators inisolation. A mock object is a replacement (i.e., a proxy) for a real object that is acollaborator of the object under test. Mock objects are lightweight, controllablereplacements for real objects [2,10]. Using mock objects, one can test an object inisolation. Meszaros defines mocks as objects that are "pre-programmed with expectationswhich form a specification of the calls they are expected to receive. They can throw anexception if they receive a call they do not expect and are checked during verification toensure they got all the calls they were expecting" [9]. Astels [1] lists several uses for

JCSC 26, 1 (October 2010)

44

mock objects. Some of the most important uses of mocks in object-oriented design are:using mocks for nonexistent classes to defer implementation to later time, to promoteinterface-based design, to refine interfaces, to encourage composition over inheritance,and to unit test in true isolation.

MOCK OBJECT FRAMEWORKSThere are several open source mock object frameworks available for use

(http://www.mockobjects.com). In this section, we will describe a mock objectframework for Java called EasyMock [4] together with a unit testing tool for Java calledJUnit [7]. EasyMock is a library that provides an easy to use API to generate mockobjects for given interfaces. Using EasyMock, you can generate mock objects forcollaborators of an object under test (aka domain code) and associate the mock objectswith the domain code. JUnit is a testing framework to write and run repeatable unit tests.We will use these tools to write unit tests for the PostfixEval class that can evaluatean arithmetic expression in the postfix notation. The PostfixEval class has onecollaborator – a stack object that implements the IStack interface.

The UML class diagram in Figure 1 shows the classes involved in the postfixexpression evaluation program and their relationships. The evaluate() method in thePostfixEval class takes a string representing a postfix expression, uses a stack object(real or mock) to evaluate the expression, and returns the result as an integer. Therequired collaborator object (i.e., an object implementing the IStack interface) is passedas a parameter to the constructor of the PostfixEval class. It is important to note thatthe collaborators of a class under test (PostfixEval, in our case) are explicitly passedas parameters to either to the constructor or relevant setter methods of the PostfixEvalclass.

In EasyMock, mock objects are generated dynamically at runtime. It features a"record and replay" style of usage. In the record state (before calling replay), the mockobject does not behave like a mock object, but it simply records expected method callsand return values. During the replay mode, it behaves like a mock object, checkingwhether expected method calls are really made. The common coding style or usagepattern for working with mock objects is: 1) create a mock object for the desiredinterface, 2) associate the mock object with the domain object as a parameter eitherpassed to the constructor or a relevant setting method, 3) specify expected calls andcorresponding return values (during this stage, the mock object simply records expectedcalls and return values), 4) switch the mock object into the replay mode, 5) exercise thefunctionality of the domain code (the unit under test), 6) verify the expected result of thedomain code by asserting any postconditions, and 7) finally verify that the mock objectwas used correctly.

CCSC: Midwestern Conference

45

Figure 1. Class Diagram for the Postfix Expression Evaluation Program

The PostfixEvalTest class is a JUnit test class that uses a mocked stack (referredto as MockStack in Figure 1) generated with the EasyMock tool and uses this as asubstitute for the real stack object while unit testing the PostfixEval class. ThePostfixEvalTest class contains a set of test cases methods for the PostfixEval (theunit under test) class. The setUp() method is a method that is run by the JUnitframework before any test case method to set the required context for the test case. ThetestForValidPostfixExpr() is a test case method that exercises the evaluate() methodin the PostfixEval class with a postfix expression string "5 10 3 * +" as input and aninteger value of 35 as expected result.@Before // a JUnit test set up method

public void setUp() mockStack = (IStack<Integer>) createmockStack(IStack.class); //step1 pfEvaluator = new PostfixEval(mockStack); // step 2@Test // a JUnit test case methodpublic void testForValidPostfixExpr() try

String expr = "5 10 3 * +";// step 3: set expected calls and return valuesmockStackStack.push(5);mockStackStack.push(10);mockStackStack.push(3);expect(mockStackStack.pop()).andReturn(3);expect(mockStack.pop()).andReturn(10);mockStack.push(30);expect(mockStack.pop()).andReturn(30);expect(mockStack.pop()).andReturn(5);

JCSC 26, 1 (October 2010)

46

mockStack.push(35);expect(mockStack.size()).andReturn(1);expect(mockStack.pop()).andReturn(35);checkOrder(mockStackStack, true);replay(mockStack); // step 4int actualResult = pfEvaluator.evaluate(expr);// step 5assertEquals(35, actualResult); // step 6verify(mockStack); // step 7

catch (Exception ex)

In the setUp() method, we created a mock stack (step 1) and created an instanceof PostfixEval class with the mock object as the parameter to the constructor (step 2). Themock stack is the collaborator of the PostfixEval, the object that we want to test. Then,we set expected method calls on the mock object by the PostfixEval object (step 3).After setting the expected calls along with corresponding return values, we switched themock object into the replay mode (step 4). Now, we are ready to test the convert()method of the PostfixEval object. We called the evaluate() method in the PostfixEvalclass with an argument of "5 10 3 * +" (step 5) and asserted that the actual result is equalto the expected result (i.e. 35) (step 6). Finally, we verified that the mock stack receivedthe calls as expected (step 7). The use of mock objects allowed us to test the evaluate()method and also how the PostfixEval object interacted with its collaborator, the mockstack, without actually having the real stack object/class. The EasyMock tool [4] providesseveral other/advanced features to create mocks, set expected calls and returns values,and verify the expected behavior.

TEACHING OO DESIGN PRINCIPLES WITH MOCK OBJECTSThe approach we use to teach object-oriented design principles with mock objects

consists of four main elements of instruction. Students are encouraged to understand andapply this process while working on object-oriented design projects. The instructorevaluates a student project by close examination of deliverables that result from applyingeach element of instruction. The four elements of instruction are: • First, each class in the design must have an associated unit test class. These tests

must be written using the JUnit framework. Unit testing must take place in isolation.As a consequence of this requirement, if a unit under test must work with one ormore collaborators, then appropriate mock objects must be used to replace thesecollaborating objects. EasyMock mock object framework is used to create mocksfor collaborators.

• Second, one must first prepare interface specification for a unit before dealing withimplementation details of that unit. When implementing an object-oriented systemin Java, this means that an interface construct (as a Java interface) must be specifiedfor every class before the class itself is implemented. By doing so, students get tounderstand, apply, and appreciate the first object-oriented design principle byGamma et al. – Program to an interface, not an implementation. This encouragesstudents to think about interface/behavioral specification of a unit beforeimplementing it. They need to define, review, and refine interface specificationswithout committing to concrete class implementation.

CCSC: Midwestern Conference

47

• Third, the designer of each unit (class/interface) must strive to use interfaces insteadof concrete classes for types of parameters and return values for methods in thatunit. The member (instance and static) variables defined in a unit must also specifyinterfaces as their type without committing to specific class types. This is where thestudents actually apply the design principle of programming to an interface, not animplementation. A team that uses interface-centric design and proactively programsto interfaces will be able to make good progress even when the actual classes are notavailable. This is because a system that relies on interfaces (for method parameters,return values, and member variables) can be successfully compiled without actualclasses. With the use of mock objects replacing real objects, these units can also beexecuted and tested without waiting for real collaborating objects.

• Lastly, everything that an object needs (i.e., the objects that it collaborates with) ispassed into the object either as a parameter to the constructor or using anappropriate setter method defined in the unit. That is, an object is constructed viacomposition of other required objects. The resulting system tends to conform to theLaw of Demeter [8] which states that every object is designed to work with only alimited set of well-defined objects or collaborators that are explicitly passed intothat object at the time of that object construction or later using a setter method onthat object. Since every object takes its collaborating objects explicitly asparameters, the object is created at runtime using object composition favoring reusewith composition.

BENEFITS OF THE APPROACHAs described above, the use of mock object framework and unit testing tools

EasyMock and JUnit in software engineering and/or object-oriented design courses canbe a great way for teaching good object-oriented design principles and unit testing in avery pragmatic manner. The pedagogical approach presented above requires students totake a disciplined approach to building systems that are based on good object-orienteddesign principles. More specifically, students: understand and actively use interfaces indesign; program to interfaces leading to less dependence on concrete classes; understandthe advantages and disadvantages of using inheritance as a reuse mechanism; understandthe advantages and disadvantages of using composition as a reuse mechanism; use objectcomposition as alternative to class inheritance to promote reuse; build reusableobject-oriented designs; understand the use of mock objects as replacements for realobjects when needed; appreciate the benefits of writing unit tests and how to use mockobjects in a team-based project to further their task without waiting for real classes fromtheir teammates; and understand first-hand that interfaces are the key to pluggability inobject-oriented systems and how to design loosely-coupled cohesive systems.

CONCLUSIONSIn this paper, we outlined a pedagogical approach that instructors can use in

software engineering and/or object-oriented design courses to use mock objectframeworks to teach object-oriented design principles and unit testing in a pragmaticmanner. We believe that the use of mock object frameworks can truly benefit students inunderstanding complex object-oriented design principles in a practical way.

JCSC 26, 1 (October 2010)

48

REFERENCES

[1] Astels, D., Test-Driven Development – A Practical Guide, The Coad Series,Prentice Hall, 2003.

[2] Chaffee, A., Pietri, W., Unit testing with mock objects, IBM developerWorks,November 2002.

[3] Coad, P., Mayfield, M, Kern, J, Java Design: Building Better Apps and Applets,Yourdon Press Computing Series, Prentice Hall, 2nd edition, 1999.

[4] EasyMock 2.4 tool, http://easymock.org/.

[5] Fowler, M., Refactoring – Improving the Design of Existing Code, AddisonWesley, 1999.

[6] Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design Patterns – Elements ofReusable Object-Oriented Software, Addison Wesley, 1995.

[7] JUnit 4.x unit testing tool, http://junit.org/.

[8] Lieberherr, K., Holland, I., Assuring Good Style for Object-Oriented Programs,IEEE Software, September 1989, pp 38-38.

[9] Meszaros, G., xUnit Test Patterns: Refactoring Test Code, Addison-Wesley,2007.

[10] Thomas D., Hunt, A., Mock Objects, IEEE Software, May/June 2002.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

49

THE BENEFIT OF THE CSSLP CERTIFICATION FOR

EDUCATORS AND PROFESSIONALS*

Charles E. FrankNorthern Kentucky University

Department of Computer ScienceHighland Heights, KY 41099

[email protected]

Laurie WernerMiami University Hamilton

Department of Computer and InformationTechnology

1601 University BlvdHamilton, Ohio 45011

[email protected]

ABSTRACTThe Certified Secure Software Lifecycle Professional (CSSLP) is a newcertification from (ISC)2 ®. This certification purports to confirm that theprofessional can skillfully incorporate security into all phases of the softwarelifecycle. Many security experts have consistently championed thephilosophy that better design, implementation, and operation of software canprevent many of the security problems that plague ubiquitous computing. Thispaper discusses the value to computing educators and to informationtechnology professionals of preparing for, taking, and obtaining the CSSLPcertification.

1. INTRODUCTIONGary McGraw [14] argues that integrating security into the software lifecycle would

prevent many of the computer security problems that plague our pervasive use ofcomputing. The Certified Secure Software Lifecycle Professional (CSSLP) endorsesdevelopers' comprehensive approach to building secure systems by incorporating securityinto all phases of the software lifecycle. The CSSLP training and testing are designed forall the stakeholders in the software development process [2], including security managers,designers, application owners and software developers.

JCSC 26, 1 (October 2010)

50

The International Information Systems Security Certification Consortium, Inc.,(ISC)²® sponsors the CSSLP certification. The (ISC)²® web site describes itself: "theInternational Information Systems Security Certification Consortium, Inc., (ISC)²®, isthe global, not-for-profit leader in educating and certifying information securityprofessionals throughout their careers." [1]

(ISC)²® also sponsors the Certified Information Security Professional (CISSP)certification. The CISSP is a certification directed at the management of security whilethe CSSLP is a certification directed at the development of secure software. Accordingto the (ISC)²® training course instructor, there is less than a 5% overlap between thecertifications. The CISSP is a very popular and much more common certification.

2. CSSLP CERTIFICATIONThe CSSLP examination is designed to take a "People, Processes, Technology"

holistic view of software security. As of January 2010, there were 861 people who hadobtained the CSSLP certification. (ISC)²® hopes that within the next five years theCSSLP will become the de facto industry standard for secure software development .

The CSSLP certification is international in scope and therefore does not explicitlyaddress US standards such as those from National Institute of Standards and Technology(NIST). It is vendor independent so it excludes Microsoft or Linux issues and endeavorsto be independent of specific technologies such as particular programming languages.The CSSLP requires proof of four years experience in the software development lifecycle or three years plus a bachelor's degree in an IT discipline. The CSSLP covers sevendomains [5]:

1. Secure Software Concepts2. Secure Software Requirements3. Secure Software Design4. Secure Software Implementation/Coding5. Secure Software Testing6. Software Acceptance7. Software Deployment, Operations, Maintenance, and Disposal. These domains parallel the waterfall model of the software development lifecycle,

which virtually all CS, IS and IT programs include within a four year degree curriculum.The CSSLP exam emphasizes the design and implementation domain. An (ISC)²®training course instructor argued that tools and technology become quickly out of date.Therefore, while the CSSLP does cover some technology, it emphasizes best practicesin secure software development.

3. CSSLP EXAMINATION PREPARATIONOne of the authors took and passed the CSSLP examination. He teaches software

engineering, computer security, and secure software engineering both at theundergraduate and at the master's level. A considerable amount of preparation isnecessary to pass the CSSLP examination. The author took a (ISC)²® five day trainingcourse. Even with substantial and current background in software engineering and

CCSC: Midwestern Conference

51

information security, he felt that it was critical to success in the CSSLP exam. TheCSSLP training course is offered worldwide, often in conjunction with a SysAdmin,Audit, Network, and Security (SANS) conference. In the current listings on the (ISC)²®web site, the only two CSSLP training courses within the US will be offered in Marylandand Virginia before December 2010. However, the training course is not required, andtheoretically, an experienced security professional could review some pertinent materialand take the CSSLP exam and pass.

A (ISC)²® certification consultant recommended studying an array of material from[9], [10], [11], [12], and [13]. The CSSLP Prep Guide [3] is the only book currentlyavailable to explicitly prepare of the CSSLP examination. According to the trainingcourse instructor, one of the CSSLP Prep Guide's authors attended a beta version of theCSSLP training course in March of 2009. The author who took the CSSLP examinationread the CSSLP Prep Guide before attending the CSSLP training course. He found thebook somewhat valuable, but it also contained substantial extraneous material. It wascompiled by pasting material from the training course and other sources into the volume.The CSSLP Prep Guide's practice examination questions accentuate memorization ofdetails, while the actual CSSLP examination that the author took tested a candidate'sworking knowledge. (ISC)²® is scheduled to publish an exam preparation guide in fall,2010. [15]

4. CSSLP TRAINING COURSEThe CSSLP training course lasted five days. It met from 8:00AM to 5:00PM with

an hour break for lunch. It was especially fast-paced. The instructor taught from bulletitems in PowerPoint slides. With the intensity of the presentation of material, it was easyto experience information overload. The training course provided a book of thePowerPoint slides, including extensive notes for most of the slides.

The instructor, Mano Paul, was very knowledgeable. He is the author of severalCSSLP exam preparation whitepapers and is the author of the previously mentioned(ISC)²® CSSLP exam preparation guide. [15]

The training course is designed for a review rather than for learning the material forthe first time. It is essential that one have an understanding of the software developmentand software engineering processes, and of information security fundamentals, beforeattending the training. It is also helpful to have experience in computer security and tobe familiar with the best practices of secure software development. In this respect, thetraining course is consistent with the certification requirement of four years of experienceworking in the Software Lifecycle arena.

The training course session that one of the authors attended had 12 participants. Theparticipants included software developers, project managers, system architects, andsecurity managers plus one university professor. No single participant's backgroundencompassed all seven of the CSSLP domains. The less technical, more managerialparticipants had more difficulty understanding the technical portions of the domains thanthe developers had in understanding the managerial aspects of them.

While the training course is beneficial to examination preparation, it does not feedthe participants examination answers. The CCSLP exam focuses on the application of

JCSC 26, 1 (October 2010)

52

knowledge of secure software development rather than memorization of terms andprocedures.

Besides reading the CSSLP Prep Guide and participating in the training course, theauthor spent a significant amount of time reading the notes in the training course book.These notes were an additional valuable examination preparation. Beyond taking thetraining course, a significant amount of additional studying is indispensible to gain thedepth of understanding needed to do well on the examination.

5. CSSLP EXAMINATIONThe agreement that the author signed prior to taking the CSSLP examination

prohibits him from discussing specific contents of that examination, but he can offersome tangential information. The test was designed by psychometricians. [4] It has 175multiple choice questions with four possible answers per question. 150 questions aregraded; 25 are for research purposes. A multiple choice test may sound deceptively easy,but the author found that the examination was quite challenging. The questionsnecessitated careful reading.

Obtaining the CSSLP is costly. With early registration, the training course costs$2,495 and the examination costs $549. Recertification is required every three years,which consists of earning 90 continuing professional education (CPE) hours with aminimum of 15 CPEs earned each year plus paying an annual maintenance fee of $100.

6. BENEFITS TO PROFESSIONALSThe new CSSLP certification is not without critics. To begin the CSSLP

certification process, (ISC)²® allowed candidates to be "grandfathered in" to thecertification by uploading their resumes, writing four essays, having a CISSP vouch forthem, and paying a $650 fee. This ended on March 31, 2009. Security Researcher ChrisEng [7] argues that this was a poor way to validate candidates' credentials. MaryDavidson [8], Chief Security Officer of Oracle, sees the CSSLP as mainly a money makerfor (ISC)²®. She writes, "I didn't think it was that hard to get nor do you really have todemonstrate much actual expertise in development practice. The hard part of "securesoftware lifecycle" is doing it, not writing about it, taking exams about it, or the like."

Preparation for the CSSLP examination does require that the candidate learn thecurrent best practices in secure software development. It covers topics such as misusecases, threat modeling, and static code analysis. It also requires knowledge of commonvulnerabilities such as buffer overflow, cross-site scripting (XSS), and SQL injection.Unfortunately, the common vulnerabilities are not addressed at a technical level. Thisallows non-developers to obtain the CSSLP certification. Theoretically, any of thestakeholders in the SLC can become CSSLP certified. (ISC)²® maintains that thesestakeholders include Auditors, Application Owners, Business Analysts, and IndustryGroup Delivery Heads, among others.[2]

By avoiding specific technologies, the CSSLP examination does not certify that acandidate is prepared to apply security to a specific vendor's products or to a specificprogramming language. An alternative certification is the SANS GIAC Secure Software

CCSC: Midwestern Conference

53

Programmer (GSSP) Certification. [16] The GSSP offers specific certifications for C,Java, and .NET developers. Thus, a professional might wish to combine CSSLP andGSSP.

Certifications are valuable for job candidates in an increasingly competitiveemployment environment. Some maintain that certifications prove only that you can takea test, but Wilhelm [17] maintains that certifications are important for several reasons.He maintains that a certification demonstrates to an employer the motivation to improveskills and to compete in the business environment. Some government contracts requiresome level of security certification on IT projects, similar to a professional engineer ona construction project. "All else being equal, certifications and degrees are thedifferentiators between employees and can improve your chances of a raise, promotion,or provide an escape from a layoff." [17]

7. BENEFITS TO COLLEGE EDUCATORSComputer science and Information Technology are applied fields. Understanding

industry trends and expectations should improve curriculum, and add value to the degreesthat our students obtain. One of the authors teaches courses in software engineering andin secure software engineering. Studying for the CSSLP examination gave him materialto add to these courses. Since this particular certification is based on a substantial amountof experience, the process validates that the professor is grounded in industry-valuedskills. The experience is also valuable in advising students concerning certification.

The CSSLP certification process, from the perspective of the educator, can bridgethe gap between industry and academia. It is not just the students who wish to competeand upgrade skills, but professors too may have another avenue in addition toconferences, journals, and personal research to connect to the students and the workplace.

8. CONCLUSIONObtaining the Certified Secure Software Lifecycle Professional (CSSLP)

certifications requires candidates to prove that they have working knowledge in buildingsecurity into the complete software development lifecycle. Exam preparation coalescessecurity knowledge with software development expertise in a positive way. Preparationand taking the examination requires time and a large expense. At this time, the lack ofalternatives to adequately prepare for the examination except by taking the trainingcourse means that (ISC)²® has a monopoly on examination preparation.

Preparing for and taking a certification examination can improve an educator'sexpertise and ability to successfully teach a specialty such as secure softwaredevelopment. However, in the case of CSSLP certification, only time will determine ifthe resources required to prepare for and to take the specific examination are worthwhile.

In the meantime, there remains a larger question of where industry certification fitsin the Computer Security curriculum. In their report on the current state of informationassurance education, Cooper, et al, recognized the role of certification as a means todemonstrate knowledge, and as an integral part of the history of information assuranceeducation. [18] As demand for security professionals increases worldwide, certification

JCSC 26, 1 (October 2010)

54

may indeed contribute to a system of global guidelines and standards. In addition toaccreditation of a computer security or information assurance program, it is conceivablethat there will be licensing after several years of practice or internship, as in accounting,engineering and law professions. Only time will tell.

REFERENCES

[1] (ISC)2 Security Transcends Technology, About (ISC)2, https://www.isc2.org/aboutus/default.aspx retrieved March 15, 2010.

[2] (ISC)2 Security Transcends Technology, Who needs CSSLP?,https://www.isc2.org/csslpstakeholder/default.aspx, retrieved March 15, 2010.

[3] Kurtz, Ronald L., Fry, Alexander J. The CSSLP Prep Guide: Mastering theCertified Secure Software Lifecycle Professional, Wiley, 2009.

[4] Wikipedia, The Free Encyclopedia, Psychometrics,http://en.wikipedia.org/wiki/Psychometrics, retrieved March 15, 2010.

[5] (ISC)2 Security Transcends Technology, Certified Secure Software LifecycleProfessional, https://www.isc2.org/csslp-certification.aspx, retrieved March 15,2010.

[6] (ISC)2 Security Transcends Technology,https://www.isc2.org/certification-register-now.aspx, retrieved March 15, 2010.

[7] Chris Eng, (ISC)2's Newest Cash Cow: The CSSLP Certification,http://www.veracode.com/blog/2008/09/isc2s-newest-cash-cow-csslp/, retrievedMarch 15, 2010

[8] Prison Planet Forum, Congress Blackmailedhttp://forum.prisonplanet.com/index.php?topic=140685.0, retrieved March 15,2010

[9] Secure Software Assurance: A guide to the Common Body of Knowledge toProduce, Acquire, and Sustain Secure Software, S. Redwine, Ed., USDepartment of Homeland Security, 2005.

[10] MSDN Windows Developer Center, The Trustworthy Computing SecurityDevelopment Lifecycle, Steve Lipner and Michael Howard, Microsoft, March2005. http://msdn.microsoft.com/en-us/library/ms995349.aspx , retrieved March15, 2010.

[11] OWASP: http://www.owasp.org/index.php/Main_Page

[12] Microsoft Security Site for Developers:http://msdn.microsoft.com/en-us/security/default.aspx , retrieved March 15,2010.

[13] Howard, M., Lipner, S., The Security Development Lifecycle, Microsoft Press,2006.

[14] McGraw, Gary, Software Security: Building Security In, Addison Wesley, 2006.

CCSC: Midwestern Conference

55

[15] Paul, Mano, Official (ISC)2 Guide to the CSSLP, (ISC)2 Press, October 2010.

[16] GIAC Secure Software Programmer (GSSP) Certification,http://www.sans-ssi.org/certification/, retrieved March 15, 2010.

[17] Wilhelm, Thomas, Professional Penetration Testing, Syngress, 2009.

[18] Cooper, S., Nickell, C., Piotrowski, V., Oldfield, B., Abdallah, A., Bishop, M.,Caelli, B., Dark, M., Hawthorne, E. K., Hoffman, L., Pérez, L. C., Pfleeger, C.,Raines, R., Schou, C., and Brynielsson, J. 2010. An exploration of the currentstate of information assurance education. SIGCSE Bull. 41, 4 (Jan. 2010),109-125. DOI=http://doi.acm.org.proxy.lib.muohio.edu/10.1145/1709424.1709457.

___________________________________________

* Copyright is held by the author/owner.

56

TEACHING WITH EMBEDDED XINU: AN INEXPENSIVE

HANDS-ON LABORATORY THAT PROMOTES STUDENT

ENGAGEMENT WITH OPERATING SYSTEMS,

ARCHITECTURE, AND NETWORKING CURRICULA*

CONFERENCE WORKSHOP

Dennis Brylow (contact person)Department of Mathematics, Statistics

and Computer ScienceCudahy Hall

Marquette University1313 West Wisconsin Avenue

Milwaukee, WI 53233(414) 607-8756

[email protected]

Paul RuthDepartment of Computer and

Information ScienceUniversity of Mississippi

219 Weir HallUniversity, MS 38677-1848

(662) [email protected]

ABSTRACT:The Nexos Project is an NSF-funded effort to develop inexpensive, hands-on,

embedded system laboratory experiences with a high “wow factor" at multiple levels ofthe college computer science curriculum. This workshop will share ready-madecurriculum resources that have been used successfully to teach hardware systems,operating systems, real-time/embedded systems, networking, and compilers with theEmbedded Xinu platform at several colleges/universities. Commodity wireless routerhardware or equivalent virtual machines, combined with freely-available software andtools, make for a powerful and flexible learning platform without having to fake anycomponents. Come see what Nexos has to offer for your program.

INTENDED AUDIENCE: Undergraduate-level and introductory graduate-level educators interested in

hands-on laboratory experiences in their systems courses.

CCSC: Midwestern Conference

57

PRESENTER BACKGROUND: Dr. Dennis Brylow is an Assistant Professor of Computer Science at Marquette

University. He has been using Xinu as a research and teaching platform for five years incourses ranging from lower-division computer organization and operating systems toupper-division and graduate-level embedded systems and networking courses. He hasported Xinu to multiple RISC platforms, and pioneered the use of inexpensive consumerdevices as a target platform for experimental operating systems laboratories. Brylow'sprior Xinu papers in SIGCSE, WCAE (Workshop on Computer Architecture Education),WESE (Workshop on Embedded Systems Education) and SIGBED Review have outlineda coherent sequence of embedded system projects that can be woven through the standardundergraduate CS curriculum; this workshop will explore how Embedded Xinu is beingused in a variety of academic institutions. Development of the Nexos Project was fundedin part by the NSF Course, Curriculum and Laboratory Improvement (CCLI) program(DUE-CCLI-0737476) and by Cisco Systems.

Dr. Paul Ruth is an Assistant Professor of Computer Science at the University ofMississippi. He adopted Xinu as a platform for teaching systems courses during thesummer of 2008. He has replicated Brylow's Linksys WRT54GL-based Xinu laboratoryat the University of Mississippi and has used the Xinu laboratory for teaching OperatingSystems courses at the undergraduate and graduate levels over many semesters. Further,he has ported the core Xinu projects to the QEMU machine virtualization platform as aneffort toward reducing the initial cost of adopting Xinu and to extend the abilities of Xinuto internet-scale networking projects.

Brylow and Ruth have previously led nearly a dozen workshops for educators, eithertogether or individually.

MATERIALS PROVIDED:Each participant will be provided with the following: 1. A "HowTo" guide on building the laboratory hardware, cross-compilation tools, and

laboratory software. 2. The base Xinu system and a primer on modifying the system in order to design

assignments appropriate for their courses. 3. Our curriculum guide for several existing courses. 4. An account on an existing Xinu laboratory with which they can experiment after the

workshop. 5. Directions on using QEMU virtual machines with which they can experiment with

many of the Xinu assignments using their own PCs.

AGENDA:The workshop will be divided into three primary sections: 1. Constructing an Embedded Xinu Laboratory [1hr]

· Modifying a Linksys WRT54GL [25mins] · Server hardware requirements/con_guration [15mins] · Software Tools (Con_guration and Use) [20mins]

JCSC 26, 1 (October 2010)

58

2. Curriculum [1hr] · Documentation and Online Help [15mins] · Curriculum (Assignments) [30mins] · Automated Testing [15mins]

3. Hand-on Laboratory Experience [1hr] · Process Scheduling a typical operating systems lab assignment [50mins] · Grade the projects [10mins]

AUDIO/VISUAL AND COMPUTER REQUIREMENTS:We require wireless Internet access, a digital projector, and a whiteboard /

chalkboard. Laptop recommended. All OSs are supported, but wireless networkconnectivity and a secure shell client will be required.

___________________________________________

† This project is supported in parts by the Motorola Foundation and NSF grant CCF

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

59

RHEA: A STUDENT-DRIVEN TOOL FOR ENHANCING THE

EDUCATIONAL EXPERIENCE* †

Andrew W. HaddadSchool of Electrical and Computer

EngineeringPurdue University

465 Northwestern AvenueWest Lafayette, IN, 47907

(317) [email protected]

Mireille BoutinSchool of Electrical and Computer

EngineeringPurdue University

465 Northwestern AvenueWest Lafayette, IN, 47907

(765) [email protected]

ABSTRACTRhea is a student-driven on-line learning tool developed by a team of studentsat Purdue University. Rhea is a new teaching paradigm where students take acenter stage: not only are students teaching each other, but they are also thearchitects and developers of their own learning tools. The core feature of Rheais a wiki that enables students across campus to create and share learningmaterial. Student-created learning material is valued both as a personallearning exercise and as teaching material. Rhea also provides other featuresincluding a dropbox for files and assignments, a double-blind peer reviewsystem, and on-line testing system. We are inviting other universities to jointhis project. There is also a possibility to include K-12 schools.

JCSC 26, 1 (October 2010)

60

1. INTRODUCTIONRhea is a Purdue-wide on-line learning resource developed ``for students by

students''. The goal of Rhea is for students from all disciplines, and from different years,to have the opportunity to teach each other the material they learn in different classes,understand the connections between the different classes, as well as the connectionsbetween the class material and outside applications. Anybody in the world can browsethe content of Rhea at www.projectrhea.org/. Anybody with a Purdue account - or guestaccount - can log into Rhea and contribute content. Rhea is developed and maintained bya team of student volunteers. As a result, Rhea provides software design challenges andleadership opportunities for students. Similar to the student population it serves, Rhea isan evolving tool.

The student development team consists of undergraduate and graduate students. Theteam takes responsibility for maintaining and managing the server, leading the softwaredevelopment efforts, as well as recruiting and training other team members. For example,the team has organized evening workshops in which they teach basic computer skillsneeded to develop and maintain Rhea (e.g., PHP, CSS, MySQL). These workshops arehosted in the Rhea Development Lab.

The idea of developing Rhea arose from general concerns about the need to betterconnect the material taught in different courses offered at Purdue. For example, studentsoften expressed the wish to learn about how the material they are currently learning willbe utilized in future classes. On the other hand, instructors often feel the need to pointstudents towards the material already covered in a previous course. To address theseconcerns, in 2007 it was suggested to a group of undergraduate students in PurdueUniversity’s School of Electrical and Computer Engineering, that they begin developinga university-wide collective learning tool where students could work together to connectthe material they learn in different classes, including the background material that theyhave learned early on in the curriculum. Work on Project Rhea began soon after and hascontinued since.

In Section 2 we describe some of the main features of Rhea. In Section 3 wecontrast these features with those of similar technologies including Wikipedia, Moodle,and Blackboard. Section 4 discusses current usage of Project Rhea. We conclude inSection 5.

2. RHEA, ITS FEATURES, AND INITIATIVESRhea is run on a single Dell Machine, running Linux, Apache, MySQL and PHP

(LAMP). The server is housed by Purdue’s Engineering Computer Network andmaintained by student volunteers. Project Rhea has many features and initiatives,created/integrated by students to support their collaborative learning efforts, some ofwhich are described below.

CCSC: Midwestern Conference

61

2.1. Campus-Wide WikiRhea’s wiki is a customized implementation of the MediaWiki free software wiki

package. This package provides Rhea with the foundation necessary to allow users tocontribute content and create tools – in some cases as MediaWiki extensions. Login tothe wiki is controlled by Purdue’s LDAP server. The campus-wide wiki is used as aplatform for users to develop differing perspectives of the content therein and to discussand compare these perspectives. All the while, students and instructors alike are given theopportunity to witness the learning process. Some instructors use Rhea to host theircourse wiki. These course wikis, along with the material associated with it, are kept fromsemester. For easier retrival, these are organized according to course numbers andsemester/instructor. This allows for reuse of material by both students and professors overtime.

2.2. ToolsAll of Rhea’s tools are either open-sources software solutions that were selected and

integrated by students, or software tools created by students. One good example offeatures being initiated by students is in the case of LaTeX Equation editing. When Rheafirst began being used, there was no possibility to easily post equations on the pages. Thestudents who were using the site decided this feature should be implemented, anddetermined that LaTeX was the best and easiest way to proceed. Students then proposeda solution and volunteered to implement it.

Some added features include, but are not limited to:1. Syntax Highlighting for Code - 100+ languages, including most common

languages - e.g. C, Java, Lisp, PHP and many more - are supported for syntaxhighlighting using the Generic Syntax Highlighter (GeSHi).

2. Personal and Homework Dropbox - Students and Instructors alike use dropboxesas both personal storage and for assignment submission.

3. WYSIWYG Editor - Students with little or no knowledge of the MediaWikiMarkup are not excluded from making additions to Rhea. The WYSIWYG editor is verysimilar to most word processors, with the addition of wiki specific functionality e.g. UserSignatures, Math Equations, Image and File Upload.

4. Rhea Online Assessment Resource (ROAR) - ROAR is a tool created by twostudent volunteers. It offers students and course instructors the ability to create tests forpractice or credit. The tests are automatically graded by the system.

5. Peer Review Tool - The peer review system is an add-on to the personal andhomework dropbox. After all assignments have been submitted, students are randomlyassigned another student’s assignment for review. The review is double-blind andinstructors can comment on both the review and the assignment through a graphical userinterface.

JCSC 26, 1 (October 2010)

62

$2.3 Liaisons InitiativeThe goal of the liaison system is to help validate the importance of the curriculum

content, as well as its relevance in the outside world. More precisely, liaisons enablealumni, as well as research labs and company representatives, to personally share theirperspective on the curriculum material with the students through Rhea. The number ofindividuals and companies involved in the liaison program is continually increasing.

Figure 1. Rhea's dropbox application; Liaisons can be see on theleft side of the page.

2.4 Writers-in-Residence InitiativeUntil recently, Rhea’s content has been developed by students either voluntarily or

as part of class exercises. But, thanks to the support of the Motorola Foundation, a new“Writer-in-Residence” program, which financially supports the work of a few selectstudent writers, has begun.

Sponsored writers are hand-selected students who have already demonstrated theircommunications abilities on Rhea. After being selected, they begin being paid an hourlywage to create and publish content related to different courses and different disciplineson Rhea. For example, they can go back to the courses they have taken in their first yearat Purdue and comment on the material they have learned in these course and itsimportance for what comes next in the program. They can also create pages summarizingthe important material of a course they have taken, from their more mature perspective.

The program has been very successful. Besides stimulating the creation of multi-disciplinary content, it has enabled these students to accumulate a portfolio of electronic

CCSC: Midwestern Conference

63

material, which they have been able to use as part of their graduate school and/or jobapplications.

3. SURVEY OF SIMILAR TOOLSTools that are similar in functionality to Rhea are available. Though this project -

in its initial conception - was not based on any previous work, there is similar work beingundertaken in the study of Open-Source Social Networking in Education - both in K-12and higher education. The work contained herein falls under the umbrella of Computer-supported Collaborative Learning (CSCL) tools and Virtual Learning Environments(VLE). Both Moodle and Blackboard, surveyed below, can be characterized as CSCLtools and VLE.

3.1. WikipediaIn contrast with Wikipedia, where experts collectively build an authoritative

reference to be used as a learning resource, Rhea is entirely driven by Purdue students.This approach has several advantages.

1. In addition to the content, all aspects of Rhea’s functionality, design and softwareare defined and controlled by students. So even though Rhea allows for faculty input, itis not needed for Rhea to thrive.

2. The content is perfectly tailored for the students. Both the level of the materialand the language used to explain it are naturally adapted to the students. The content itselfis also in line with Purdue’s curriculum.

3. Contributing enhances learning. As any teacher knows, there is no better way tolearn something than to teach it. So contributing content to Rhea, or appending to otherpeople’s content, helps students to learn better.

4. Though seen as a drawback for Wikipedia as a serious academic reference [3],the fact that the content reflects student’s mistakes and misconceptions allows for betterfeedback to the instructor, and an opportunity to help students correct their mistakes.Further more, common errors can be used constructively, by students and instructors, tolearn to make fewer mistakes.

5. Rhea is self-adaptive. It evolves as the students evolve and the world around themevolves

3.2 MoodleProject Rhea includes many features which one might recognize in the Course

Management System (CMS) Moodle. However, there is at least one important distinctionbetween Project Rhea and Moodle. Moodle is software with the purpose of managingcourses, and including a Wiki Module. On the other hand, Rhea’s main feature is wikisoftware and tools with course management extensions. This very simple distinctionmakes available some important advantages.

JCSC 26, 1 (October 2010)

64

1. Because Rhea’s content is publicly available, the impact of Project Rhea goes farbeyond the Purdue campus. In particular, it has the potential to help reach high schoolstudents country-wide and beyond, in addition to many other potential Purdue students.

2. Because Project Rhea is built on the modular structure of MediaWiki, plug-inscan be created on an as-needed basis. Students involved in the creation of these plug-infeatures gain the benefits of being part of software engineering team: a feeling ofownership; a sense of pride; non-trivial programming experience. Rhea users benefitbecause not only can they take advantage of plug-in tools, but they also get to see therealization of their feedback.

3. Moodle's Wiki Module is based on an older wiki package, erfurtwiki. Theadvantage of using the popular MediaWiki software is that the user will find theenvironment recognizable. Users with knowledge of MediaWiki Markup Language canstart editing immediately (knowledge of the markup language is no longer necessarybecause of the implementation of a WYSIWYG editor Section 2.2).

There are some features of Moodle that would be worth implementing. There hasbeen discussion of incorporating a Chat Module as well as a Survey Module.

3.3 Blackboard: Community Engagement & Content ManagementRhea contains features similar to Blackboard's Community Engagement and Content

Management systems. Blackboard's Community Engagement is similar to a forum in thatusers, groups, departments and schools can talk amongst themselves and leave comments.The students who use Rhea have take advantage of Rhea's adaptability in just this way.Discussions are maintained on pages and users sign their posts and comments using thebuilt-in MediaWiki signature and timestamp.

Rhea's dropbox and assignment system are similar to Blackboard's ContentManagement System - which may have been better named a file management system.

The obvious advantage of Rhea over Blackboard is that Rhea's code-base is underthe GPL and its content is licensed under CC-BY-SA (Creative Commons - Attribution -ShareAlike) and GFDL (GNU Free Documentation License). This means that the contentand code is free to be shared and improved by other institutions.

4. USE AND EVALUATIONOver the last three years, several hundred students, as well as thirteen professors and

three instructors have actively utilized Rhea. However, the initial development effortsbegan with a single section of an engineering course, and a positive impact in thestudents’ interest and performance was observed even at that level. Therefore, we believethat small schools could benefit from such a tool as well. The Rhea user demographicconsists primarily of students in the areas of Mathematics and Engineering with someinvolvement by students in Electrical and Computer Engineering Technology andComputer Science.

Student involvement in Rhea varies depending on its usage in the classroom. Fromthe evaluation of Project Rhea, it has been seen that courses in which students aresuggested to participate, but are given no incentive to do so, reap about 5% student

CCSC: Midwestern Conference

65

involvement. In courses where students are incentivized with extra credit, studentparticipation jumps to about 60%. Worldwide, Rhea boasts 52,000 visits since February2009 - when data began being captured - including 27,000 unique visitors from 142countries around the word. The most common countries being the United States, theUnited Kingdom, India, Canada, and Germany.

Project Rhea's success is measured in parts by1. the quality of the software developed through this system, which is ultimately

determined by usage2. the increase in student participation in Project Rhea.3. the increase in student contributions to the website and general traffic on the

website. The above is tracked electronically and analyzed using Google Analytics. ECE

students involved in Project Rhea are using digital signal processing techniques toanalyze the site’s statistics.

It is important not only to evaluate Rhea's success based on usage trends. As well,success is based on student’s perceptions of the use of wikis as collaborative learningtools. Rhea is only successful if the students who use Rhea feel it is contributing to theireducation. Similar evaluations have been used to assess the success of other wiki-basedtools in blended learning [1]. A combination of open-ended and close-ended questionson the attitude of students and the demographic of students collaborating on Rhea couldteach us significantly more than usage trends.

5. CONCLUSIONSRhea is a new paradigm of teaching and learning where students take the center

stage - not only are students teaching each other the material they learn, but they are alsothe architects and developers of their own learning tools. Students thus act asentrepreneurs, problem solvers and designers, as well as teachers and mentors for theirpeers. Their contribution to the projects helps them learn and helps other students learnas well. Prior research has investigated the use of Wikis in collaborative learning. It hasbeen shown that introducing wikis into the learning environment can be effective atincreasing learners' satisfaction, improve their learning and their writing ability, andincrease learner interaction with other learners and providers; thus changing the learners'role from passive to active learners, allowing them to better create and retain knowledge[2]. Rhea goes one step further by granting students the opportunity to develop not onlythe content but also the tools that will best satisfy their needs.

The Rhea development team is enthusiastic about the involvement and contributionof new institutions, including secondary schools. Project Rhea also welcomes institutionsthat would like to take on independent sister-sites in their own schools – help could begiven to jumpstart such projects. It would be interesting to compare the evolution of theseprojects in schools with a similar curriculum but differing student populations.

JCSC 26, 1 (October 2010)

66

6. REFERENCES

[1] Marija Cubric. Wiki-based process framework for blended learning. In WikiSym’07: Proceedings of the 2007 international symposium on Wikis, 11–24, 2007.ACM.

[2] Shaohua, H., & Peilin, W. Web 2.0 And Social Learning in a Digital Economy.Paper presented at the IEEE International Symposium on Knowledge Acquisitionand Modeling Workshop,21-22, 2008.

[3] J. Kolbitsch and H. Maurer. The transformation of the web: How emergingcommunities shape the information we consume. J-JUCS, Journal of UniversalComputer Science, 12(2):187–213, 2006.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

67

TEACHING GLOBAL ISSUES IN IT: AN INTERCULTURAL

COMMUNICATION APPROACH*

Elizabeth V. Howard and Martha PetroneMiami University Middletown

4200 N. University BlvdMiddletown, OH 45042

[email protected], [email protected]

ABSTRACTAsk any IT professional working in an international arena to name the biggestcontributor as well as challenge to a successful project and it will no doubt bethe importance of understanding cultural differences. Though a company mayhave the best technological solution, it may lose the business if the product ispresented without reasonable adaptation to the cultural values of the customer.Because of the importance of culture, we designed our Global and StrategicIssues in IT course using the principles for developing interculturalcompetence. Our goal in integrating these concepts was to begin to move ourstudents from an U.S. American-centric outlook to a more multiculturalworldview.

INTRODUCTIONInternational company, multinational corporation, international business, global

firm, supernational corporation, BRIC, AMER, EMEA, and Asia Pac are merely samplesof the many terms and acronyms associated with doing business globally. Businesses arebecoming increasingly internationalized and IT is central to this process. For example,an acquaintance living in the U.K. works for a company based in Australia who usessoftware developed by programmers in Portugal whose project managers are in Hollandand the software company is based in Scandinavia. Hasan and Ditsa [11] state that thereis a “belief that technology is culturally neutral and that the underlying process oftechnology development is uniform across countries, once basic economic and politicalconditions are met” but that failures often occur because of the cultural differences

JCSC 26, 1 (October 2010)

68

between the developer and the user. International business professionals tell us thatunderstanding cultural differences in international, multicultural teams is vital tosuccessful projects. [3, 5, 6, 7, 11, 12, 13, 15, 16].

WHY CULTURE?No matter where we are born, we are all cultural beings. The culture where we are

reared influences the way we see ourselves and our world. Both consciously andunconsciously it deeply affects our patterns of thought and action. Fundamentally,cultural values provide a framework that helps us answer the question, “Who am I in thisworld?” Geert Hofstede, a pioneer in cross-cultural studies of modern nations, definesculture, as we mean in this context, using the following [8]: “[Culture] refers to the waypeople think, feel, and act. Hofstede has defined it as ‘the collective programming of themind distinguishing the members of one group or category of people from another.’ The‘category’ can refer to nations, regions within or across nations, ethnicities, religions,occupations, organizations, or the genders. A simpler definition is ‘the unwritten rulesof the social game.’” We believe that until students are aware of their own culturalorientations, their capacity to be effective in their Global IT pursuits is limited.

Table 1 lists some of the major Intercultural Values Frameworks. Probably the threemost important dimensions for successful global IT projects are identity, power distance,and communication context. Of these three, the most important dimension is identitywhich encompasses a continuum ranging from individualism to collectivism sometimesreferred to as achievement to affiliation.

DIMENSION CULTURAL CONTINUUM*Identity Individualism—Collectivism*Power Distance Equality—Hierarchy*Communication (conflict) Direct—IndirectStatus Earned—AscribedAvoiding Uncertainty Risk Taking—SecurityTime Management Monochronic—Polychronic Decision Making Future—Past

Table 1. Intercultural Values Frameworks

There are only seven (7) countries in the Geert Hofstede research that haveIndividualism (IDV) as their highest dimension including the USA with a score of 91 [9].At the other end of the continuum are collectivistic cultures where the focus is onaffiliation rather than achievement. For our students, it is critical to recognize that thevast majority of the world tends toward collectivism (world average is 43). It is alsocritical to recognize that one value orientation is not more desirable than another. Theyare simply different.

The cultural continuum of power distance ranges from equality to hierarchy. Tobriefly illustrate these two concepts, consider the following comparison. In equalityorientated cultures, it would be common for people in different levels of an organizationto be on a first name basis. It is also likely that workers would be expected to take

CCSC: Midwestern Conference

69

initiative without being told specifically what to do. On the other hand, in hierarchalcultures, workers would use formal titles and never consider taking an action before beingtold to do so by their superiors.

One misconception that our students often have is that cultural differences happenonly across international borders. Within the U.S.A., our students will encounter manycultural differences whether between regions, within organizations, and among co-workers. Projections indicate that these students will have between 10 and 14 differentjobs, many which do not yet exist, in their work life [4]. Their ability to adapt to thecultural norms of their new locations, workplaces, and colleagues will be paramount totheir ability to succeed.

DESIGN OF THE COURSEFor this course, we chose to base the design of our course on the theoretical

framework in Table 2 [17, 19]. It may take a lifetime to reach the Multicultural Outlookof Step 5 and our goal in this course is to help move our students through as many stepsas possible. The first step towards developing a multicultural outlook is to firstunderstand one’s own culture. The single most important determinant of psychologicalset is one’s cultural of origin—which for our students is the U.S.A.

STEP 1: STEP 2: STEP 3: STEP 4: STEP 5:

UnderstandOne’s Own

Culture

Learning AboutOther Cultures

DeconstructingU.S. American

Culture

Recognizingthe Legitimacy

of OtherCultures

Developing aMulticultural

Outlook

Unconscious Incompetence ConsciousIncompetence

ConsciousCompetence

UnconsciousCompetence

Table 2. Theoretical Framework for Intercultural Communication CompetenceOne of our challenges was to design learning activities which kept the core focus

of Global IT while facilitating our students’ movement through the steps above. It is forthat reason that we decided to focus on the culture of Global IT. Students began thisexploration by investigating what Global IT meant within a single company ororganization. We identified many layers to explore as shown in Table 3, beginning withthe individual’s culture and moving through the various parts of the company.

Layers of Culture in Global IT in a Company or OrganizationYour culture of origin

Home culture (e.g. country) of the organizationOrganizational culture

Culture of ITCulture of your work group

Culture of others working in global IT in your organizationTable 3. Layers of Culture in Global IT

JCSC 26, 1 (October 2010)

70

For the first third of the course, we supplemented the students’ research withactivities that facilitated learning about their own cultural orientation, the culture ofspecific U.S.-based technology corporations, and the culture of the U.S.A. During thistime, we also had students engage in unexpected activities to simulate being placed intoa new culture and experiencing a mild form of culture shock. During the last two-thirdsof the course, teams of students studied specific countries. For example, one teamexplored Brazil while another China. The teams began by researching the culture anddemographics, and then moved on to the many aspects of the IT infrastructure coveredin the course.

Because of the unique approach of this course, finding a single textbook whichwould encompass both the IT and intercultural dimensions was not possible. Instead, weassigned readings from IT and intercultural journals and experiential activities developedfrom the collective expertise of the two instructors – a Communication professor withintercultural communication expertise and an understanding of the IT profession and anIT professor who has used a number of intercultural communication techniques whenteaching IT courses.

CLASS ACTIVITIES(Mis) Perceptions

At the beginning of the course, we asked students to estimate a number ofdemographics about IT. We then asked the students to search for the answers anddiscussed their accuracy and observations about the exercise. In order to generate adialogue on how perception affects how we interpret situations, we viewed a number ofoptical illusions (examples can be found on a number of websites includinghttp://www.scientificpsychic.com/graphics/). As the students themselves noted, anillusion may be obvious to one person yet it may not even be perceivable to someone else.

BarngaIn order to simulate the experience of being in a new culture, our class joined an Art

History class to play a game called Barnga [18]. We purposely chose to join a class thathad a significantly different content from our own class. In Barnga, participantsexperience what it is like to be placed into a situation where each team plays the samegame by a different set of rules. The participants are unaware that each team has differentrules and experience culture shock as one might experience when crossing culturalboundaries. Afterwards, the participants join in a discussion about their experience in thegame with guidance from the facilitator.

Dimensional Values InventoryAfter a brief lecture on Intercultural Values Frameworks (see Table 1), students

complete a Dimensional Values Inventory on the three most important dimensions ofIdentity, Power Distance, and Communication. For each of these dimensions, studentsmark the continuum for the following: personally held values, family value, dominantU.S. culture, their workplace, and for their assigned IT Company. The students reviewed

CCSC: Midwestern Conference

71

their own results and then drew conclusions from them. They then had an open discussionwith their classmates. Many were surprised to discover that they adapted daily in theirown lives—noting that the values in their workplace were quite different from those theypersonally held. As the discussion went on students began drawing on aspects of theircultural upbringing that contributed to the worldview they now held. They discussedaspects of identity including ethnicity, age, military experience, and gender which all hada bearing on their varied, yet somewhat similar cultural orientations.

Intercultural Development InventoryOne of the instructors is certified to administer and interpret the Intercultural

Development Inventory (IDI) developed by Bennett [1], which is based on Bennett’s [2]Developmental Model of Intercultural Sensitivity (DMIS). The IDI is a psychometric testused to determine an individual’s (or a group’s) DMIS stage and to provide guidance tomove to a later stage. DMIS is divided into six stages. The first three stages areethnocentric, that is, believing that one’s own group is the center of everything: Denial,Defense, and Minimization. The other three stages are ethnorelative, that is, that one’sown culture is viewed in the context of other worldviews: Acceptance, Adaptation, andIntegration. Each student met with the IDI-certified instructor for a personal coachingsession for movement to a later DMIS stage.

Cultural QuizzesAs will be described later, each student would be assigned a specific country to

research as part of a team. To prepare for that assignment, students took a number ofgeneral online cultural quizzes and on a few specific countries [14]. The students thenshared their results with the rest of the class. Finally, students searched for andcompleted cultural quizzes on the U.S.A. and discussed both their results and theirreactions to the types of questions that people from other countries think are importantabout the U.S.A. culture.

Online and In-Class DiscussionsThroughout the final two-thirds of the class, students engage in both online and face-

to-face discussions on various strategic IT topics. These topics include the Anti-Counterfeiting Trade Agreement (ACTA), The Global IT Report 2008-2009, Health IT,intellectual property, cloud computing, cybercrime, e-commerce, information security,wireless, and privacy.

ASSIGNMENTSJournal Entries

After each class session, students post a journal reflecting on the class session notingwhat they found particularly enlightening and what they found less relevant or didn’tunderstand. They also pose two (2) questions that they would like their classmates to

JCSC 26, 1 (October 2010)

72

discuss. The journal entries are especially important at the beginning of the semestersince most of the intercultural communication topics and activities are new to them.

Homework AssignmentsStudents complete a variety of homework assignments developed to follow the

intercultural communication competence design of the course. These assignments rangefrom researching the concept of Global IT to research about the U.S.A. culture and ITinfrastructure to research on a particular IT company.

Country ProfilesTeams of three (3) students were formed and assigned a specific country (we chose

countries in emerging markets) to research. Throughout the final two-thirds of the class,students prepared four (4) country profiles with each profile covering various topics [10].The topics for the first country profile included items such as demographics, languages,religions, customs, cultural dimensions, government, and economics. The topics for theremaining country profiles focused on IT issues, such as IT infrastructure, intellectualproperty, privacy, security, cybercrime, and disaster recovery. The grade for eachcountry profile had a collectivistic team score for the presentation and an individual scorewhere each student had to evaluate their classmates’ presentation.

Term ProjectThe term project was for each team to create an electronic handbook on doing

business in IT in their assigned country for a fictitious consortium of internationaltechnology corporations. The grade was composed of three parts: a collectivistic teamscore for the electronic handbook, a collectivistic team score for the presentation, and anindividual score for a final reflective paper that demonstrates understanding and insightsinto global IT.

CONCLUSIONThe pace of globalization may only be surpassed by the speed of technological

innovation and development. Our students are uniquely positioned at the intersection ofthese new horizons. However, being equipped with even the most sophisticatedtechnological knowledge and expertise will not be sufficient for them to succeed in thisnew world economy. As faculty, it is incumbent upon us to reach beyond our owndisciplinary boundaries to help facilitate their intercultural competence as well.

REFERENCES

[1] Bennett, M.J. & Hammer, M.R. The Intercultural Development Inventory (IDI)Manual. The Intercultural Communication Institute: Portland, Oregon, 1998.

CCSC: Midwestern Conference

73

[2] Bennett, M.J. Towards Ethnorelativism: A Developmental Model of InterculturalSensitivity, in R. M. Paige (ed) Education for the Intercultural Experience.Yarmouth, Maine: Intercultural Press, 1993.

[3] Bibikova, Anastasia and Ktoelnikov, Vadim, “Managing Cross-CulturalDifferences.” http://www.1000ventures.com/business_guide/crosscuttings/cross-cultural_differences.html. Visited March 12, 2010.

[4] http://www.bls.gov/news.release/pdf/nlsoy.pdf. Retrieved March 10, 2010.

[5] Carmel, E. and Mann, J.E.C. (2003). Teaching about information technology innations: Building and using the ‘Landscape of IT’ Repository. Journal ofInformation Technology Education. 2, 91-104.

[6] Duedahl, M., Andersen, J., and Sein, M. K. 2005. When models cross the border:adapting IT competencies of business managers. In Proceedings of the 2005ACM SIGMIS CPR Conference on Computer Personnel Research (Atlanta,Georgia, USA, April 14 - 16, 2005), 40-48.

[7] Gabbert, P. 2003. Globalization and the computing curriculum. SIGCSE Bull. 35,2 (Jun. 2003), 61-65.

[8] http://www.geerthofstede.nl/culture.aspx. Retrieved March 10, 2010.

[9] http://www.geert-hofstede.com/hofstede_united_states.shtml. Retrieved March10, 2010.

[10] (2005, July 19). Global Issues in Information Technology. Retrieved December01, 2008, from WSU Web site: http://ocw.weber.edu/information-systems-technology/global-issues-in-information-technology, which is licensed under thefollowing Creative Commons license: http://creativecommons.org/licenses/by-nc-sa/2.5/.

[11] Hasan, Helen; Ditsa, George. “The Impact of Culture on the Adoption of IT: AnInterpretive Study.” Journal of Global Information Management, January 1,1999. (http://www.highbeam.com/doc/1G1-65774168.html).

[12] Iyer, Aparna. “Cultural Differences in International Business.” Buzzle.com.(http://www.buzzle.com/articles/cultural-differences-in-international-business.html). Retrieved March 12, 2010.

[13] Kim, Chung S.; Peterson, Dane K. “Cultural differences in developers'perceptions of information systems success factors: Japan vs. the United States”Journal of Global Information Management, April 1, 2002(http://www.highbeam.com/doc/1G1-83665055.html).

[14] http://www.kwintessential.co.uk/resources/culture-tests.html Visited March 12,2010.

[15] Li, X., Hess, T. J., McNab, A. L., and Yu, Y. 2009. Culture and acceptance ofglobal web sites: a cross-country study of the effects of national cultural valueson acceptance of a personal web portal. SIGMIS Database 40, 4 (Oct. 2009), 49-74.

JCSC 26, 1 (October 2010)

74

[16] Little, J. C., Granger, M., Adams, E. S., Holvikivi, J., Lippert, S. K., Walker, H.M., and Young, A. 2001. Integrating cultural issues into the computer andinformation technology curriculum. SIGCSE Bull. 33, 2 (Jun. 2001), 136-154.

[17] Ortiz, A.M. & Rhoads, R.A. (2000). Deconstructing Whiteness as Part of aMulticultural Educational Framework: From Theory to Practice. Journal ofCollege Student Development, 41(1), 81-93.

[18] http://www.thiagi.com/pfp/IE4H/august2006.html Retrieved March 12, 2010.

[19] Ting-Toomey, Stella (1999). Communicating Across Cultures. Guildord Press: New York, NY. p. 52.

___________________________________________

* Copyright is held by the author/owner.

75

THE LOOKING GLASS IDE FOR LEARNING COMPUTER

PROGRAMMING THROUGH STORYTELLING AND HISTORY

EXPLORATION*

CONFERENCE WORKSHOP

Paul Gross and Caitlin KelleherDepartment of Computer Science and Engineering

Washington University in St. LouisSt. Louis, MO 63130

grosspa, [email protected]

Coincident with the difficulties of learning computer programming are two difficulties ofteaching programming: motivating students’ interest (particularly females and minorities) andhelping students to learn from examples. Research suggests storytelling can be a motivatingcontext for young women learning programming [2] and reusing code from given programs is apotential pathway for learning programming concepts [1]. The Looking Glass IDE supports bothby having new programmers build interactive 3D stories and offering interfaces for exploringexecution history.

Looking Glass, the successor to Storytelling Alice [2], is designed for new programmers tocreate interactive stories in 3D worlds. Users begin with a 3D scene then add and position objects,including characters from Electronic Arts’ ‘The Sims’ game, to use in their story. The story takesshape as users program their objects to do things such as ‘say’ something or ‘walk to’ anotherobject through a drag-and-drop interface that prevents syntax errors. The Java-like programminglanguage includes common language constructs such as if/else statements and for loops, as wellas constructs for iterating data structures and using concurrency. The visual appeal andinteractive capabilities of Looking Glass stories present natural opportunities for teaching aboutnew programming concepts and language constructs.

Looking Glass enables students to explore and construct knowledge about unfamiliarconstructs and concepts in example programs before the instructor introduces them formally.Using execution history tools integrated into Looking Glass, students can visually connect linesor blocks of code to their output. This process allows students to construct hypotheses about thebehaviors and uses of unfamiliar programming constructs in the executed program. Classroominstructors can later leverage students’ pre-formed hypothesis to expand and clarify students’knowledge.

As an example, an instructor can present loops by creating a program using a loop in avisually apparent way. To develop an initial understanding of the loop construct, students could

JCSC 26, 1 (October 2010)

76

run the program and then explore the program’s execution history by “re-playing” the loop itself,specific loop iterations, or the individual statements inside the loop, and observing the specificoutput effect of each. Successive replays of statements inside the loop can identify their function,replaying a loop iteration can show sequential execution, and replaying the entire loop can showthe loop’s repetitive nature. Research suggests this process is a potential pathway for learningprogramming concepts [1].

WORKSHOP DETAILSThis workshop will be a hands-on tutorial of the Looking Glass IDE. Participants will

initially construct a 3D scene and write simple stories. We will then provide example programsillustrating language constructs, instruct participants on how to use the execution history tools toexplore the constructs, and then discuss participants hypothesis about the constructs as in a regularclassroom setting. Participants will then incorporate language constructs into their programs,share their programs with other participants, and reuse from programs we provide and otherparticipants shared programs. Each participant will have freedom to design stories they findmotivating. We will provide each participant with a copy of Looking Glass and hands-on tutorialmaterials.

REFERENCES

[1] Gross, P., Herstand, M., Hodges, J., and Kelleher, C. A code reuse interface for non-programmer middle school students. In Proc. of Intelligent User Interfaces (IUI), 2010,pp. 219-228.

[2] Kelleher, C., Pausch, R., and Kiesler, S. Storytelling alice motivates middle school girlsto learn computer programming. In Proc. of Computer Human Interaction (CHI), 2007,pp. 1455-1464.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

77

RAY TRACING AS AN OBJECT-ORIENTED EXAMPLE FOR

CS 1*

Ryan L. McFall, Charles A. CusackDepartment of Computer Science, Hope College

Holland, MI 49423616-396-7952, 616-395-7271

[email protected], [email protected]

ABSTRACTThe object-oriented paradigm is the most popular programming paradigm inuse today. The benefits of object-oriented programming, such aspolymorphism, inheritance, and support for encapsulation are well-known.However, smaller applications such as those typically assigned in a standardCS1 course cannot fully demonstrate the utility of the object-orientedapproach. In this paper, we describe the use of an object-oriented ray-tracerin our CS1 course. This application is sufficiently large for the benefits of theobject-oriented approach to be seen, and has the benefit of being intrinsicallyinteresting and motivating to students. Students have successfully completedthe tasks we have given them and have found the application to be challenging,yet interesting. The software and accompanying assignments are freelyavailable to faculty wishing to use them in their courses.

INTRODUCTIONMany programming-first CS1 courses use the object-oriented paradigm to teach

programming concepts (exceptions include using languages such as Scheme). Thehallmarks of the object-oriented approach include polymorphism, inheritance, and strongsupport for encapsulation. However, use of these features is generally not necessary forsmaller projects, particularly projects of the size that are assigned to students in CS1 orCS2 [1, 3]. While these students are exposed to these concepts through the use of thestandard Java libraries, they often could complete the course projects without using these

JCSC 26, 1 (October 2010)

78

features. In fact, using them for such small-scale projects is generally overkill and mayeven convolute the solution to the problem.

A perusal of the examples presented in introductory Java programming textbooks[2, 5, 6, 8, 9] shows the following examples used to explain object oriented concepts: ! animals, vehicles, shapes, people (employees, students, faculty), media (DVDs,

CDs, video games), and buildings are often used, often as examples of inheritancehierarchies

! GUI frameworks such as the Swing components are presented as an example ofwhere object-oriented techniques can be helpful, but students don’t often developGUI frameworks in CS1, and the objects aren’t necessarily natural objectsA more thorough review of object-oriented examples was recently compiled [3];

objects described in those examples are of a similar nature to the ones we found above.In our experience, students don’t find these examples motivating, nor do they frequentlyrequire students to implement an application substantial enough to benefit from the useof object-oriented techniques in a substantial way.

Of course, one of the reasons that examples used in introductory courses tend to besmaller is the lack of experience and knowledge that students in such courses possess;assigning them the task of designing and implementing a large, complex application inCS1 is unlikely to be successful. Allowing students to develop objects that are part ofa larger application provides an appropriate balance between the need for them to learnhow to develop meaningful objects and learning how to design class hierarchies to designa solution for a large problem. Giving examples of effective object-oriented designsbefore asking students to create such designs seems likely to lead to better studentdesigns.

The application we have chosen to implement the approach described above is a raytracer - a particular approach to rendering computer graphics that can generate detailed,realistic images. Students learn about the design of a large application by interacting withand understanding the framework code, and gain experience developing and testingcomplete, constrained classes that fit into our framework so that something interestingcan be rendered. It was our hope that students would be motivated by the graphicalnature of the output, and that they would see how a well-designed object-orientedframework simplifies the development of new functionality. The scope of a ray-traceris large enough that many assignments, of varying levels of sophistication and size, canbe easily generated.

Matzko and Davis have also reported on successfully engaging students through raytracer development [7]. Their work asks students to develop an entire ray traceressentially from scratch in C/C++ development, with students who have already takenCS1 and CS2. While they have transferred their graphical approach to CS1, they havefocused on other image processing applications in that course. They argue that using aprocedural language (C) in a first course is a good approach, since students have a hardenough time learning fundamental programming concepts such as variables and loops,without needing to try to understand how to design a class to model some object. WhileCS1 students are not ready to design appropriate class hierarchies, they can use andunderstand them, and the ray tracing approach can be used at the level of CS1 in thisway.

CCSC: Midwestern Conference

79

A BRIEF OVERVIEW OF RAY TRACINGRay tracing is a computer graphics technique used to generate extremely realistic

renderings of scenes. A ray traced scene consists of several objects located in space,along with a "camera" describing the viewer's location in space and the direction thatviewer is looking. The portion of space visible to the viewer is called the view plane.Ray tracing works by breaking the view plane up into a rectangular grid of points, calledpixels, and then "shooting" rays from the camera through each pixel in order to determinewhich object in the scene is hit by the ray first. The pixel's color is determined based onthe color of the hit object, its location in relation to the scene's light sources, andproperties of the object such as reflectivity and transparency. Once rays through all thepixels in the view plane have been traced, the scene can be drawn.

The mathematics needed to build a ray tracer is relatively straight-forward, andconsists primarily of some linear algebra; in particular, no calculus is needed. Obviouslymost CS 1 students will need an introduction to the mathematics.

SOFTWARE ARCHITECTUREOur implementation, patterned after the architecture in [4], consists of three main

packages: the math package, the objects package, and the raytracer package. Theinterfaces in the math package define the functionality associated with the mathematicsneeded to implement a ray tracer. Some of the important interfaces in the mathematicspackage are Ray, Vector, Point, and Matrix. Classes implementing these interfacesprovided; however, the framework uses a factory class to create instances of objectsimplementing these interfaces and students can modify the factory to plug their ownimplementations in to the application to see their code in use.

The math package provides an opportunity to introduce exceptions, since not allMatrix objects can be multiplied. Furthermore, vector cross product is only defined forthree dimensional vectors, and so it is defined to throw an IllegalArgumentException ifa non-three dimensional vector is passed as an argument to the cross product method.

Figure 1 shows the classes in the objects package, which represent the types ofobjects that can be rendered in a scene.

At the root of the class hierarchy is the ThreeDimensionalObject interface. Theprimary method of interest in this interface is hitTime(Ray r). This method isresponsible for determining when, if at all, the ray represented by r hits a particularThreeDimensionalObject. Implementing this method lies at the heart of ray tracing.Since three dimensional objects can be hit multiple times by any given ray, this methodreturns a List of HitRecord objects, which contain information about the time the hitoccurred, the object that was hit, and the normal vector to the object at the point of intersection.

JCSC 26, 1 (October 2010)

80

The abstract MathematicalObject class is used to represent geometric objects thatcan be described mathematically, such as planes, spheres and cylinders. OtherThreeDimensionalObjects might be objects such as arbitrary convex polyhedra orunions/intersections of other geometric objects.

When modeling scenes, generic versions of these objects are often transformedusing operations such as scaling, translation and rotation. For example, an ellipse can becreated from a generic sphere through a non-uniform scaling. Writing implementationsof hitTime that take such transformations into account requires a good deal ofmathematical sophistication. However, as long as the inverse of the transformation thathas been applied to any generic object is known, the time a transformed version of theray r hits the generic (untransformed) version of the object can be used. Thus theimplementation of MathematicalObject’s hitTime method is as follows:Ray transformed = ray.transform (inverseTransform);return genericHitTime (transformed);

Note that genericHitTime is an abstract method of MathematicalObject. Each subclassof MathematicalObject (such as GenericSphere) is responsible for providing its ownimplementation of genericHitTime. This shows students a concrete example of the useof abstract classes, methods, and interfaces.

In the raytracer package are all of the classes that implement the ray tracingalgorithm. Included are classes such as Camera, Scene, LightSource, and RayTracer. Wehave generally provided students with complete implementations of all of the classes inthis package, focusing assignments on the classes in the math and objects packages.However, extending the functionality of the classes in the raytracer package does allowfor some interesting extensions. These extensions are provided with the documentationof the application.

ACTIVITIES AND ASSIGNMENTSIn recent offerings of our CS1 course, the ray tracing software was used throughout

the course to demonstrate many of the course concepts. During class, students were

CCSC: Midwestern Conference

81

given exercises in which they interacted with the various parts of the code. Severalexamples include: ! When students were learning some of the basic concepts like fields, variables,

mutator and accessor methods, parameters, scope, lifetime, etc., they answeredquestions about classes from the ray tracer software, including Ray, Camera,Intensity, and GenericSquare.

! The Scene, LightSource and RGBIntensity classes were used when discussing thevarious ways of performing loops. Students re-implemented methods in theseclasses several times, each using a different kind of loop (while, do-while, for, foreach; using indices versus an iterator) to perform the same task. This gave them anopportunity to compare the alternatives and learn first hand when certain choices arebetter and, in a few cases, when an alternative will not work (for instance,attempting to use a for-each loop when items need to be removed from the list is abad idea).

! The Matrix interface was used when discussing double-dimensional arrays, staticmethods, overloading constructors, and overriding the toString method.

! When discussing software testing, the Vector and Matrix interfaces were the mainfocus. These interfaces have methods like that are ideal for unit testing, and also aregreat examples to use when discussing test coverage and equivalence partitions.

! As part of introducing the Generic Objects assignment (described below), theinstructor walked through the implementation of genericHitTime for bothGenericPlane and GenericSquare. Since a square is a restricted plane,GenericSquare is implemented as a subclass of GenericPlane, and thegenericHitTime method for GenericSquare calls GenericPlane’s genericHitTimemethod, providing a good example of inheritance.Besides being useful for teaching basic object-oriented concepts, the ray tracer

software was particularly nice in that it is a large application, something that CS1 studentstypically do not have an opportunity to interact with. Although this can overwhelmstudents if not presented properly, there are many benefits. Working with code writtenby others can be useful for many reasons, and depending on their future career, studentsmay spend a significant amount of their time extending and maintaining code written byothers. Here are a few of the benefits: ! Students learn the importance of class interfaces, as they certainly will not read

every line of code and understand the inner workings of every class. The conceptsof abstraction and encapsulation hopefully emerge naturally.

! Students learn the importance of documentation, as they must sometimes depend onit to understand the implementation of some of the methods. This may lead themto take documentation of their own code more seriously. In fact, an assignment canbe given that requires them to fix errors in one or more classes that are poorlydocumented, so they can compare and contrast their experiences with differentqualities of documentation.

! Integration testing becomes more important, and possibly more interesting, whenstudents are working both with code they have written and code written by others.

JCSC 26, 1 (October 2010)

82

! With their own code, students generally get experience with white-box testing, andthey can perform black-box testing with classes from the Java API. They can addto this grey-box testing of the ray tracing classes since they are able to look at all ofthe code, but may not take the time or have the ability to completely understand it.

! Debugging code written by someone else can also be a useful exercise, as they mayknow what the software is supposed to do, but they may not be clear on every lineof code, which means they have less of a chance of knowing where a bug in thecode might be. In other words, they become better debuggers by debugging thecode of others.We also incorporated concepts related to ray tracing into several of the outside-of-

class assignments. We describe the three assignments most closely related to ray tracing.The primary objective of the Vector assignment is to give students experience

writing code involving arrays and loops. Students were given the shell of a Vector classand asked to implement several methods, including simple setters and getters, dotproduct, add, subtract, and normalize. The implementation was based on an array ofintegers, and several methods were implemented for them to learn from. A secondaryobjective of the assignment was to get students thinking about the importance of writingtest cases, and so they wrote test cases for both their methods and the pre-existingmethods.

This assignment was given immediately after an assignment where theyimplemented a Set based on an ArrayList, allowing them to see the differences andsimilarities of using these data structures. Although this Vector class presents the sameinterface as the class used in the software, it has a different internal implementation. Thisgives an opportunity to discuss a real example of abstraction.

The objectives of the Matrix assignment include working with a multipledimensional array, correctly implementing methods based on an algorithm description,and introducing testing using JUnit. Students were given the implementation of theMatrix interface that is actually part of the ray tracing code and asked to implementseveral methods, including pre- and post-multiply, add, subtract, and swap rows. Inaddition, they overrode the equals method. They also wrote JUnit tests for all of themethods they implemented.

The final assignment further demonstrates the utility of interfaces and asks them tointegrate their code into an existing framework. The main task for the assignment is toimplement the genericHitTime method for spheres and cylinders, having seen in classhow to implement the method for the generic plane and square. This assignment requiredthat they understand the interfaces for several classes, including Ray, Point, Vector, andHitRecord. Students were provided any needed formulas.

ANALYSISDue to relatively small class sizes, we do not have statistically significant

evaluations of the ray tracer's effectiveness. However, analysis of the use during oneacademic year is encouraging. These students performed well on the assignments relatedto the ray tracing case study. Each of the eight students enrolled in the course completedthe first assignment described in the Activities and Assignments section, seven the

CCSC: Midwestern Conference

83

second, and six the third. The averages scores on the assignments were 87.5%, 82.9%,and 95%, and the average performance in the classes overall was 86.9%. The errorsmade on the assignments are typical to students in a CS1 course—bad test cases, shallowcopying of an array when a deep copy was needed, indexing errors including off-by-oneerrors, not checking size compatibility of Vectors/Matrices, and not documenting theircode well. On the assignment where the students implemented the hit time for genericsphere and generic cylinder, all students who attempted the assignment succeeded incomputing the hit time correctly for the sphere and the sides of the cylinder. One studentdid not implement the algorithm for the cylinder's ends, and two students implementedit properly, but computed the normal vector on the ends incorrectly.

USING THE SOFTWARETwo faculty members at our institution have used the software and associated

assignments, neither of whom participated in the development of the framework code.Neither of these faculty members was familiar with ray tracing at the time. It shouldtherefore be possible for others to adopt the software. Visithttp://software.cs.hope.edu/raytracing to get more information, and to download thesoftware and associated assignments.

ACKNOWLEDGEMENTSWork on this project was originally supported by a grant from the Howard Hughes

Medical Institute. Professor Aaron Cinzori from our mathematics department contributedto the ideas for the assignments, and Professor Matthew DeJongh was the first facultymember to use the code. Student Kevin Browder helped develop and debug parts of thesoftware.

REFERENCES

[1] Alphonce, C., Ventura, P. Object Orientation in CS1-CS2 by Design.Proceedings of the 7th Annual Conference on Innovation and Technology inComputer Science Education. 70-74, 2002.

[2] Barnes, D., Kolling, M. Object First with Java: A Practical Introduction UsingBlueJ, Upper Saddle, New Jersey: Prentice Hall, 2009.

[3] Borstler, J., Hall, M. S., Nordstrom, M., Paterson, J. H., Sanders, K., Schulte, C.,Thomas, L. An Evaluation of Object Oriented Example Programs inIntroductory Programming Textbooks. Inroads - SIGCSE Bulletin, 41 (4), 126-143, 2009.

[4] Hill, F. S.,Jr., Kelley, S. M. Computer Graphics Using OpenGL, 3rd edition.Upper Saddle, New Jersey: Prentice Hall, 2007.

[5] Lewis, J., DePasquale, P. J., Chase, J. Java Foundations: Introduction toProgram Design & Data Structures. XXX, XX: Pearson Education, Inc., 2008.

JCSC 26, 1 (October 2010)

84

[6] Lewis, J. and Loftus, W. Java Software Solutions: Foundations of ProgramDesign. Boston, MA: Pearson Education, Inc., 2009.

[7] Matzko, S., Davis, T. A. Teaching CS1 with Graphics and C. Proceedings of the11th Annual SIGCSE Conference on Innovation and Technology in ComputerScience Education. 168-172, 2006.

[8] Savitch, W. Carrano, F. M. Java: An Introduction to Problem Solving &Programming, Upper Saddle, New Jersey: Pearson Education, Inc., 2008.

[9] Wu, C. T. An Introduction to Object-Oriented Programming with Java. NewYork, NY: McGraw Hill, 2006.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

85

A PILOT STUDY ON THE IMPACT OF CREATIVE

ACHIEVEMENT ON ACADEMIC ACHIEVEMENT IN

MEDIA-ORIENTED CS1*

Paul Gestwicki and Khuloud AhmadComputer Science Department

Ball State UniversityMuncie, IN 47306

765 285 [email protected], [email protected]

ABSTRACTWe present the results of a pilot study relating creative achievement andacademic performance in introductory computer science courses. Theexperimental CS1 course was based on the Java-based Media Computingapproach, with some deviations to emphasize concepts of object-orientedprogramming. Students’ creative achievement was measured quantitativelyusing the Creative Achievement Questionnaire, a reliable and valid instrument.The study data comprises questionnaire results along with lab scores, examscores, course grade, GPA, ethnicity, and gender for Wfteen students, includingfour CS majors and eleven non-CS majors. No signiWcant relationship wasfound between creative achievement and either GPA or course grade, althoughsome more Wne-grained relationships were discovered between creativeachievement and speciWc kinds of assignments. A discussion of theserelationships is provided, along with implications for practice andrecommendations for future work.

1. INTRODUCTIONTeaching introductory Computer Science courses poses signiWcant challenge.

Students in introductory courses often have vastly diTerent experiences and expectations,

JCSC 26, 1 (October 2010)

86

and hence motivating them to succeed is a diUcult course design problem. There has beena great deal of research devoted to increasing student’s motivation through engagingprojects, with the goal that this will result in corresponding increases in retention,recruitment, and performance. Popular examples include multimedia computing [8, 18],“nifty” projects [14], and game-oriented coursework [1]. A common component of theseis that they explicitly involve creativity. In fact, the creative aspect of the courses isnamed as a primary motivator for the students and success factor in many studies.However, as observed by Knobelsdorf and Romeike, there has not been much publishedwork that addresses creativity explicitly [12].

This work is an attempt to discover and quantify the relationships between creativityand success in introductory computer science, and we do so by integrating techniquesfrom creativity research and computer science education research. There are importantdiTerences between these two bodies of work, one of the most signiWcant being thateducators, by and large, agree that students’ academic achievements can be assessed andvalidated; on the other hand, the quantiWcation of creativity is more hotly contested. Wetherefore begin by identifying speciWcally what we mean by “creativity” and itsmeasurement before explaining the context of the study.

1.2. Creativity and Creative AchievementCreativity research explores many themes, including individual creativity,

inXuences, creative products, and collaborative creativity [17]. There is neither a singleaccepted deWnition for “creativity” nor universally-accepted tools for measuring it.However, creativity is relative to both the creator and the context. For example, Boden[3] distinguishes between psychological and historical creativity, the former indicatingan idea new to the creator and the latter, to a community. This was extended by Dasgupta[5], who further distinguished between originality (new and has value) and novelty(simply new). Dasgupta’s model therefore has four classiWcations for creativity:psychological novel (PN), psychological original (PO), historical novel (HN), andhistorical original (HO). From a constructivist educational perspective [2], a commongoal is for students to develop PO-creative ideas — ideas that are new to the student, evenif they are not historic or original — while fostering the development of HN- or HO-creative ideas. For example, a student who builds a mental model of mergesort has beenPO-creative: mergesort is not new to the Computer Science community, but the idea newand valuable to the student.

Research has shown that creativity impacts education. Romeike [16] found thatcreative activities increase students’ motivation thus enhancing their understanding ofcomputer science concepts. Such creative activities cultivate creative characteristics inthe students, such as Xuency, Xexibility, and creative problem solving. Similarly,Knobelsdorf and Romeike [12] report that high creativity is often associated with a desireto learn, explore, and understand. Lewandowski et al. [13] found that not only doescreativity increase motivation but it also increases interest in Computer Science and asa consequence improves retention.

We note that, according to the deWnitions oTered by the creativity researchcommunity, Computer Science is a undoubtedly a creative endeavor. Both practitionersand students create useful artifacts and models, regardless of where they fall in

CCSC: Midwestern Conference

87

Dasgupta’s taxonomy. By virtue of the discipline’s connection to mathematics andengineering, creativity is ingrained in computer science, whether one is creating aninteractive multimedia interface, an improved process model, or statistical analysissoftware.

Contemporary techniques for teaching computer science share a commoncharacteristic: they leverage this creative aspect of the discipline. Researchers who citecreativity as a motivator are reference such HN-creative (or even HO-creative) activitiesas creating multimedia exhibits, games, and visualizations. However, it is important torecognize that a student who is developing simple software to count Fibonacci numbersis engaged in a PO-creative endeavor, since the software and its result are new to thestudent.

1.2. The Creative Achievement QuestionnaireCreative achievement refers to the set of creative products generated by an

individual. The Creative Achievement Questionnaire (CAQ), developed by Carson et al.[4], is an instrument for measuring creative achievement that has been shown to bereliable and valid. The CAQ is based on Wve assumptions: 1. that creative achievement is best assessed in a domain-speciWc manner; 2. that creative achievement implies possession of skills in the domain; 3. that recognition by experts is the most valid and practical criterion for judgement

of accomplishment; 4. that recognition by a broad range of experts implies greater accomplishment; and 5. that fewer individuals attain higher levels of achievement.These assumptions hold for this study as well. Note that justiWcation for these, in termsof creativity research, is provided by Carson et al. [4].

The CAQ comprises 96 items over three parts. Part One presents a list of 13 areasof talent, and the participant writes a checkmark by those in which he or she self-identiWesas having more talent than the average person. Part Two lists concrete achievements inten domains of artistic and scientiWc endeavor: Visual Arts, Music, Dance, CreativeWriting, Architectural Design, Humor, Theater and Film, Culinary Arts, Inventions, andScientiWc Inquiry. For each domain, the concrete achievements are listed and ranked inorder of increasing creative achievement, as judged by experts in the correspondingdisciplines, and assigned weights from zero to seven points. Part Three consists of threequestions that ask the participant to identify how others perceive his or her creativity, andit also provides a space for free-response statements regarding personal creativeachievement. A subject’s CAQ score is determined by adding the weighted scores fromPart Two; Parts One and Three do not directly contribute to the CAQ score.

1.3. Media computing in CS1The media computing approach was pioneered at Georgia Tech in a course for non-

CS majors [8]. It involves teaching fundamental concepts of computing throughmanipulation of media. SpeciWcally, the approach is data-Wrst: students are introduced tothe encoding representation of the data and are then gradually introduced to algorithms

JCSC 26, 1 (October 2010)

88

and programming concepts, such as conditionals and loops, as a useful way to manipulatethat data. The experimental course for this study used media computing themes incombination with some expanded lessons on object-orientation. Based on the themes ofmedia computation and the results reported in the literature [10, 18], we hypothesized thatthere would be statistically signiWcant relationships between creative achievement andstudents’ performance in a media computing introduction to computer science. Thishypothesis is founded in creative achievement as a predictor for future creative activityand in the relationship between creativity and motivation. SpeciWcally, we hypothesizedthat creative achievement in the Visual Arts, Music, and ScientiWc Inquiry domains wouldcorrespond to high performance in corresponding media computing activities.

2. APPROACHThe experimental course was oTered to a class of approximately 40 students in

Spring 2009 at Ball State University. The course is required for Computer Science majorsand Computational Physics majors, and it is often taken Music Technology majors aswell. The master syllabus for the course calls for lessons grounded in imperative, object-oriented programming. Each week included three hours of lecture and a 75-minute lab.The lab assignments included problems to be completed during the closed lab as well assome to be submitted before the next lab meeting. Table 1 provides an overview of thesemester’s activities and their corresponding creative domains.

Week Lab Topic Creative Domain1 Introduction N/A2 Turtle Graphics Visual Arts3 Pixel Graphics Visual Arts4 Loops Visual Arts5 Nested Loops Visual Arts6 Nested Loops Visual Arts7 Conditional Visual Arts8 Conditionals with Loops Music9 OOP Visual Arts10 OOP Music11 OOP Music12 OOP Music13 I/O Music14 Simulation Scientific Inquiry15 Searching and Sorting N/A

Table 1: Overview of lab topics and corresponding creative domains, asidentified in the CAQ

The experimental section used Introduction to Computing and Programming withJava: A Multimedia Approach [9] as a textbook for the Wrst eight weeks of the Wfteenweek semester. During this time, assignments were given from the book in accordancewith the multimedia themes. The remaining weeks of the semester were devoted to adeeper exploration of concepts of object-orientation, and media themes were carried intothese lessons as well. For example, students learned the Strategy and Composite design

CCSC: Midwestern Conference

89

patterns [6] by implementing vector graphics, animations, and audio playback software.The I/O project in week 13 dealt with MIDI-like stream parsing for music synthesis. TheWnal two weeks of the semester took a twist on media computing, using the imagelibraries from Guzdial and Ericson to create a graphical simulation of diTusion limitedaggregation (DLA) and Eden clusters [7]. The music synthesis and cluster growthsimulation projects were designed to especially appeal to the Music EngineeringTechnology and Computational Physics majors in the class.

The CAQ was administered halfway through the semester. Graded course materialand personal information were also collected. Graded course material included lab grades,quiz grades, exam grades, and Wnal grade; personal information included gender,ethnicity, GPA, major(s), and minor(s).

3. ANALYSISParticipation in the study was voluntary, and complete data could only be collected

for Wfteen participants from the class. These participants included four declared computerscience majors and eleven non-majors. There was too little variation in the population forgender and ethnicity to yield relevant results. Additionally, no students reported anycreative achievement in the Dance domain.

The analysis revealed surprisingly few signiWcant relationships. Comparison ofstudents’ CAQ scores with their Wnal grades, pre-course GPA, course exams, and theWfteen labs yielded no statistically signiWcant results. Furthermore, no statisticallysigniWcant relationship was found between the students’ Wnal grades and the ten domainsof artistic and scientiWc endeavors (CAQ Part Two), nor between GPA and the tendomains. Subjects’ scores in Part Two of the CAQ were compared against each of theWfteen labs. Of all combinations, only three were found to be statistically signiWcant (p= 0.05). A positive relationship was found between Lab 4 and Music (r = 0.519), andnegative relationships were found between Lab 4 and Architecture Design (r = !0.521)and between Lab 9 and Inventions (r = !0.534). Lab 4 was the students’ second labinvolving turtle graphics, and it introduced loops through Spirograph-inspired graphics.Lab 9 was the Wrst lab explicitly on principles of object-orientation, requiring students towrite three shape classes that implemented a common Drawable interface. This was alsothe Wrst lab to incorporate pedagogical code reviews [11]. Note that pedagogic codereviews were used in three more labs after Lab 9, and Lab 10 was a direct extension ofLab 9, yet no signiWcant relationships were discovered between these later labs and theCAQ creative domain subscores.

There were two exams during the semester and a comprehensive Wnal. Students’responses to Part Two of the CAQ were compared against the three exam grades, and theonly statistically signiWcant relationship was found between the Wnal exam and Music (r= 0.569, p = 0.05). The Wnal exam did not contain any questions regarding music orsound, although it did have a question on parsing that was based on the stream-parsing,MIDI-like music synthesis lab. Note that the exams scores were only compared againstCAQ responses in toto; responses to individual exam questions (e.g. the Wnal examquestion similar to the I/O lab) were not included in the analysis.

JCSC 26, 1 (October 2010)

90

T-tests were implemented to analyze the diTerences between groups of students bydeclared major. There was no statistically signiWcant diTerence in CAQ scores betweenCS majors and non-CS majors, nor was there between art and science majors.

5. DISCUSSIONThis was a pilot study with only few participants, who themselves were not a

random sample. Most of the students in the class were required to take the course as partof an academic program. Furthermore, this was an “oT-sequence” oTering: Wrst semesterfreshmen intending to major or minor in Computer Science, and with adequatemathematics background, would normally take this course in the Fall. (Note that it waspartially the fact that this was an oT-sequence oTering that made this experimentpossible.) Despite these limitations, the results are intriguing and provide a springboardfor future research.

Contrary to our hypotheses, student achievement in the Visual Arts, Music, andScientiWc Inquiry did not correlate with performance in the corresponding labs. In fact,creative achievement, as measured with the CAQ, had very little impact on studentperformance at all. The relationships discovered in the analysis suggest that therelationships between creative achievement and academic success may be more subtlethan we expected, or perhaps not exist at all. To wit, there are not obvious relationshipsbetween turtle graphics and either Music or Architecture Design, nor between object-orientation and Inventions. Surprisingly, where there are explicit relationships, such asbetween computational physics and ScientiWc Inquiry, we discovered no statisticallysigniWcant correlation. Hence, the results of the analysis do not clearly point towardsgeneralizable conclusions except, perhaps, that creative achievement is unrelated toperformance in introductory computer science. This would itself be an importantdiscovery, since it implies that past creative achievement is not a discriminating factorin computer science education. Additional studies are required in order to determinewhether such a generalization holds.

In a media computing course, assignments may grant students a great deal ofcreative freedom, but the creativity itself is generally not graded. Student submissionsmay be praised for their ingenuity, which can be an important factor in developing prideand a sense of community within the classroom. However, if submissions are graded bytraditional means, there is little reXection on the variety of creative activities a studentincorporates. This implies that a more creative grading scheme may be required in orderto complement students’ creative freedom. Unfortunately, grading policy is often dictatedby the institution and therefore presents an signiWcant challenge for creative teaching.Knobelsdorf and Romeike [12] point out that students may not unleash their creativepotential in cases where they feel that they are “solving the professor’s task,” as opposedto working on something they Wnd signiWcant. That is, it is students’ motivation that iskey to success, and creative projects are a means to that end. This study did not includean investigation of students’ attitudes towards the individual labs or assignments, but itis possible that a Wner-grained study could tease out the relationships between attitudes,assignments, creativity, and success.

CCSC: Midwestern Conference

91

5. CONCLUSIONS AND FUTURE WORKThough results of the pilot study are inconclusive, they do suggest the presence of

subtle relationships between creativity and computer science education. The CAQ hasmany advantages over other models of measuring creative achievement for such research:not only has it been proven reliable and valid, it is also easy to administer and to score.Conducting similar studies across multiple institutions, and even across multiple themesof introductory computer science, could clarify the inXuence of creativity on academicsuccess in computer science.

Several factors point to motivation as a primary factor impacting studentperformance. Where “creativity” is informally stated as a reason for success, it is possiblethat it was the motivation associated with creative endeavor that was the primary factor.Further research is required to determine the strength of this relationship. Instrumentssuch as the CAQ should be combined with measurements of student motivation such asthe Motivated Student Learning Questionnaire [15]. There has not been much cross-fertilization of ideas between creativity research and computer science education research[12]. We propose that this would bear interesting and useful fruit, especially given theadoption of explicitly creative activities to improve motivation in computer sciencecourses.

REFERENCES

[1] Jessica D. Bayliss and Sean Strout. Games as a ”Xavor” of cs1. In SIGCSE ’06:Proceedings of the 37th SIGCSE technical symposium on Computer scienceeducation, pages 500–504, New York, NY, USA, 2006. ACM.

[2] Mordechai Ben-Ari. Constructivism in computer science education. In SIGCSE’98: Proceedings of the twenty-ninth SIGCSE technical symposium on Computerscience education, pages 257–261, New York, NY, USA, 1998. ACM.

[3] Margaret Boden. What is creativity? MIT Press, 1994. In Margaret Boden,editor, Dimensions of Creativity.

[4] Shelley H. Carson, Jordan B. Peterson, and Daniel M. Higgins. Reliability,validity, and factor structure of the creative achievement questionnaire.Creativity Research Journal, 17:37–50, 2005.

[5] Subrata Dasgupta. Creativity in Invention and Design: Computational andCognitive Explorations of Technological Originality. Cambridge UniversityPress, 1994.

[6] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Designpatterns: elements of reusable object-oriented software. Addison-WesleyLongman Publishing Co.,Inc., Boston, MA, USA, 1995. ISBN 0-201-63361-2.

[7] Nicholas J. Giordano and Hisao Nakanishi. Computational Physics. BenjaminCummings, 2 edition, 2005.

[8] Mark Guzdial. A media computation course for non-majors. In ITiCSE ’03:Proceedings of the 8th annual conference on Innovation and technology incomputer science education, pages 104–108, New York, NY, USA, 2003. ACM.

JCSC 26, 1 (October 2010)

92

[9] Mark Guzdial and Barbara Ericson. Introduction to Computing andProgramming with Java: A Multimedia Approach. Prentice Hall, 2006.

[10] Mark Guzdial and Andrea Forte. Design process for a non-majors computingcourse. In SIGCSE ’05: Proceedings of the 36th SIGCSE technical symposium onComputer science education, pages 361–365, New York, NY, USA, 2005. ACM.

[11] Christopher Hundhausen, Anukrati Agrawal, Dana Fairbrother, and MichaelTrevisan. Integrating pedagogical code reviews into a cs 1 course: an empiricalstudy. In SIGCSE ’09: Proceedings of the 40th ACM technical symposium onComputer science education, pages 291–295, New York, NY, USA, 2009.

[12] Maria Knobelsdorf and Ralf Romeike. Creativity as a pathway to computerscience. In ITiCSE ’08: Proceedings of the 13th annual conference onInnovation and technology in computer science education, pages 286–290, NewYork, NY, USA, 2008. ACM.

[13] Gary Lewandowski, Elizabeth Johnson, and Michael Goldweber. Fostering aCreative Interest in Computer Science. In Proceedings of the 36th SIGCSETechnical Symposium on Computer Science Edication, pages 535–539, 2005.

[14] Nick Parlante. Nifty reXections. SIGCSE Bull., 39(2):25–26, 2007.

[15] Paul R. Pintrich, David A. F. Smith, Teresa Garcia, and Wilbert J. Mckeachie.Reliability and Predictive Validity of the Motivated Strategies for LearningQuestionnaire (Mslq). Educational and Psychological Measurement,53(3):801–813, 1993.

[16] Ralf Romeike. Creative Student – What can we Learn from Them for TeachingComputer Science? In Proceedings of the 6th Baltic Sea Conference onComputing Education Research, pages 149–150, 2006.

[17] Mark A. Runco. Creativity: Theories and Themes: Research, Development, andPractice. Academic Press, 2006.

[18] Allison Elliott Tew, Charles Fowler, and Mark Guzdial. Tracking an innovationin introductory cs education from a research university to a two-year college.SIGCSE Bull., 37(1):416–420, 2005.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

93

A DOZEN IDEAS FOR ENGAGING CS1 STUDENTS *

Adebayo Olowoyeye, Khadija Jirari Stewart, Gloria Childress TownsendDepartment of Computer Science

DePauw UniversityGreencastle, IN 46135 USA

01(765) 658-4667, 01(765) 658-5030, 01(765) [email protected], [email protected], [email protected]

ABSTRACTThis paper presents twelve ideas to engage students enrolled in theintroductory Computer Science course CS1. The paper’s authors implementedthese ideas and noticed an increase in CS2 enrollment in the following year.

1. INTRODUCTIONIn the academic year 2000-01, CS2 fall enrollments peaked (at a high of thirty-

seven) and subsequently began to fall to a low of seven in 2006. Likewise, beginning inthe same academic year (2000-01) the spring enrollments fell from forty-eight to fifteenby 2005. Traditionally, the fall CS2 enrollments lag behind the spring CS2 class sizes,because many first-year students, who have not yet chosen majors, populate the CS1classes. The students who enjoy CS1, consider computer science as a possible major andenroll in CS2 the following spring. Many first-year students, who enroll in CS1 in theirspring semesters, have already chosen a major and do not wish to explore computerscience by taking CS2 in the following fall semester. A large portion of students in theCS2 classes go on to major in computer science, making a loss of thirty students fromthe first fall semester in 2000 to the last fall semester in 2006 (and thirty-three,during the corresponding spring semesters) a devastating blow for the department. Figure1 (below) demonstrates the two declining fall and spring trends in graphical format.

JCSC 26, 1 (October 2010)

94

D e p a r t m e n t a lmembers discussedstrategies that couldcombat the declinein CS2 enrollments,and some CS1teachers introducedfledgling effortsbased upon thediscussions and theirown ideas. In fall2006, all three CS1instructors began tocoord ina te andsynchronize twelve strategies for retaining CS1 students. Descriptions and assessmentsof the synchronized strategies compose section 3; a review of the literature follows.

2. REVIEW OF THE LITERATURERetention remains a hot topic, since the steep decline in CS enrollments began at the

turn of the century. Studies described in this section relate to the twelve ideas forengaging CS1 students described in section 3.

2.1 Groupware Several advances in the area of classroom technology move computer science

classrooms from the white chalk and blackboard age to the Tablet PC age. In [2],Anderson et al describe Classroom Presenter, a Tablet PC-based presentation system thatenables the use of prepared slides and provides the instructor with the ability to annotatethe slides. A paper by Berque et al. [3] describes DyKnow [5] Vision software and itsability to engage students during class. The DyKnow groupware system allows studentsand teachers to share written information through the use of pen-based computers.

2.2 Web-based TechnologiesIn [7], Herrmann et al. present assessment data on the effectiveness of their

redesigned CS1 course. The redesigned course uses extensive web based material andonline course management tools. The paper explains that the redesigned course reducedthe occurrence of F grades and increased the number of A grades.

2.3 Pair-ProgrammingThe literature on pair programming finds that students who pair program have

demonstrated increased confidence in their work and enjoyed their work more, have beenmore successful in CS1 and are more likely to major in CS [e.g. 8]. Williams and Kessler[14] report that advanced undergraduate students who paired produced programs thatsuccessfully passed more test cases than students who worked alone. Hanks found that

Figure 1: Fall and Spring CS2 Enrollments 2000-01 to 2006-07

CCSC: Midwestern Conference

95

pairing students increased program submissions and that these programs correctlyimplemented more required features. On average, each pair needed help in only 51% asmany cases as students who worked alone [6]. Students in a study by Simon and Hanks[12] claim they explore more solutions in pair programming because they can see howother people think and they learn different ways to solve a problem. Students alsoacknowledged that pair programming is a good way to learn programming in CS1because it gave them confidence when it was time to work alone. Students in the studyalso commented on the social aspects of pair programming.

2.4 RobotsInstructors have used robots to attract students' interest in computer science and to

retain them for over 20 years. Recently, inexpensive, real robots that students canprogram (e.g. [10]) appear in classrooms.

2.5 Recruiting Women to CS1Townsend et al. listed three reasons for underrepresentation of women in the

computing field: Lifestyle and priorities misconceptions, lack of information regardingpotential career paths, and the need for role models [13]. Powell also suggests that issueswhich undermine women’s persistence may undermine the progress of some malestudents, so male students may benefit from the same initiatives designed to supportwomen [11].

3. THE TWELVE IDEASThe preceding brief literature review section demonstrates the foundation upon

which the school's twelve initiatives rest. The current section reveals the twelve ideas anddetails that allow readers to understand and duplicate any of the initiatives.

3.1 Robot Laboratory: Iteration & SelectionAfter previewing a robot at a RidgeSoftä company SIGCSE booth, the department

purchased enough robots from the company so that each pair of students in our CS1laboratories and CS1 classes could work with one robot. The second author wrote alaboratory for the fall 2007 CS1 classes featuring a robot dancing theme and reinforcingrandom number generation, selection and iteration concepts as students prepared fortesting of the concepts. Among additional laboratory steps, students programmed therobots to dance a "Z" with equally-measured and randomly-sized acute angles in thealternate interior angles of the "Z". The undergraduates also coded a robot "squaredance", using iteration to repeat four times "turn ninety degrees" and "walk forward arandom number of robot steps", marking the beginning resting place of the robot with asupplied penny. Anecdotally, students both enjoyed the lab and also implementedclassroom theory in a manner that demonstrated mastery of lecture lessons. (See section4 concerning results.)

JCSC 26, 1 (October 2010)

96

3.2 Robot Laboratory: Stacks A colleague of the authors created a second robot laboratory later in the fall 2007

CS1 semester. The second laboratory solidified array and stack concepts, along withreinforcing introductory material. Again, students used a penny to mark the starting point.They pushed onto their robot stacks a series of random moves, watching the robot followan unpredictable path formed from the opposite moves to those being pushed on to thestack (e.g. push right but move left), and then popped the stacks to watch the robot retraceits path to the penny. Before the lab began, students completed a pre-test survey; after thelab's conclusion, a post-test. The results of the survey appear in section 4.

3.3 Use of the DyKnow Groupware SystemDyKnow Vision software allows students and instructors to share written

information during class. For example, the professor can extemporaneously draw sketcheson the surface of a pen-based computer or electronic whiteboard, can use a keyboard totype material, and can import material (including graphics, and PowerPoint slides)prepared ahead of time. All information sketched, typed, or imported by the teacherimmediately appears on each student’s display. Students use electronic pens to writefreehand on their displays, making private annotations to the teacher’s material [3].

DyKnow allows instructors to create interactive and engaging lectures. ThroughDyKnow, professors assess the understanding of difficult concepts, asking students toelectronically submit solutions to problems posted on students' displays. Students followlectures easily through DyKnow software, because they spend more time listening thanmindlessly recording written and verbal professor input. Students then find savingelectronic notebooks to the DyKnow server useful for studying.

3.4 In-Class Teaching AssistantsThe introduction of the DyKnow groupware system allowed instructors to focus

pedagogy on a problem-based paradigm. The change in pedagogy resulted in the hiringof student assistants to help instructors provide help for all pairs. The student assistantsnot only advance the classroom process through their practical help; they also serve asrole models for CS1 students. Accordingly, the authors choose female computer sciencemajors whenever possible. Instructors also ask teaching assistants to provide brief five-to ten-minute mini presentations from time to time about their senior projects, their post-graduation plans, their summer internship or research experiences, etc.

3.5 ACM-W ChapterThe authors invite female CS1 students to join the local ACM-W chapter [1]:

Student chapters that focus on recruiting, retaining and supporting women in computerscience. Two female professors taught CS1 in all of the semesters since spring 2007; inaddition, one taught CS1 in fall 2006. Certainly, male professors invite female studentsto attend ACM-W events, but having a professor tell female students that she wants herstudents to join her at an upcoming event produced more female students from femaleinstructors' classes than from male instructors' classes. The organizations' events include

CCSC: Midwestern Conference

97

role modeling and mentoring opportunities, accurate information about careeropportunities, social support and encouragement, etc. The ACM-W chapter works inconcert with the ACM chapter.

3.6 Community-Building for CS1/CS2 Classes ! ACM Chapter

The ACM chapter schedules at least one informational lunch per semester tointroduce the new students (CS1 and CS2) to the computer science community and to givean overview of the curriculum and the courses offered for the next semester, informstudents about the benefits of summer internships and summer research programs, etc.One of the spring semester lunches welcomes all new-declared computer science majors.For this lunch, the department custom orders cakes with the initials of all the new majorsand individually welcomes each of the new majors to the department. Other ACM eventsinclude speakers and scheduling visits to nearby university campuses. Recently, ACMand ACM-W officers taught a hardware workshop about assembling a desktop computer. ! Theme Housing

ACM-W submitted a housing proposal to create a computer science theme house.The CS-themed house provides a haven for CS majors and encourages peer interactionand support.

3.7 CS1 T-Shirts Plus Real and Virtual BowlingThe department provides all CS1 students with free CS t-shirts, after they complete

project one. The t-shirts display the user interface for a game-based graphics project andthe wording, "Ask me about my CS1 project!" Students enjoy wearing their shirts duringexaminations and while bowling or during other special events. The CS Department, inturn, enjoys free advertising on campus.

One CS1 laboratory (array practice) requires students to program a bowlingsimulation. The instructors connect the laboratory to the community-building effort byinviting students to go bowling with them – and to wear their CS1 t-shirts. The three CS1classes engage in light-hearted competition and record their individual bowling scores.The next class period, students write programs to produce a team score for their classes.The three classes share team scores and bragging rights.

3.8 Practice Exams and Help SessionsA week before each exam, the authors post a sample exam and schedule at least one

help session. During the help sessions, the faculty members go over the concepts that willbe covered in the exam, ask if the students have questions or need clarifications with anyof the course concepts and then let the students work through the sample exam. Twohour's time allows the students to work through the problems at their own pace in arelaxed atmosphere. Students seem more interactive during the help sessions and moreengaged since the faculty members state that they create the help sessions for students toask questions and inquire about anything related to the course. The students demonstrate

JCSC 26, 1 (October 2010)

98

appreciation through their comments on the required student opinion forms. Students whoattend help sessions usually perform better than the students who do not attend.

3.9 "Lots of Exams"Since the fall of 2007, the faculty teaching CS1 began giving several exams during

the semester (7 exams). The exams occur after every major CS1 topic. The authors allowstudents to drop the lowest exam. Several exams permit the students to focus on a fewconcepts at a time and enable them to better understand the concepts. The high frequencyof the tests also diminishes test anxiety. The technique encourages the students to reviewthe course material frequently as opposed to studying only before the mid term and finalexams. The strategy especially helps first year students who are still trying to adjust theirstudy habits from high school to college. After reading the Cicirello [4] SIGCSE 2009paper about pop quizzes, the authors began administering a short quiz essentially everyday of class to take the concept of frequent testing to the extreme. Anecdotal evidencein the authors' classes supports Cicirello's claim that pop quizzes increase students' scores.

3.10 Web-Based Course Management ToolSince the Fall of 2007, all the faculty members teaching CS1 began using the

Moodle web-based course management software [9]. Instructors create a weekly schedulefor the course, post, collect and grade assignments on-line and post the grades on the samesite. Students can then view their grades and the professor’s comments as soon as theassignments are graded. In fact, Moodle sends the grades and the comments to thestudents via email. Moodle also has a chat option among the professor and students, usergroups and forums. Using Moodle allows both faculty members and students to focus onthe course material and assignments and lowers the frequency of studentsmisunderstanding due dates, forgetting to bring their assignments to class and not beingsure about test content.

3.11 ProjectsThe first project used in CS1 is a video game project. The project reinforces the

class, object and method concepts and consists of a space station (diamond object) thatorbits around the earth at a set speed. After each orbit, the space station begins at aslightly lower level than the previous orbit, signifying that the space station is running outof fuel. The space station needs to receive a fuel cell (a circle object) from the spaceshuttle (a triangle object) before it crashes to earth. The game consists of the space shuttletrying to launch the fuel cell so that it makes contact with the lower corner of the spacestation. In the second project, students finish the implementation of a unistroke characterrecognition module. This project reinforces conditional statements, loops and arrayconcepts. The third project consists of finishing the implementation of a system thatchecks the student’s progress toward meeting graduation requirements. The projectreinforces the ArrayList, two dimensional arrays and file IO concepts. Our studentsusually enjoy working on the projects and testify that the projects help them understandthe course material better.

CCSC: Midwestern Conference

99

3.12 Pair ProgrammingAll the authors of this paper regularly teach using pair programming techniques in

class, in laboratory and for projects. For most in-class exercises, the authors ask studentsto pair up. One student is the driver and is in charge of typing the code. The other studentis the navigator and is in charge of making sure that the driver is entering the codecorrectly. The authors constantly remind the students that both the driver and thenavigator should be communicating throughout the whole process. The driver should onlyenter the code that has been mutually agreed upon by the team. The driver and navigatorswitch roles for each new short exercise. During longer programming sessions – inlaboratory and in out-of-class programming projects – the authors ask students to switchroles after a designated period of time.

4. DISCUSSIONIn order to prepare for writing the paper, the authors wished to evaluate one of the

twelve techniques described in the experiential paper. They selected a robot laboratory,for its more concrete nature. They administered pre- and post-test survey instrumentsduring the second (stack) laboratory: ! to measure changes in satisfaction with robot usage in CS1 laboratories ! to measure changes in over-all satisfaction with CS1 laboratories ! to measure changes in over-all satisfaction with the CS1 class ! to measure the likelihood of students' continuing to CS2 ! to elicit open-ended comments about robot usage, CS1 laboratories and the CS1

class itself.The following subsections explore each of the four measurements and the open-endedcomments.

4.1 Changes in Satisfaction with Robot Usage in CS1 LaboratoriesThe survey instruments (pre- and post-test) used a five-point Likert scale (1 low; 5

high), asking students to rate their enjoyment with using robots in the CS1 laboratory. Aone-way analysis of variance produced a p-value of 0.228228 (n = 52). Therefore, thestack robot lab treatment did not produce significant differences at the 0.05 level ofconfidence. Curiously, one author's class (n = 26) found a 0.064278 p-value, which wasvery close to showing a significant difference (at the 0.05 level of confidence) betweenstudents' attitudes toward robots before and after the second (stack) robot laboratory.

JCSC 26, 1 (October 2010)

100

Figure 2: Pre- and Post-Test Frequencies

The averages of the pre- and post-test scores changed from 4.019231 to 4.326923.Frequencies follow in figure 2. Note that the pre-test scores effectively measuresatisfaction with robots based upon the first (dancing) robot laboratory, and note thathaving only 1 (after lab) or 2 (before lab) students express some dissatisfaction with thelaboratory platform is unusual, especially given the fact that most students enroll in theDePauw CS1 course because it offers a distribution group credit – not because they wantto major in computer science.

Calculating a correlationcoefficient produced a weakrelationship between "satisfactionwith robot laboratory" and "goingon to CS2". This is not surprising(as indicated in the Introduction),because many CS1 students enjoyour class but have already chosen amajor and have invested courseresources in pursuing that major.Our interest lies mainly in the"undeclared" students. Two of thestudents who score the robotlaboratory with a 3, say they willenroll in CS2 – eight with a 4; seven with a 5. Students wrote the following open-endedcomments about the laboratory: ! The robots are a cool way to change the usual pace that we have in labs. ! I like the robots the most. The robots were fun. ! We should use robots more!! ! Robots were exciting.

4.2 Changes in Satisfaction with the CS1 Class in GeneralThe survey instruments also used a five-point Likert scale, asking students to rate

their enjoyment with the CS1 class in general. In a sense, the statistics gathered from thesurvey item measure the effectiveness of the twelve ideas profiled in the paper. The pre-test average of students' scores (4.057692) increased to an average of 4.211538, after thepost-test calculations. Once again, one lone score of 1 indicated dissatisfaction with theclass, while 43 students (out of 52) indicated that they enjoyed CS1. (The remainingstudents held neutral views of CS1.) One of the students who scores the robot laboratorywith a 3 (neutral), says s/he will enroll in CS2; six with a 4 will take CS2; ten with a 5 willenroll. Students wrote the following open-ended comments about the laboratory: ! It was a positive experience and I am very glad I took the class. ! Sparked a new major for me

CCSC: Midwestern Conference

101

Figure 3: Fall and Spring CS2 Enrollments 2000-01 to 2009-10

5. CONCLUSIONSAfter the introduction of

our twelve new initiatives, ourCS2 enrollments increased, asFigure 3 illustrates. Comparingthe graph above to the graph inthe paper's introduction, one seesa turnaround in the CS2 pattern.The authors do not claim cause-and-effect with respect to thetwelve new CS1 practices, ofcourse. The paper belongs to theexperiential category and finds

its usefulness in supplying CS1instructors who read the paper

with a large collection of ideas to implement – most with individual effectivenessgrounded in research. The authors did not locate the paper's community-building ideasin the literature, believing that the CS House, bowling and project T-shirts are unique tothe department. The collected techniques (research-based and local practices) togetherserve as an up-to-date summary of best practices for CS1.

6. ACKNOWLEDGMENTSBesides the authors, colleagues Dave Berque, Doug Harms and Scott Thede taught

CS1, during the time period involving the twelve CS1 changes discussed in section 3. Inaddition, Dr. Berque wrote the robot laboratory concerning stacks. The RidgeSoftäcompany produces the robots described in this paper.

7. REFERENCES

[1] ACM's Women's Council http://women.acm.org/

[2] Anderson, R., Simon, B., Wolfman, S. A., VanDeGrift, T. and Yasuhara, K. Experiences with a tablet PC based lecture presentation system in computerscience courses. Proceedings of the 35th SIGCSE Technical Symposium onComputer Science Education, Norfolk VA, 2004.

[3] Berque, D., Bonebright, T. and Whitesell, M. Using pen-based computers acrossthe computer science curriculum. Proceedings of the 35th SIGCSE TechnicalSymposium on Computer Science Education, Norfolk VA, 2004.

[4] Cicirello, V. The role and effectiveness of pop quizzes in CS1. Proceedings ofthe 40th SIGCSE Technical Symposium on Computer Science Education,Chattanooga, TN, 2009.

[5] Dynamic Knowledge Transfer, LLC. www.dyknow.com

JCSC 26, 1 (October 2010)

102

[6] Hanks, B. Problems encountered by novice pair programmers. Proceedings ofthe 39th SIGCSE Technical Symposium on Computer Science Education. Portland, OR, 2008.

[7] Herrmann, N., Popyack, J. L., Char, B. and Zoski, P. Assessment of a courseredesign: introductory computer programming using online modules. Proceedingsof the 35th SIGCSE Technical Symposium on Computer Science Education,Norfolk VA, 2004.

[8] McDowell, C., Werner, L., Bullock, H. and Fernald, J. The impact of pairprogramming on student performance, perception and persistence. In Proceedingsof the International Conference on Software Engineering (ICSE 2003), pages602-607, May 2003.

[9] Moodle software. www.moodle.org

[10] Patterson-McNeil, H. and Binkerd, C. L. Resources for using lego mindstorms.Journal of Computing Sciences in Colleges, Volume 16 Issue 3, March 2001.

[11] Powell, R. Improving the persistence of first-year undergraduate women inComputer Science. Proceedings of the 39th SIGCSE Technical Symposium onComputer Science Education. Portland, OR, 2008.

[12] Simon, B. and Hanks, B. First year students’ impressions of pair programming inCS1. Proceedings of the 39th SIGCSE Technical Symposium on ComputerScience Education. Portland, OR, 2008.

[13] Townsend, G., Menzel, S. and Siek, K. Leveling the CS1 playing field. Proceedings of the 38th SIGCSE technical symposium on Computer ScienceEducation. Covington, KY, 2007.

[14] Williams, L. and Kessler, R. Pair Programming Illuminated. Addison-Wesley,2002.

___________________________________________

* Copyright is held by the author/owner.

103

PROVEN STRATEGIES THAT INCREASE PARTICIPATION

OF HIGH SCHOOL STUDENTS IN COMPUTING*

CONFERENCE WORKSHOP

Henry M. Walker Department of Computer Science, Grinnell College

Member, Development Committee for the Advanced Placement Computer Science ACourse

Much has been written about the decrease in the number of students pursuingcomputing in colleges. Unfortunately, most students form their (usually negative)opinions of computing long before they reach college [1], so it is beneficial for universityfaculty who want to increase college enrollment to do outreach aimed at a youngeraudience. To help encourage high-school/university interactions, the DevelopmentComittee of the Advanced Placement Computer Science A Course has proposed andorganized this and similar sessions for several regional and national meetings in2010-2011. This session will present ideas on how colleges can work with high schoolteachers and others to promote computer science to high schools students.

This session will proceed in two main sections: • Ideas that have worked for members of the Advanced Placement Computer Science

A Development Committee. • Brainstorming with session attendees to explore alternative ideas for outreach and

to identify further approaches.

IDEAS FROM THE AP CS A DEVELOPMENT COMMITTEEThe Advanced Placement Computer Science program provides an on-going

framework for collaboration among high school and college teachers. The following listidentifies a sample of the many ideas that have emerged from these collaborations. Inmany cases, members of the AP CS A Development Committee have used thesetechniques to good effect.

• Mentoring high school teachers:High school teachers often feel unprepared to teach computing courses in general

JCSC 26, 1 (October 2010)

104

and AP CS in particular. The session will present ideas for partnerships andcollaborations to encourage and support high school computing teachers.

• Workshops for high school teachers:Many high school teachers are interested in workshops, so they can increase theirbackground in computer science. The College Board offers some 1-day or 2-daysessions during the academic years. College faculty can offer week-long programsin the summer.

• Traveling to work with high school student groups:There are many ways colleges can reach out to high school student groups. You cango to the students by:

• organizing a tutoring program at the high school • developing flyers to send to local high schools, showing artwork from CS

students who enroll in art classes, especially digital art classes • organizing panels of folks from industry who use computing to discuss the vast

variety of technical careers • volunteering to help scout troops with computing related merit badges • developing a series of posters on local research to illustrate exciting things

folks are doing in CS • organizing a traveling "fun computing applications" presentation for use in

high schools • developing a robotics road show that can demonstrate interesting applications

in a high school setting • Inviting high school students to outreach sessions at a college • You can have the students come to you by: • hosting a CS career day for high school students, teachers, and guidance

counselors • collaborating with the ITS department to have a community open house to

"take a computer apart" to see what's inside § hosting an open house for localhigh school folks on research areas in CS

• creating summer camps for computing areas • Recruiting college students to work with high schoolers

CS majors can make direct contact with high school students • Many high schools have tutoring programs or opportunities for contact with

those in the community. CS majors can work directly with high schoolstudents within this framework.

• CS majors can participate in programs, such as big brothers/big sisters,scouting.

• CS majors can sponsor Saturday exploration sessions for high schoolers • Creating student competitions:

CCSC: Midwestern Conference

105

Some students are competitive and students who win competitions are recognized, evenif they are computing competitions. Thus, some colleges organize various types ofcompetitions that colleges can run for high school students, including Alice, WWW page,and programming competitions. Note: While this can work well, care is needed not torseinforce stereotypes and misconceptions regarding the nature of computer science andthe capacity of computing to better society.

BRAINSTORMINGOver the years, the Advanced Placement Computer Science A program has fostered

much collaboration among high school and college teachers, and the above ideasrepresent some successful approaches for reaching out to high school students.

But, of course, good ideas are not the unique province of Advanced PlacementComputer Science A. Session attendees also have experience in outreach, andbrainstorming can produce still more exciting possibilities. After seeding the discussionwith ideas from AP CS A, all session participants will be invited to identify and refineadditional approaches to engage high schoolers.

REFERENCE [1] Commission on Technology, Gender, and Teacher Education, Tech-Savvy:

Educating Girls in the New Computer Age, American Association of UniversityWomen, 2000. Available online athttp://www.aauw.org/research/upload/techsavvy.pdf

JCSC 26, 1 (October 2010)

106

Papers of the Twelfth AnnualConsortium for ComputingSciences in CollegesNorthwestern Conference

October 8-9, 2010George Fox UniversityNewberg, Oregon

108

WELCOME – 2010 CCSC: NORTHWESTERN CONFERENCE

On behalf of the CCSC Northwest Conference Committee, Regional Board andGeorge Fox University, I welcome you to the Twelfth Annual CCSC NorthwesternConference held on the campus of George Fox University in Newberg, Oregon.

Many individuals and groups helped coordinate and support this year’s conferenceand I want to thank them for all their time and effort. I also want to thank the authorswho submitted papers, panels, workshops and tutorials. In addition, thanks go to themembers of the program committee who had to make hard choices regarding the selectionof this year’s high quality presentations. There were 13 papers submitted and 6 accepted.We have provided a broad range of topics and feel attendees will enjoy the learning andparticipation that will accompany each one. We have encouraged the submission oftutorial, panel and workshop submissions and that is reflected in our program. In aneffort to provide more opportunities for discussion, we have also scheduled a Birds of aFeather session.

Thanks as well to the vendors whose efforts to provide us all with interesting andappropriate texts, samples and demonstrations are a key attraction for conferences put onby all of the CCSC family. We also must thank UPE for the funds it provides to supportour student poster contest.

A final thank you must go out to you the attendees whose participation is essentialnot only to the continuance of conferences such as this but also for the continuedcommunication and collegiality you provide between all of us involved in theadvancement and promotion of our beloved discipline.

Richard WeissCCSC -NW 2010 Program Chair

2010 CCSC: NORTHWESTERN CONFERENCE COMMITTEE

Brent Wilson, Conference Chair . . . . . . . . . . . George Fox University, Newberg, OR,David Hansen, Site Chair . . . . . . . . . . . . . . . . . George Fox University, Newberg, OR Phil Prins, Papers Co-Chair . . . . . . . . . . . . . . Seattle Pacific University, Seattle, WA Elaine Weltz, Papers Co-Chair . . . . . . . . . . . Seattle Pacific University, Seattle, WA Corey Keating, Panels & Tutorials Chair . . . . . . . . . . . ECPI College of Technology Richard Weiss, Program Chair . . . . . . . The Evergreen State College, Olympia, WA David Hansen, Speakers Chair . . . . . . . . . . . . George Fox University, Newberg, OR Ron Tenison, Partners Chair . . . . . . . . . Linfield College (retired), McMinnville, ORJudith Cushing, Student Poster Chair . . . The Evergreen State College, Olympia, WA

109

REGIONAL BOARD — NORTHWESTERN REGION

Brent Wilson, Regional Representative . . . . . . . George Fox University, Newberg, OREd Gellenbeck, Secretary . . . . . . . . . Central Washington University, Ellensburg, WAAndrew Nierman, Treasurer . . . . . . . . . . . . University of Puget Sound, Tacoma, WASharon Tuttle, Editor . . . . . . . . . . . . . . . . . . . Humboldt State University, Arcata, CABrent Wilson, Membership . . . . . . . . . . . . . . . . George Fox University, Newberg, ORGeorge Hauser, Past Conf. . . . . . . . . . . . . . Pacific Lutheran University, Tacoma, WABrent Wilson, Next Conf. Chair . . . . . . . . . . . . George Fox University, Newberg, ORDavid Hansen, Next Site Chair . . . . . . . . . . . . . George Fox University, Newberg, ORClint Jeffery, Registrar . . . . . . . . . . . . . . . . . . . . . . . University of Idaho, Moscow, IDRichard Weiss, Webmaster . . . . . . . . . . . The Evergreen State College, Olympia, WA

ROSTER OF REVIEWERS — 2010 CCSC NORTHWESTERNCONFERENCE

Arnie Berger . . . . . . . . . . . . . . . . . . . . . . . . . . University of Washington, Seattle, WAShawn Bowers . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gonzaga University, Spokane, WAJames Brink . . . . . . . . . . . . . . . . . . . . . . . . Pacific Lutheran University, Tacoma, WARob Bryant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gonzaga University, Spokane, WADonald Chin . . . . . . . . . . . . . . . . . University of Washington - Tacoma, Tacoma, WAJudy Cushing . . . . . . . . . . . . . . . . . . . . . . . . . Evergreen State College, Olympia, WAPeter Drak . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lewis & Clark College, Portland, ORBill Erdly . . . . . . . . . . . . . . . . . . . . . University of Washington - Bothell, Bothell, WAMunehiro Fukuda . . . . . . . . . . . . . . . University of Washington - Bothell, Bothell, WAE. Giangrande Jr. . . . . . . . . . . . . . . . . . . . . . . . . . . . Wingate University, Wingate, NCDavid Hansen . . . . . . . . . . . . . . . . . . . . . . . . . . . George Fox University, Newberg, ORGeorge Hauser . . . . . . . . . . . . . . . . . . . . . . Pacific Lutheran University, Tacoma, WATyson Henry . . . . . . . . . . . . . . . . . . . . . California State University - Chico, Chico, CASteve Kollmansberger . . . . . . South Puget Sound Community College, Olympia, WAKyu Lee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . St. Martin's University, Lacey, WABob Lewis . . . . . . . . . . . . . . . Washington State University - TriCities, Richland, WADavid Meyers . . . . . . . . . . . . . . . . . . . . . . . . . Evergreen State College, Olympia, WAMichael Panitz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cascadia College, Bothell, WAPhilip Prins . . . . . . . . . . . . . . . . . . . . . . . . . . . . Seattle Pacific University, Seattle, WATimothy Rolfe . . . . . . . . . . . . . . . . . . . . Eastern Washington University, Cheney, WAMike Tindall . . . . . . . . . . . . . . . . . . . . . . . . . . Seattle Pacific University, Seattle, WADavid Todd . . . . . . . . . . . . . . . . . . . . . . Mt. Hood Community College, Gresham, ORSharon Tuttle . . . . . . . . . . . . . . . . . . . . . . . . . Humboldt State University, Arcata, CAKaren Ward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . University of Portland, Portland, ORRichard Weiss . . . . . . . . . . . . . . . . . . . . . . . . Evergreen State College, Olympia, WADavid Wolff . . . . . . . . . . . . . . . . . . . . . . . . Pacific Lutheran University, Tacoma, WAKen Yasuhara . . . . . . . . . . . . . . . . . . . . . . . . . . University of Washington, Seattle, WAKathie Yerion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gonzaga University, Spokane, WACarol Zander . . . . . . . . . . . . . . . . . . University of Washington - Bothell, Bothell, WA

___________________________________________

* Copyright is held by the author/owner.

110

KEYNOTE ADDRESS

Friday, October 8, 2010

WHITHER AND WHENCE PARALLELISM *

Michael WolfeCompiler Engineer

The Portland Group, Inc.

Today we can find dual- and quad-core laptops in our local office supply store. Dowe want multiple cores? Why? Why did multicore processors only become available inthe past five years? Where will the move to multicore processors end? How doesprogramming for a multicore differ from programming for a single core?

Parallel computing is not new. A multicore processor is one point on a spectrum ofparallel processing that dates back to some of the original computers from the 1960s.Early computer manufacturers (IBM, Control Data) used pipelining to improve theinstruction per clock ratio, inventing many techniques that are today in common use. Thefirst attempts at parallel computing using multiple processors were challenging frommany aspects, yet lessons learned then also serve today's designs. Scientific computingfocused on vector processors for many years. In the last twenty years, commodityprocessors reached a high enough performance level and a low enough price differentialto make design of custom processors mostly prohibitive; parallelism efforts continued onthe internal design of these processors, and on novel methods to connect them. Chipvendors (Intel, AMD, IBM) continually added new features (caches, lookahead units) andnew specialized instructions to keep the performance graph rising.

Around 2003, mainstream chip vendors realized that focusing on faster clock speedswas no longer feasible. System performance improvements would have to come fromother system aspects, the most promising being multiple cores on a single chip. Moore'sLaw still rules: the transistor count on a silicon die still increases exponentially with time,but now the focus is on thread-level (not instruction-level) parallelism.

Today's marketplace is moving toward an untethered, mobile communication andcomputation infrastructure. Services provided by large distributed appliances are queriedby and connected to battery-powered, handheld devices. The tradeoffs for these clientsare very different than for powerline devices; multiple, specialized cores appear asstandard parts in many such designs.

111

We explore a variety of parallel computing architectures, and discuss how to preparethe upcoming generation of computer scientists to manage today's and tomorrow'sinevitably parallel computing landscape.

SHORT BIOGRAPHYMichael Wolfe joined The Portland Group as a compiler engineer in 1996; his

responsibilities and interests include deep compiler analysis and optimizations rangingfrom improving power consumption for embedded microcores to improving the programson parallel clusters and GPUs. He was an associate professor at the Oregon GraduateInstitute from 1988 until 1996, and was a cofounder and lead compiler engineer at Kuckand Associates, Inc., prior to that. He has published one textbook, "High PerformanceCompilers for Parallel Computing", a monograph, "Optimizing Supercompilers forSupercomputers," and a number of technical papers.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

112

3D VORONOI DIAGRAMS OF REAL TREES*

Andrew WalshThe Evergreen State College

2700 Evergreen Parkway NorthwestOlympia, Washington, 98505

360- [email protected]

ABSTRACTVoronoi diagrams are a useful tool for computing spatial relationships. Thispaper is about the application of this concept to 3D data obtained from foreststo answer questions in ecology. The standard construction treats each point asan independent entity, but here the objects are sets of points that correspondto a tree or cluster of trees.

INTRODUCTIONThe Scientific Database Lab at The Evergreen State College is currently interested

in creating Voronoi diagrams to visualize and analyze tree data gathered from specificplots of land that are used for ecological research. The dataset being used is known asthe Thousand Year Chronosequence (1KCS) data set, which samples a number of forestsranging in age from only a few decades to nearly a thousand years, in an effort to studyforests during their various life stages. These visualizations could potentially help inunderstanding the relationships between trees and groups of trees, and how the growth,resources, or position of some trees affects those properties of others in the plot. Forexample, the models created by this application could help in determining the effects ofselective thinning of a stand of trees, or to determine how a forest fire would spreadthroughout that plot of land.

A Voronoi diagram is a geometric construction that creates one region for each pointin the input set; the Voronoi region for a point describes all space closer to that point thanany other point in the diagram. While standard methods exist for computing Voronoidiagrams in three dimensions, those methods deal with a set of input points, computing

CCSC: Northwestern Conference

113

a single region for each input point. The basic input units for this project, however, areactually entire trees, with specific sets of information about each tree in the plot.Attempts to reduce each tree into a single point in 3D space, such as some computedmidpoint of the tree, has proved to be an insufficient representation. This projectaddresses that issue by representing each tree as a set of points, and then merging thosepoints' regions in order to view what is understood as that entire tree's Voronoi region.Figure 1 shows an example of a 3D Voronoi diagram - oriented such that the 2D diagramfor a similar point set can be readily seen - with three input points shown as spheres, withVoronoi region boundaries represented as lines. The uppermost sphere has its own regionat the top of the image, and the two spheres below are separated by what is, at this angle,the thin triangle running from the center of the picture to the bottom.

The ultimate goal of this project is to create an application that will compute theVoronoi diagrams of stands of trees, based on real-world data. This application will beinteractive, allowing the user to manipulate the input data in order to observe the effectson the Voronoi diagram. Others could then build on this foundation, adapting it to theirspecific research needs.

Much related work has been done on 3D Voronoi diagrams. Among this work isthat by Kim, Cho, and Kim [1], where protein molecules were modeled and differentatoms were given different weights depending on their size. Our situation is moregeneral, where the objects are not necessarily convex. For a general treatment ofalgorithms for computing standard Voronoi diagrams see [2].

METHODSTo date, the Scientific Database Lab has created a handful of scientific visualization

applications. These visualizations cover areas such as 2D Voronoi diagrams of aerialforest data, 2D and 3D visualizations of tree data, and predicted sea level rise due to

Figure 1

JCSC 26, 1 (October 2010)

114

global climate change. The project discussed in this paper is currently being designed asa stand-alone project, though it could potentially be integrated with other visualizationsoftware. It consists of three parts: a computational geometry package for computingVoronoi diagrams, a database for the tree data, and visualization toolkit for displaying theresults.

The project builds on Qhull (qhull.org) which is a computational geometry suite thatprovides algorithms for computing the Voronoi diagrams for a set of input points; theparticular module that does this is named Qvoronoi. It accepts as input a simple text file,containing the (x, y, z) coordinates of each of the input points. Qvoronoi has manyoptions to specify the output. One type of output is the Voronoi regions, which aredefined by a set of points in space. Each Voronoi region represents all 3D space closerto the one input point it contains than any other input point. The points that define eachVoronoi region are called Voronoi vertices, and are single points in space. Each regionis a polyhedron and also has a specific set of faces represented by 2D polygons.

All this information is output as text files in a simple format. Voronoi regions arerepresented by lists of integers such as "5 0 4 5 7 11," where the first number is thenumber of vertices that define the region; the faces of each region are representedsimilarly. Each remaining number in the sequence is an index of a Voronoi vertex, andindicates which line of the output file that particular vertex's coordinates are on. Otherthan this basic format, there is no particular ordering of data, and a good deal of effort hasbeen expended on ordering and creating relationships among the data. For instance, todetermine whether a face belongs to a particular region, one must test whether theVoronoi vertices that define the face also belong to the set of defining vertices for theregion.

The application constructed thus far has a pipeline architecture. First, the input dataenters the program from a SQLite database file. A single tree is represented in softwareas a Tree object, which has all of the relevant information about that tree in one datastructure. The measurements used for each tree include the height of the tree, furthestbranch extensions in multiple directions, trunk diameter, height from the ground to thelowest branch, and the (x,y) coordinates of that tree within the plot.

Each tree is represented as a set of points, which is derived from the actualmeasurements of the tree. For example, one point is the highest tip of the tree, anotherseveral points are located at the furthest branch extensions, and other points are locatedaround the trunk of the tree. The current polygonal representation of the trees can be seenin Figure 2.

The visualization toolkit is VTK, a 3D graphics library which has the precision andcontrol required for scientific visualizations, and is being used to display the informationextracted from Qhull and the current system. VTK has a host of graphical data structuresthat are used to represent geometric entities. Spheres visually represent points in space.Both spheres and simple lines are used to construct the wire frame trees. VTK does not,however, directly support the drawing of arbitrary polyhedral cells (i.e. the Voronoiregions). Instead, in our application, we created Voronoi regions as a boundaryrepresentation out of VTK's 2D polygon objects. VTK has alpha blending so that it ispossible to highlight specific polygons.

CCSC: Northwestern Conference

115

One of the challenges for visualization is that some of the regions in the Voronoidiagram are not finite; these regions lay mostly on the periphery of the diagram andextend into infinity. VTK has no mechanism for drawing infinite planes, and Qhull onlyindicates a singular 'point at infinity' that does not help with drawing the plane. Toremedy this issue, the set of input points is enclosed by a bounding box of points, whichensures that all of the Voronoi regions of the input point set are bounded, and only thepoints of the bounding box have infinitely-extending regions. The set of points for all thetrees in the input data plus the bounding box's points is then fed into Qvoronoi, whichoutputs information about the Voronoi diagram of that point set.

At this point, each tree's region is fragmented into many regions, one for each ofthe points in the representation of that tree. These regions must be merged into oneregion, so that each tree has its own continuous and non-fragmented Voronoi region;then, if the user so wishes, the regions for trees in the same group (known as a 'stand' oftrees) must also be merged, as the relationships between groups of trees could be asuseful as those between individual trees.

The merging operation is straightforward: for each polygon composing the regionboundaries of the Voronoi diagram, Qvoronoi details the two points that are the closestto that face than any other points in the diagram. To determine whether a face should bemerged into a region and therefore not be rendered, we must know which trees the pointsbelong to. If they belong to the same tree, their regions should be merged; if they belongto different trees, the region boundary should be rendered. Since each tree has a fixednumber of points associated with it, and these points have consecutive uniqueidentification numbers, e.g. tree 1 has point identifiers of 1-12, tree 2 has point identifiersof 13-25, and so on, simple integer division is used to determine which tree the pointbelongs to.

Figure 2

JCSC 26, 1 (October 2010)

116

RESULTSThe bulk of the work for this project has been the integration of the output from

Qvoronoi with VTK for the 3D display.The information provided about the Voronoi diagram by Qvoronoi cannot be used

directly to construct a visualization of a Voronoi diagram in VTK. For example, Voronoiregions in Qvoronoi are represented by a simple list of point coordinates written to anoutput file. VTK, however, does not support drawing arbitrary polyhedra. Instead, thefaces of each region must be constructed manually from VTK's 2D polygon objects. Thedata for these faces resides in another Qvoronoi output file, and there is no explicitrelationship between the specific faces of a region and the region itself.

The project at this point is coming along well. The system is able to drawapproximations of the 3D tree data using VTK, and drawing the regions for each tree'spoints is straightforward. The merging of individual points' regions, whose end-productis the tree's Voronoi region, has also been accomplished. Initially, the merging of 3Dregions was attempted by using Qhull to compute the convex hull of the Voronoi verticesimplicated in a tree's fragmented regions; in many cases this appeared to work, but inother examples it was obviously not correct, as a tree's Voronoi region is not necessarilyconvex. Figure 3 shows an example of this approach, where the two trees simultaneouslyoccupy each others' convex hulls, one of which is blue, the other, green.

CONCLUSIONS AND FUTURE WORKConstructing 3D Voronoi diagrams for entities other than single points in space has

proven a good experience in applying principles of computer science to design a solutionto a specific problem in the ecological domain. Hopefully this project will yield some

Figure 3

CCSC: Northwestern Conference

117

alternate data presentations that will be useful to the forest ecology community, and willgenerate new and interesting problems in computational geometry for computer scientists. This is work still in progress, and for the future, there is much work to be done. Thebulk of the problem's core has been solved or at least dealt with well enough, and nowmuch of the challenge lies in making the program more user-friendly. Thus far a GUIwith basic features has been constructed, and interactive features are being explored andimplemented in VTK.

As it currently exists, the program displays Voronoi diagrams in a static scene thatcannot be changed, and does not scale visually as the number of regions becomes large.We plan to make the program more interactive, allowing a user to manipulate the sceneand choose what information she wishes to display. In the current program, the terrainon which the trees reside is only a flat plane; this could be changed to more accuratelyreflect the data by integrating elevation information about the terrain, though these datamight not be readily available for some data sets. Performance is also an issue, as thetypical plot's Voronoi diagram is composed of tens of thousands of polygons. Displayingthe entire Voronoi diagram at once is computationally expensive, and finding ways tomake the data presentation more efficient is a high priority. Finally, there is always roomfor graphical improvements and a more user-friendly presentation and interface.

Lastly, the multi-point representation of trees that the project currently takes couldbe changed to actually represent each tree as a 3D volume; this approach would requirean overhaul of the entire program, as Qvoronoi only works with single points in space asinput.

ACKNOWLEDGEMENTSThe author would like to thank those who supported him while working on this

project: Richard Weiss, for his mathematical expertise and help with this paper; JudyCushing for obtaining funding for this work and encouraging interdisciplinary projects,as well as for her help with this document; Nikolas Stevenson-Molnar for his assistancewith many technical issues; and Lee Zeman for providing valuable domain knowledge.The ecology and visual analytics research and the author's time on this work were fundedby the National Science Foundations (grants BIO-DBI-0417311, 0939777 and CISEIIS-0917708, 0940748).

REFERENCES

[1] Kim, D-S., Cho, Y., Kim, D., Euclidean Voronoi diagram of 3D balls and itscomputation via tracing edges, Computer-Aided Design, 37, 1412-1424, 2005.

[2] O'Rourke, J., Computational Geometry in C, Cambridge, UK: CambridgeUniversity Press, 2001.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

118

ONE-STACK AUTOMATA AS ACCEPTORS OF

CONTEXT-FREE LANGUAGES*

Pradip Peter Dey, Mohammad Amin, Bhaskar Raj Sinha and Alireza FarahaniNational University

3678 Aero CourtSan Diego, CA 92123

pdey, mamin, bsinha, [email protected]

ABSTRACTThis paper presents one-stack automata as acceptors of context-free languages;these are equivalent to Pushdown Automata which are well known in automatatheory. As equivalence relations such as equivalence of Turing Machines andtwo-stack Pushdown Automata help in learning general properties of formalmodeling, the equivalence relation of Pushdown Automata and one-stackautomata also helps in learning general properties of context-free languagemodeling. One-stack automata are helpful to students for several reasonsincluding: (1) their contrast with two-stack Pushdown Automata andmulti-stack automata is revealing for computability; (2) their computeranimation is helpful for learning their salient features; (3) their graphicalrepresentation is more easily obtained by augmenting Non-Deterministic FiniteAutomata for regular languages which usually precede context-free languageacceptors in the logical sequence of ideas.

INTRODUCTION The most elegant models of computation are the mathematically defined automata

including Turing Machines (TMs), two-stack Pushdown Automata (2PDA), LinearBounded Automata (LBA), Pushdown Automata (PDA) and Finite Automata (FA).These models are usually studied in the fields of theory of computation, automata theoryand computability. TMs define the most powerful automata class for processing the mostcomplex sets, namely, recursively enumerable sets. TMs are equivalent to two-stack

CCSC: Northwestern Conference

119

automata or 2PDA as proven by Minsky [7]. Classical forms of Pushdown Automata(PDA) are required to have exactly one stack and they are non-deterministic unlessotherwise explicitly stated. PDA are acceptors of the class of Context-Free Languages(CFL's) or sets. They are less powerful than TMs; they cannot accept non-CFL's. FiniteAutomata (FA) define a proper subset of CFL's called regular languages denoted byregular expressions; they are equivalent to Non-deterministic FA (NFA). The abovenarrative information with some additional information is usually presented in a tabularform called the Chomsky hierarchy of grammars and languages as shown in Table 1 [1].

The Chomsky Hierarchy of Grammars and Languages

Type Language/Grammar Acceptor

0 Recursively Enumerable Turing Machines = 2PDA = Post Machines

1 Context-Sensitive Linear Bounded Automata (LBA) = Turing Machines withbounded tape.

2 Context-Free Pushdown Automata (PDA)

3 Regular Finite Automata (FA) = NFA = Transition Graphs

Table 1: The Chomsky Hierarchy

Unlike other automata classes, PDA are not shown to be equivalent to any otheracceptors [1]. This paper proves that one-stack automata are equivalent to PDA andsuggests that this equivalence relation helps in learning general properties of CFLacceptors. In addition, computer animation of one-stack automata(www.asethome.org/onestack) demonstrates their revealing features [3]. Due tonumerous recent research activities with multi-stack automata [2, 6] the name and therepresentation of one-stack automata are carefully chosen to avoid possible confusions.This paper presents essential features of one-stack automata and describes how thesefeatures and their animation promote learning CFL modeling. ONE-STACK AUTOMATA

One-stack automata are designed as acceptors of CFL's; they are unable to acceptany non-CFL. For example, L1 = anbn : where n >= 0 is a well-known CFL [1]which can be accepted by a one-stack automaton. The definition of the automata ispresented below followed by two examples.

Definition of One-Stack Automata A one-stack automaton is composed of 5 components:

1. Σ: a finite non-empty set of symbols called alphabet from which input strings areformed. 2. S: a finite non-empty set of states including 2a. One start state ( marked by -) ; 2b. Some (may be none) final states (marked by +) ; 3. Ω: an optional pushdown STACK, infinite in one direction. Initially, the STACK isempty containing all blanks ( Δ).

JCSC 26, 1 (October 2010)

120

4. Γ: an optional finite set of symbols called the STACK SYMBOLS. If the STACK isincluded then the STACK SYMBOLS are also included. 5. T: a finite set of transitions (edge labels) including:5a. A finite set of transitions that show how to go from some states to some others,based on reading a specified symbol from input or the null string, ^ . 5b. Some (may be none) special transitions called push transitions each of which readsa symbol from input and inserts a symbol onto the top of the STACK. 5c. Some (may be none) special transitions called pop transitions each of which readsa symbol from input and pops a symbol from the top of the STACK. 5d. Some (may be none) special transitions each of which examines if the stack is emptyby reading and popping Δ.

EXAMPLES AND EXPLANATIONSOne-stack automata are augmented from -NFA (NFA with null-transitions) to CFL

acceptors with an optional stack and optional push and pop transitions. On the otherhand, every PDA is required to have a stack and every transition in a PDA is specifiedwith reference to the stack [4, 5, 8]. Every NFA is not a PDA, whereas every NFA is aone-stack automaton. The latter proposition helps student's understanding of the ChomskyHierarchy, because every regular grammar is a CFG. Two examples of one-stackautomata are presented below.

Figure 1: A one-stack automaton for anbn : where n > = 0

An example of a one-stack automaton for L1 = anbn : where n > = 0 is shownin Figure 1, where Σ is given by a, b; S is given by three states each of which isrepresented by a circle; the start state is represented by a circle marked by -; the finalstate is represented by a circle marked by +; Ω is given by a horizontal stack; Γ is givenby a ; T is given by a set of transitions each of which is represented by an arrow. Ifthe string, aabb, is given as an input to the automaton of Figure 1 then it would beaccepted by the following sequence of steps: (i) by starting the machine at the start state(marked by -) and scanning the first a of the input string while traversing the pushtransition marked by a, push a which pushes a into the stack; (ii) by scanning the seconda while taking the same push transition marked by a, push a again which pushes anothera into the stack; (iii) by taking the null-transition marked by ^ but not consuming anysymbol from the input; (iv) by scanning the third symbol b from the input while taking

CCSC: Northwestern Conference

121

the loop transition marked by b, pop a; (v) by scanning the final symbol b from the inputwhile taking the loop transition marked by b, pop a; (vi) by taking the transitionmarked by ^, pop Δ. After the preceding sequence of actions the automaton meets theacceptance conditions given below and, therefore, accepts the input. The input isaccepted if the following conditions are met: (a) starting with the start state (marked by-) the automaton reaches one of the accept or final states (marked by +); (b) the stackis empty; (c) the input is consumed or completely scanned.

Figure 2: A one-stack automaton for ncn : where n >= 0

The one-stack automaton of Figure 2 is similar to that of Figure 1; however, itaccepts strings with matching number of 's and 's separated by one c; programminglanguages such as C++ have a similar string pattern. This machine will accept c andreject c.

That one-stack automata are equivalent to PDA can be proven with the followingtwo theorems. It is assumed that the reader is familiar with PDA given in textbooks suchas [1]; the proofs of the theorems are given with brevity.

Theorem 1: For every one-stack automaton there is a PDA.Proof: An arbitrary one-stack automaton can be converted into a PDA. The

alphabet, Σ, is the same in both. The stack symbols and the stack are also the same inboth. If the start state of the one-stack automaton has incoming transitions then usingnull-transitions it is mapped to a new start state without any incoming transitions. Thesingle start state of the one-stack automaton is converted to the START state of the targetPDA. If any final states of the one-stack automaton have out-going transitions then thesefinal states are mapped to new final states without out-going transitions usingnull-transitions. The final states of the one-stack automaton are then converted toACCEPT states of the PDA. Each of the push transitions of the one-stack automaton isconverted to a sequence of READ-PUSH states; if a push transition of the one-stackautomaton has a, push a then it is converted to:

JCSC 26, 1 (October 2010)

122

Similarly, each pop transition of the one-stack automaton is also converted to a sequenceof READ-POP states of the PDA. All other transitions of the one-stack automaton areconverted to the READ states of the PDA. That is a transition labeled a is converted to:

Null-transitions of the one-stack automaton are eliminated by creating sequences of PDAstates.

Theorem 2: For every PDA there is a one-stack automaton.Proof: Any arbitrary PDA can be converted to a one-stack automaton. The

alphabet, Σ, is the same in both. The stack symbols and the stack are also the same inboth. The START and ACCEPT states of the PDA are converted to the correspondingstart and final states of the one-stack automaton and if necessary null-transitions areadded. A sequence of READ-PUSH states is converted to a push transition of one-stackautomaton; if

is given in the PDA then it is converted to a single loop push transition labeled by a,push a. Similarly, a sequence of READ-POP states of the PDA is converted to a singleloop pop transition. Other READ states are converted to a corresponding transition withthe same label. The REJECT states of the PDA are deleted; one-stack automata do nothave REJECT states; they just crash if no path can be found for the letter read from theinput buffer as in FA, NFA and TMs [1].

Since PDA are equivalent to one-stack automata, every formal aspect proven forPDA would apply to one-stack automata also. Thus, one-stack automata are alsoequivalent to CFGs, since PDA are proven to be equivalent to CFG's [1, 4, 5, 8].Equivalence relations are often used in textbooks as learning exercises. Animation ofone-stack automata clearly shows use of stack for matching strings without counting [3].In a survey, 22 out of 25 respondents (88%) found one-stack automata helpful in learningCFL processing.

CCSC: Northwestern Conference

123

CONCLUDING REMARKSOne-stack automata are equivalent to PDA. This equivalence may be considered in

a learning environment because learners may get a better understanding by comparingrelated features of the two. The equivalence relation of PDA and one-stack automatahelps in learning general properties of CFL modeling. Some learners may also like thestack related generalization that zero-stack automata are equivalent to regular grammars;they accept regular languages; they do not accept non-regular languages. One-stackautomata are equivalent to CFG's; they accept CFL's; they do not accept non-CFL's. Twoor multi-stack automata are equivalent to un-restricted phrase structure grammars andthey accept recursively enumerable sets.*

REFERENCES

[1] Cohen, D., Introduction to Computer Theory, 2nd Edition, New York, NY: JohnWiley & Sons, 1997.

[2] Dassowa, J., Mitranab, V., Stack cooperation in multistack pushdown automata,Journal of Computer and System Sciences, 58 (3), 611-621, 1999.

[3] Dey, P. P., Farahani, A., One-Stack Automata Animation, http://www.asethome.org/onestack, retrieved April 12, 2010.

[4] Hopcroft, J. E., Motwani, R., Ullman, J., Introduction to Automata Theory,Languages, and Computation, Pearson Education, 2007.

[5] Lewis, H. R., Papadimitriou, C. H., Elements of the Theory of Computation, 2ndEdition, New Jersey: Prentice_Hall, 1998.

[6] Limaye, N., Mahajan, M., Membership Testing: Removing Extra Stacks fromMulti-stack Pushdown Automata, Language and Automata Theory andApplications, LNCS, Springer, 2009.

[7] Minsky, M. L, Recursive insolvability of Post's problem of 'Tag' and other topicsin theory of Turing Machines, Annals of Mathematics, 437-55, 1961.

[8] Sipser, M., Introduction to the Theory of Computation, 2nd Edition, PWSPublishing, 2006.

* Comments of some anonymous CCSC/NW reviewers were very useful.

___________________________________________

* Copyright is held by the author/owner.

124

A GENTLE WAY OF INTRODUCING MULTI-CORE

PROGRAMMING INTO THE CURRICULUM*

TUTORIAL PRESENTATION

Timothy J. McGuireDepartment of Computer Science

Sam Houston State UniversityHuntsville, TX 77341-2090

936 294-1571 [email protected]

ABSTRACTMoore's Law is an observation predicting that the number of transistors placed on

an integrated circuit would double every 18 to 24 months. Until recently, this hasroughly translated to increases in clock speed and processing power in the same timeperiod. Recently, however, improvements in hardware processing power are proceedingon a new model. Instead of deriving processing power from scaling clock speed, whicheventually increases power usage and heat emission to unmanageable levels, chipmanufacturers have begun to increase overall processing power by adding additionalprocessing cores to the microprocessor package, while clock speeds have remainedvirtually unchanged. New processors will eventually come in heterogeneousconfigurations such as combinations of high- and low-power cores, graphical processors,etc. These future configurations are being termed "many-core" architectures.

For software developers, this change raises many challenges. No longer willprogrammers be able to "ride the wave" of increasing performance without explicitlytaking advantage of parallelism. Currently, only a very small proportion of developershave expertise in parallel programming. Software developers need new programmingmodels, tools, and abstraction by the operating system to handle concurrency andcomplexity of numerous processors. For computer science educators, this change willalso require radical shifts in the way computer science is taught. Parallelism will need tobe introduced early in the curriculum, preferably in the CS1/CS2 sequence.

Despite the fact that the high-performance computing community has beenprogramming parallel applications for many years, most programmers have only acursory understanding of the issues involved in developing multi-core applications. Asmachines with 32 or more cores become commonplace, students must gain a working

CCSC: Northwestern Conference

125

knowledge of how to develop parallel programs. It seems evident that students must beexposed to concurrency throughout the curriculum, beginning with the introductory CSsequence.

While new parallel languages will be developed (as well as extensions to existinglanguages) it is not yet evident which direction that development will head. What isimportant is to begin the transition to "thinking in parallel" immediately, whether or notthe mechanism for doing so is ideal.

Message-passing (MPI) and threads (POSIX threads and Java threads) have beenthe methods of choice for teaching parallelism at the undergraduate level. Sincemulti-core systems use shared-memory, and the message-passing model is more suitedfor clusters than it is for shared-memory systems, it is not a likely candidate formulti-core and many-core systems. Java threads have the advantage of being a part of thelanguage, making it useful for parallel programming on multi-core machines.Nonetheless, even though threads may be seen as a small syntactic extension to sequentialprocessing, as a computational model, they are non-deterministic, and the programmer'stask when using them is to "prune" that non-determinism. Languages such C or C++ canuse POSIX threads, which are implemented by a standard library providing a set ofhigh-level-language calls for writing multi-threaded code. These have the samedifficulties in programming that Java threads do.

One possible solution is OpenMP (Open Multi-Processing,) an API which supportsshared memory multiprocessing. It consists of a set of compiler directives and a libraryof support functions. Open MP works in conjunction with Fortran, C, and C++.Compared to Pthreads, OpenMP allows for a higher level of abstraction, allowing aprogrammer to partition a program into serial regions and parallel regions (rather than aset of concurrently executing threads.) It also provides intuitive synchronizationconstructs. It is the presenter's contention that introducing OpenMP early in thecurriculum will be of benefit to students, giving them exposure to the concepts ofthreading, while eliminating the much of the pitfalls of nondeterminism.

This tutorial will survey the parallel programming landscape, summarize theOpenMP approach to multi-threading, and illustrate how it can be used to introduceparallelism into the lower-level curriculum to novice or intermediate programmers.Similar mechanisms using Java, such as PJ, JOMP, and JaMP will also be discussed.

ACKNOWLEDGEMENTS The author wishes to thank Dr. Michael Scherger of Texas A&M University-Corpus

Christi for his assistance and advice in developing this tutorial.

___________________________________________

†This work is supported in part by Microsoft Research under the Computer GamingCurriculum in Computer Science RFP, Award Number 15871

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

126

GAME PROGRAMMING IN CS0: A SCAFFOLDED

APPROACH † *

Michael PanitzSoftware Programming

Cascadia Community College18345 Campus Way NE

Bothell, WA, 98107425 352-8211

[email protected]

Kelvin SungComputing & Software Systems

University of Washington, Bothell18115 Campus Way Northeast

Bothell, WA 98011425 352-5420

[email protected]

Rebecca RosenbergCSU Monterey Bay

100 Campus Center, CSU Monterey Bay,Seaside CA 93955-8001

831 [email protected]

ABSTRACTIn an effort to appeal to students who would not traditionally take a ComputerScience course, we have created a CS0 course that scaffolds students into(basic) game programming using first the GameMaker tool and then C#. Ourgoal was to create an engaging, accessible course that that would attractstudents who had not previously taken any Computer Science courses, and thatwould provide them with a firm foundation of programming knowledge.Pre-term and post-term testing indicated that students learned a substantialamount using this approach, and that students preferred this scaffoldedapproach to a single-language approach overall.

CCSC: Northwestern Conference

127

INTRODUCTIONBecause the University of Washington, Bothell is a small school, it is vitally

important that the Computing and Software Systems department find ways of attractingnew students into it's Computer Science major. The authors piloted a one-termintroduction to simple game programming course intended for non-majors. The twingoals of the course were to draw students into the course via the problem domain (gameprogramming), and to scaffold them to C# programming by first using a graphicalprogramming tool.

The class was aimed at freshmen and sophomore students who had not yet declaredan intent to major in Computer Science, and was intended to be attractive to students whohad no prior programming experience. We chose to use games as the 'hook' because manystudents find games engaging [18, 12]. Katz found that "The only applied interest wefound expressed among the B-and-above male students was video game programming"[11, Pg 51].

We considered several possible platforms for the teaching this topic, but found thatGameMaker was uniquely well suited to exploring this problem domain withintroductory-level students. For example, while Carnegie Mellon University's Alice [1]addressed our concerns that the tool be easy to use by students who have neverprogrammed before, we found that it was primarily focused on general, three-dimensionalstorytelling [15, 6]. We felt that GameMaker was a better fit for specific problem domainof two-dimensional games.

Looking at similar efforts at other colleges, two broad categories emerged: usingGameMaker in the early courses of a game design program, and incorporating games intoCS1 (rather than CS0) classes.

There is a wide spectrum of game and game development classes [3]. However,even amongst the lower-level classes that can most easily serve the purpose of recruitingnon-major students into the program, very few courses include aspects of both gamedesign and computer programming. For example, Chamillard [7] made extensive use ofdrag-and-drop game creation tools (including GameMaker) and various multimedia tools(e.g., Paint Shop Pro), but had no required programming. Rocco and Yoder [16]discussed a two course sequence which focused on the game design aspects of creatinga game (including game analysis, the use of tools like Photoshop and Flash, and the useof tools like GameMaker), but had only a minimal focus on programming. It was our goalto create a class that utilized both game programming and game design to draw studentsin, but still had a strong focus on computer programming.

There is a rich history of using games in CS1 (and CS2) classes to increase studentengagement in a variety of ways [4, 12, 5]. However, most CS1 classes are orientedtoward students who have already committed to studying Computer Science, many ofwhom have had prior programming experience. Such students already understand (andaccept) the demanding workload and rigorous assessment that many CS1 classes feature.From the perspective of a student who has no programming experience, CS1 classes canbe intimidating and overwhelming. We created a course that was less demanding and hada slower pace so it would serve the purpose of recruiting non-majors.

For our CS0 class, we decided to cover several major programming topics for theterm using a tight repetition cycle - we first covered the material using the GameMaker

JCSC 26, 1 (October 2010)

128

tool [14], then immediately re-covered the material in the C# language, using ourXNA-based library [2, 17]. It was hoped that covering the material twice would ensurerepetition of student effort in learning the material in a way that went beyond rote,'plug-and-chug' drills. The programming topics that were covered include sequences andoperators, conditional statements, iterative statements, arrays, and functions.

COURSE STRUCTUREThe major innovation of this course was to use the GameMaker tool to present a

topic, and to then cover that same material again using the C# programming language(using our custom library, based on XNA [2, 17]). The primary advantage of usingGameMaker was that it allowed students with no prior programming experience to creategame logic in way that is almost entirely graphical and event-driven, and therefore easyto understand. Students wrote event handling code by dragging and dropping GameMaker'Actions' into the appropriate event handler. Each action had a distinctive icon associatedwith it, and some actions were further customized with non-graphical parameters. Forexample, the 'Change Score' action was given a number that specified how much tochange the player's score by. The key objective here was to use the GameMaker tool topresent a graphical representation of the game's structure, which was an ideal way tointroduce students to various logical structures in an easy (and nearly syntax-free) way.

It is the authors' belief that repetition of material can be beneficial for introductorystudents. Our approach affords students a second chance to absorb concepts that they maynot have fully comprehended on their first viewing. Mastering these computerprogramming fundamentals is necessary for students to succeed in future courses, suchas CS1. At the same time, rote memorization and rote repetition rarely encourages the'deep learning' necessary to thoroughly learn these topics.

Another benefit of this approach is that it reduced the volume of genuinely newmaterial, which helped to avoid over-whelming the non-majors. In addition to thosepedagogical merits, it was felt that while presenting programming concepts using agraphical programming environment excels at demonstrating the concepts, it isimperative that students also be exposed to writing 'real code' in a 'real language'.

The C# language was selected because of the strength of its XNA library, which wesupplemented using our own library [2] to further simplify student interactions withXNA. The topics of variables and expression evaluation, conditional statements, andrepetition statements were all covered in this fashion.

One of the limitations of GameMaker is that it lacked a graphical programminginterface for arrays or functions. These features are all present, but are only accessiblethrough a scripting language (named 'GML'). In addition, the chosen textbook for theGameMaker materials [10] had very limited support for these topics, and the onlinedocumentation was also limited. It was therefore decided that instead of trying to coverthese topics using GML first, then repeating the topic in C#, instead all of the time wouldbe used to cover the topics using only C#. A nice side effect of that decision was that itgave the students the opportunity to compare and contrast the two approaches (GM thenC#, or pure C#). Exposing students to a C# only approach also helped prepare them forthe single language approach that's commonly used in CS1 classes.

CCSC: Northwestern Conference

129

RESULTS AND DISCUSSIONThe effectiveness of the course was assessed by measuring the 14 students'

performance (using opinion surveys and skills tests) and opinions (using surveys) at twopoints during the course. The skills test contained short questions on the topics ofexpression evaluation, conditional statements, loops and arrays, and functions (with basicobjects), all using the C# language. The first ('pre-term') measurements were done on thevery first day of class, prior to covering any material. The second ('post-term')measurements were done on the very last day of class. The post-term skills test wasadministered as part of their final exam, and covered material identical to the pre-termskills test.

Skills Test ResultsThe students' performance on the skills tests demonstrated improved understanding

of the material over the course of the term. As shown in table 1, students' post-test scoreswere higher than their pre-test scores for all of the measured topics. The numbers listedin table 1 represent the overall average percentage, for the class, for each question. Theimprovement in students' skills is particularly notable, given that the pre-term test wasadministered on the first day of class, and the post-term test was administered as part ofthe final exam, meaning that substantial amounts of time accrued between the pointswhen the students saw any given topic in class, and when they took the post-term test.

Expr. EvalConditionalsPretest PostTest Pretest PostTest30% 60.7% 53.3% 78.6%Repetition & ArraysFunctionsPretest PostTest Pretest PostTest37.8% 54.8% 26.7% 60.7%

Table 1: Results from the pre and post tests

Student Reactions To ScaffoldingIn the post-course opinion survey, students were asked "Overall, which approach

was more effective:(1) covering a topic in GameMaker, then covering it again in C#, or(2) covering a topic by spending all the time working in C#? ", A surprisingly highnumber of people expressed a preference for the C# only approach - 5 out of 14.

Amongst the limited number of comments that students made about this question,one person stated "I would prefer to use C# through the entire course.", two people saidthat they could have used either approach, and four people left pro-scaffolding comments:"the method of covering GameMaker first and then switching to C# was very effective","This helped to simplify the process", "game maker provides basic knowledge of c#.",and "[...]it's more effective learning in one program and then applying it in a slightlydifferent manner in the other program (not only being reminded of the concept throughrepetition, but also comparing the two programs to see how they differ)"

JCSC 26, 1 (October 2010)

130

In terms of why 5/14 of the class stated a preference for the C#-only approach, itmay be that the students felt the material was covered well overall, but preferred spendingmore time on fewer topics. Because students generally had a more difficult time withC#, their preference for a C#-only approach probably reflects a desire for additional helpon a challenging topic, rather than a disliking for the GameMaker - C# approach. Thisidea seems to be supported by the one C#-only comment made by a student that reflecteda desire to spend more time on C#, rather than criticizing anything about the scaffoldedapproach (and the lack of any other negative comments).

In the post-course opinion survey, students were also asked how effectively the classcovered each of the major topics, on a scale of zero to five, with five being 'veryeffective'. Students generally rated conditionals (overall average of 4.5) and iteration(4.07 overall) the same (or slightly higher) than the C# only approach used for arrays(Overall=3.93) or functions(4.2).

Effectiveness of Attracting Students With Game Programming In general, students validated our choice to use gaming as a topic to draw in

students. When asked if they agreed with the statement "I enrolled in this class becauseof this class's focus on gaming." the overall average on the pre-term survey was 4.0 (ona 0 to 5 scale, 5 being strong agreement). On the post-term survey, students stronglyagreed with the statement "This class met my expectations of a class that focused ongame creation." with an overall average rating of 4.5 (on a 0 to 5 scale).

A Sample Of Student WorkFor the final project of the term the students were strongly encouraged to work in

groups, on a game of their own devising. The range of topics that students chose for thegames was broad, ranging from maze games, to a Tetris-like math skills game, to a firstperson rail' shooter. Pictured in Figure 1 is a screen shot of the math skills game, named'Sum Blocks' that was created using GameMaker. It was inspired by Tetris; blocks appearat the top of the screen, and the player controlled where the block went as it slowly felldownwards. The blocks were restricted to being on a grid, so that they lined up nicely.Each block had a random number on it, and the current target sum was displayed on theright side of the screen. When one placed the current block onto other blocks (e.g., bysteering the `2' in the middle of the screen onto the `1' directly below it), the gamechecked to see if the blocks summed up to the current target. If they did, then the blocksdisappeared, and the player was awarded points. The player advanced to the next levelof game play by filling up the columns in the `Progress' box, in the lower-right handcorner of the screen. For example, summing up to `3' by stacking the `2' onto the `1'counted as two-block progress, so the game would add a rectangle to the 2x column.

CCSC: Northwestern Conference

131

CONCLUSIONSThe authors are satisfied both with the overall effectiveness of using GameMaker

to scaffold student learning, and more specifically with the substantial improvement instudents' measured skills. The students enrolled in the course largely because of its focuson gaming, and the class met their expectations about a game-creation course overall.

REFERENCES

[1] Alice home page, http://www.alice.org/.

[2] XNA-based assignment home page,http://depts.washington.edu/cmmr/research/xna games.

[3] International game developers association curriculum framework (3.2beta), Feb.2008.

[4] Bayliss, J. D., Strout, S., Games as a "flavor" of CS1, SIGCSE Bull., 38,500-504, 2006.

[5] Becker, K., Teaching with games: the minesweeper and asteroids experience, J.Comput. Small Coll., 17, 23-33, 2001.

[6] Brown, P. H., Some field experience with Alice, J. Compu. Small Coll., 24 (2),213-219, 2008.

[7] Chamillard, A. T., Introductory game creation: no programming required,SIGCSE '06: Proceedings of the 37th SIGCSE Technical Symposium onComputer Science Education, 515-519, 2006.

[8] Daempe, P., An analysis of the high attrition rates among first year collegescience, math, and engineering majors, Journal of College Student Retention, 5,37-52, 2003.

Figure 1: The `SumBlocks' Game

JCSC 26, 1 (October 2010)

132

[9] Giguette, R., Pre-games: games designed to introduce CS1 and CS2programming assignments, SIGCSE Bulletin, 35 (1), 288-292, 2003.

[10] Habgood, J., Overmars, M., The Game Maker's Apprentice: Game Developmentfor Beginners, Berkeley, CA: Apress, 2006.

[11] Katz, S., Allbritton, D., Aronis, J., Wilson, C., Soffa, M. L., Gender,achievement, and persistence in an undergraduate computer science program,Database for Advances in Information Systems, 37, 42-57.

[12] Leutenegger, S., Edgington, J., A games first approach to teaching introductoryprogramming, SIGCSE Bull., 39, 115-118, 2007.

[13] Olds, B., Miller, R., The effect of a first-year integrated engineering curriculumon graduation rates and student satisfaction: A longitudinal study, Journal ofEngineering Education, 93, 23-35.

[14] Overmars, M., Learning object-oriented design by creating games, Potentials,IEEE, 23, 11-13, 2005.

[15] Powers, K., Ecott, S., Hirshfield, Through the looking glass: teaching CS0 withAlice, SIGCSE '07: Proceedings of the 38th SIGCSE Technical Symposium onComputer Science Education, 213-217, 2007.

[16] Rocco, D., Yoder, D., Design of a media and gaming sequence for graduates inapplied CS, J. Comput. Small Coll., 22, 131-137, 2007.

[17] Sung, K., Panitz, M., Wallace, S., Anderson, R., Nordlinger, J., Game-themedprogramming assignments: the faculty perspective, SIGCSE '08: Proceedings ofthe 39th SIGCSE Technical Symposium on Computer Science Education,300-304, 2008.

[18] Sweedyk, E., deLaet, M., Slattery, M. C., Kuffner, J., Computer games and CSeducation: why and how, SIGCSE Bull., 37 (1), 2005.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

133

A PUZZLE GAME FOR INTRODUCTORY DATA

STRUCTURES*

Lukasz OpyrchalMiami UniversityOxford, OH 45056

513 [email protected]

James Van BoxtelWashington State University

VancouverVancouver, WA 98686

360 [email protected]

Scott A. WallaceWashington State University

VancouverVancouver, WA 98686

360 [email protected]

ABSTRACTComputer games have become an increasingly popular curricular tool amongstComputer Science (CS) educators. Because game development involves awide breadth of Computer Science skills, games can be integrated into manyplaces in a traditional CS curriculum. In this paper, we describe recent resultsfrom the Java Instructional Game project; we examine a game-based projectsuitable for use in the introductory classroom that focuses on simple datastructures. We show how this project can be adapted for students with differentprerequisite skills with minimal overhead and present results from a survey ofstudent perceptions about this project.

INTRODUCTIONThe Java Instructional Game (JIG) Project [5, 9] began in 2006 as a cross campus

collaboration to make a game framework (engine) that enables curriculum developmentfor students at any stage in their undergraduate careers. At the time of its inception; JIG

JCSC 26, 1 (October 2010)

134

was particularly noteworthy because few existing game frameworks had the samespecifications-namely: 1) use of the Java programming language; 2) an open-sourceplatform; and 3) a focus on 2-D games.

Games have been used by a variety of educators in the introductory curriculum (e.g.,1, 2, 4, 7, 8) where student and instructor perceptions indicate that games are, at least formany students, enjoyable and motivating vehicles for programming projects. Even at theintroductory level, educators report positive experiences when students develop completegames as capstone course-projects (e.g., [2]); when students focus on implementing asingle element of an existing game (e.g., [6]); and even when a student's lesson is builtinto playing a game itself [3].

In this paper, we discuss a puzzle game that is built using the JIG engine. Ourcurriculum is designed for use early in the CS curriculum, most suitably as part of a datastructures course. We take the approach of Sung et al. [6], amongst others, in whichstudents focus on implementing a single element of an existing game. In the followingsections, we begin by describing the puzzle game and then proceed to describe how it wasused in a second semester course at Washington State University Vancouver. Next, weshow that this game facilitates adaption by faculty with moderately different learningobjectives; in particular, we discuss a modification to the original game that made itusable for second semester CS students at Miami University. Finally, we present theresults of a student survey issued to both the course at WSU Vancouver and at MiamiUniversity and conclude with directions for future work.

THE PUZZLE GAMELearning Objectives

We designed the puzzle game with two main learning objectives in mind: 1)programming to an interface specification; 2) implementing a List data structure. In thetwo versions of the assignment described below, one version asked students to implementour list abstract data type (ADT) using a linked list data structure while the other used theadapter pattern with Java's built in ArrayList class. The puzzle, as described in the nextsection, was designed so that the player's actions correspond directly to operationssupported by our abstract data type. Thus, only a correct list implementation results in afully functioning game.

Game MechanicsFigure 1 shows a screenshot of level 3 of the game. The player's goal is to arrange

different shapes in separate columns so that the numbers attached to each shape are inascending order. The player moves shapes around by dragging them with a mouse.Dragging a shape splits a column into two parts: a head which remains stationary, and amovable tail containing one or more shapes that can then be attached to the front or rearof another column. In addition, the player may use a power-up once per level that enablesher to extract a single element from a column and insert it into beginning or end of anycolumn.

CCSC: Northwestern Conference

135

Our abstract list data type contains six methods described below that togetherprovide the functionality for the game: • removeRemaining(predecessor): splits a list into head and tail segments. • removeNext(predecessor): provides the functionality for the power-up move. • insertAfter(predecessor, listToInsert): allows a floating list segment to be spliced

into a new column. • findPredecessor(searchfrom, selected): finds the list element that precedes the one

the user has selected with the mouse. • getHead(): used with insertAfter to splice at the front of a list. • getLast(): used with insertAfter to splice at the end of a list.

Aside from the feedback students receive by playing the game and checking whichactions are functional, the game also provides rigorous error checking. By testing thevalidity of lists after each of the player's actions, the game ensures that the lists alwaysremain in a consistent state. If they do not (e.g., because a node gets orphaned or appearsin two lists simultaneously) diagnostic information is displayed on the screen to help astudent find the source of their error.

CS 122 AT WSU VANCOUVERThe introductory Computer Science curriculum at WSU Vancouver begins with an

initial programming course taught in Python. Students then proceed to CS 122, a datastructures course covering basic topics from arrays, stacks, and queues, to more

Figure 1. Screenshot of level 3 of the game.

JCSC 26, 1 (October 2010)

136

sophisticated data structures such as trees and maps. Students in CS 122 course begintheir semester making a transition from Python to Java, and at the same time learningsome of the elements of object-oriented programming. Programming assignments areissued on a near weekly basis with the first two focused on the language issues involvedin moving from Python to Java. We issued the puzzle game as the fourth project in thesemester, just after lectures covering singly and doubly linked lists.

CSA 271 AT MIAMI UNIVERSITYThe CS curriculum at Miami University takes the "objects first" approach. In their

first CS course, students are introduced to programming in Java and basics ofobject-oriented design. In CSA 271, the second CS course, students continue with moresophisticated aspects of object-oriented programming and design such as inheritance,polymorphism, design with UML diagrams. Additionally, this course introduces simpledata structures such as ArrayList and HashMap along with GUI programming. The courseat Miami is different from WSU Vancouver's in that it emphasizes object-orientedprogramming and design versus data structures (data structures are covered in Miami'sthird CS course).

We modified the puzzle game assignment by adding an additional level ofindirection between the student's solution and the game; this required no changes to thecore of the game-only to the interface between the student's solution and the game itself.In this way, students are able to use ArrayLists instead of linked lists thus making theassignment appropriate for the course. Students still implement the same list ADT, butdo so using the adapter pattern and Java's built in ArrayList class. They need to use theJava API to learn additional ArrayList features to help with the assignment. Theassignment was given at the beginning of the semester right after introducing theArrayList class.

EVALUATIONOur evaluation consisted of two elements: 1) direct assessment of learning outcomes

via rubrics; and 2) assessment of student perceptions via a written survey. Below, wepresent results from the courses as Miami University (Miami) and Washington StateUniversity Vancouver (WSUV).

Outcome assessmentOne reason for integrating games into early programming curriculum is to improve

student learning and student achievement of course learning outcomes. There are anumber of approaches to assessing learning outcomes. We performed direct assessmentvia assignment rubrics. To do this, we selected outcomes from each course's syllabus thatrelated to the puzzle game assignment and then scored the students' work based on rubricspertaining to these outcomes. We then categorized achievement on a scale borrowed fromthe Miami University Computer Science program. Namely this scale included:"Excellent", "Proficient", "Apprentice", and "Novice" categories. Ideally, most students

CCSC: Northwestern Conference

137

should be rated "Excellent" or "Proficient". The assessment results for WSUV and MiamiUniversity are presented in Table 1.

WSUV

Miami

OutcomeSelect and implement appropriatefundamental data structures to solveproblems.

Implement basic control structures,nested control structures,well-specified classes, single andmulti-dimensional arraysUse class libraries to assist inproblem solving.

Excellent/Proficient88% Correctlyimplemented all listfunctionality ensuring thatthe game worked.77% Demonstrated goodcoding style and readability.

87% Correctlyimplemented all listfunctionality ensuring thatthe game worked.95% Used ArrayListcorrectly to implement list.

Apprentice/Novice12% Critical listfunctionality was notimplemented correctly. The game does not work.23% Code styleindicated amisunderstanding orlacked readability.13% Critical listfunctionality was notimplemented correctly. The game does not work.5% Did not use JavaArrayList API correctly.

Table 1: Direct Assessment for WSUV and Miami University Students

Our assessment indicates that majority of the students achieved the desired outcomelevels. This shows that the assignment served its purpose. The next section evaluatesstudent satisfaction with the assignment.

Student perspectivesTo evaluate student perceptions of the assignment we designed a 13-question survey

that contained questions about the assignment as well as the entire course. The surveyconsisted of 10 questions ranked on a Likert Scale (1: Strongly Disagree to 5: StronglyAgree), one question where students selected reasons why they thought the project wassatisfying to work on, and two open-ended questions. The survey was issued to allstudents taking the relevant courses at both universities; there were 24 respondents (18male; 6 female) at Miami University and 8 respondents (all male) at WSU Vancouver.

The majority of students from both universities were enthusiastic about the projectand felt that it contributed to their understanding of the material in the course. Similarlyto [8] where authors studied student perceptions of game-based assignments in an AIcourse, most students found this project to be more interesting because it involved games.A number of students in both this study and [8] expressed an opinion that the mostinteresting part of the assignment was creating a real working product at the end-namelya fully functioning game. Due to limited space we can only report results for a selectionof survey questions. Table 3 shows percentages of students who replied with "Agree" or"Strongly Agree" to 4 select questions. There is a potential concern about howgame-based curriculum may impact women in computing [4]. There were 6 womenrespondents at Miami University and Table 3 shows total results for Miami students aswell as separate results for men and women in CSA 271. The results indicate that, at least

JCSC 26, 1 (October 2010)

138

in the case of this assignment, this cohort of women students was even more enthusiasticthan the men about the project.

Question Miami %A&SA WSUV

The project was interesting to work on.The project contributed to my overallunderstanding of the material in the course.This project was more interesting to work onbecause it involved games.I had a positive learning experience in thiscourse.

Total96%92%

88%

79%

Men94%89%

83%

78%

Women100%100%

100%

83%

%A&SA88%88%

88%

88%

Table 3: Student Perceptions of the Puzzle Game Project

Question 11 of the survey "What about the project made it satisfying for you to workon? (Check all that apply)" presented several options for students to choose from.Interestingly, students on both campuses agreed on the top four reasons as to why thisproject was satisfying; these are summarized in Table 4. Another highly ranked responseby WSUV students was "The visuals connected with the project helped me betterunderstand concepts or data" (75%). A significantly smaller proportion of students atMiami University selected this response (30%), perhaps because their assignment did notuse linked lists directly.

AnswerThe project used a game or simulation for aprogramming project.

Miami %A&SA74%

WSU %A&SA100%

I could see how the project activities connected toa real world problem.I could check my answers before turning them infor a grade.Project activities illustrated concepts we discussedin class.

65%

52%

52%

63%

75%

75%

Table 4: Most Popular Selections for "what about the project made it satisfying foryou to work on?" (Question 11)

Together, the results from our survey indicate that students felt that the puzzle gameassignment enhanced their learning experience and that the games-based project wasmore interesting than other course projects. These results are supported by directmeasurements of the student's performance on these assignments.

CCSC: Northwestern Conference

139

ACKNOWLEDGEMENTSThis work is supported in part by the National Science Foundation (NSF) under

awards DUE-0633726 and DUE-0633738. Findings, conclusions or recommendationsexpressed are those of the authors and do not necessarily reflect NSF's views.

REFERENCES

[1] Bayliss, J. D., The Effects of Games in CS1-3, Proceedings of the 2007Conference on Game Development in Computer Science Education, 59-63, 2007.

[2] Decker, A., Haydanek, S., Egret, C., When objects collide: abstractions overcommon physics problems for capstone projects in CS1, Journal of ComputingSciences in Colleges, 21 (2), 2005.

[3] Eagle, M., Barnes, T., Wu's castle: teaching arrays and loops in a game, ITiCSE'08: Proceedings of the 13th Annual Conference on Innovation and Technologyin Computer Science Education, 245-249, 2008.

[4] Haller, S., Ladd, B., Leutenegger, S., Nordlinger, J., Paul, J., Walker, H., Zander,C., Games: good/evil, Proceedings of the 39th Annual SIGCSE TechnicalSymposium on Computer Science Education, 219-220, 2008.

[5] The Java Instructional Game Project: JIG Home, http://ai.vancouver.wsu.edu/jig.

[6] Sung, K., Panitz, M., Wallace, S., Anderson, R., Nordlinger, J., Game-themedprogramming assignments: the faculty perspective, Proceedings of the 39thAnnual SIGCSE Technical Symposium on Computer Science Education,300-304, 2008.

[7] Sung, K., Shirley, P., Rosenberg, B. R., Experiencing Aspects of GamesProgramming in an Introductory Computer Graphics Class, Proceedings of theAnnual SIGCSE Technical Symposium on Computer Science Education,249-253, 2007.

[8] Wallace, S. A., McCartney, R., Russell, I., Games and machine learning: apowerful combination in an artificial intelligence course, Computer ScienceEducation, 20 (1), 2010.

[9] Wallace, S. A., Nierman, A., Addressing the Need for a Java Based GameCurriculum, Journal of Computing Sciences in Colleges, 22 (2), 2006.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

140

MAKING YOUTH EXCITED ABOUT STEM EDUCATION*

Giti Javidi and Ehsan SheybaniSchool of Engineering, Science and Technology

Virginia State UniversityPetersburg, VA 23834

804 [email protected]

[email protected]

ABSTRACTThis paper describes a three-year effort, to increase Middle School students'attitude and interest in STEM careers by focusing on programming and thusgaming. Generally, the project shows promise for increasing students'knowledge and skills with respect to technology both over time and in relationto their peers. Over the last three years, students have shown significantlymore positive attitudes toward technology, and also increased interest inpursuing science, technology, engineering and math (STEM) as career, whencompared to similar, non-participating peers. In addition, participants of thisstudy have expressed increased desire in taking more engineering andtechnology courses as offered in their high schools.

INTRODUCTIONAs the nation and world struggle with alarming crises in sectors such as energy,

health care and the environment, it is important that we keep today's youth interested incareers in STEM. Studies indicate that many students lose interest in the sciences by ages10-13, when they are in grades 4-8 in the U.S. educational system. Many of theinterventions to counteract this trend focus on boosting interest in STEM in secondaryschools and universities. However the case can be made that the greater need is actuallyearlier in the education of the child. How can we work with this age group in an excitingway that will promote the study of STEM? Recently, there has been increasingenthusiasm for research into computer game design as a promising tool to increasestudents' interest in pursuing STEM career. There seems to be a de facto wide view ofapproval regarding computer games design as a teaching and learning concept [2] judging

CCSC: Northwestern Conference

141

from the increasing number of research and initiatives devoted to it in recent times. Somestudies (cited in [3]) highlight the potential of game making as a powerful learningenvironment where learners are actively engaged in the process of skill development. In[4], the authors cited the works of several other authors working on the learning throughdesign trail regarding several benefits of computer game design which include enhancingmotivation, collaboration, communication skills and meta-cognitive skills. The numberof papers suggesting the children as constructors approach is already quite large. METHODOLOGY

In the summer of 2006 we piloted a video game design program and subsequentlywe obtained a three- year funding (2007-2010) to support 87 low-income rural and urbanmiddle school students. The participants were rising 7th graders in summer 2007. A totalof 87 students (47 boys and 40 girls; 28 whites and 59 non whites) remained in spring2009. In summer 2009, we lost 9 students to family transition and personal illness andhad a total of 78 students (47 boys and 31 girls). Within this 36-month project, students(1) learned and participated in Lego Robotics Competitions, (2) learned abouttechnologies involved in game products; (3) learned about programming, computergraphics, and animation; (4) created games on four science themes - recycling, nutrition,physical exercise or activity, and substance abuse; (5) finalized their interactive gameprojects for distribution in local educational communities; and (6) shared their learningexperiences and products in educational conferences such as NECC2009. For a completereport of the first two years of the project please refer to [1].

We chose to teach students programming skills by using Kahootz, Squeak, Alice andAdobe Flash. Students also learned Lego Robotic programming and participated inFIRST Lego Robotics competitions and few teams were placed first and second in severalcategories in the regional as well as state competitions. We used the mentioned softwarebecause we believe that they are solid and proven tools that provide many of the neededconstructs for creating 2D and 3D computer games at a level appropriate and fun for theMiddle school students. By using Alice, we have been able to teach students theprogramming concepts such as variables, loop, selection statements, class, objects,coordinate systems and arrays.

We met with the students two weeks during summers and ten Saturdays persemester. But due to preparation for the Logo completion, in some semesters we metmore Saturdays and to our surprise the students were very excited about getting up earlyin the morning and participating in each Saturday session. Students were introduced toKahootz, Squeak and Alice on the first two years and to Flash Action Script duringsummer and spring 2009. Initially, this seemed to be the most challenging of all tools forstudents to learn since it required scripting but eventually students felt more confident inscripting. Also, during the last three years students were introduced to various fields ofengineering by listening to guest speakers, conducting interviews with experts in the fieldand participating in field trips.

Over the last three years, students have shown significantly more positive attitudestoward pursuing STEM in college when compared to similar, non-participating peers.Participating students also reported that this program was more interesting and helpfulthan technology courses offered at their schools, and they expressed a desire to keep

JCSC 26, 1 (October 2010)

142

learning more about different kinds of software and programming and learning moreabout computer science and different fields of engineering. QUANTITAIVE RESULTS

The Participant Attitudes and Interests Survey (PAI) was administered to digispiredparticipants and the comparison group of students of a similar age from the same schooldivisions. All administrations of the PAI instrument were web-based, with respondentscompleting the survey as groups in computer labs, supervised by project instructors orschool staff members. In 2009, participants and comparison students differedsignificantly on many PAI items. The comparison groups in 2007 and 2009 consisted ofdifferent individuals. The 2009 comparison students had more positive attitudes towardtechnology than the 2007 comparison students. In order to ascertain changes amongparticipants, key indicators from the PAI are highlighted in Table 1 by year of instrumentadministration and gender.

Participants Attitudes and Interest 2007 2008 2009

F M F M F M

Enjoy doing things in Technology 75.0 90.5 92.9 90.9 88.2 100.0

Are more likely to get a good jobafter learning how to use technology

75.0 87.8 82.1 87.2 92.2 96.1

Important to learn about technology 75.0 86.5 82.1 86.3 93.8 96.4

Digispired increased interest inSTEM courses

82.6 80.2 86.2 83.2 82.2 84.8

I get nervous when working withtechnology

84.6 72.2 75.0 63.0 73.2 56.1

Table 1. Key Positive Indicators from the PAI: Percentage of ParticipantsReporting "Somewhat" or "Very Much"

Independent-samples t tests were used to determine whether differences existedbetween participants' responses in 2007 and 2009. There were few significant differenceson individual items and no significant differences on composite categories. Using the2009 PAI data, independent-samples t tests were carried out to determine whether therewere gender differences on any items or categories of items. Both boys and girls havepositive feelings about technology, participate in technology-related activities, and haveintentions to enroll in STEM-related courses.

As compared to a comparison group, for the program as a whole, there was asignificant difference between participant and comparison ratings of how important it wasfor them to ?learn about technology. It was significantly more important to Digispiredparticipants than the comparison group. Digispired students had significantly lessnegative feeling about technology than the comparison group. They reported lowerratings than their comparison counterparts to the following items: how much longer doesit take you to finish schoolwork when it involves technology; how much would you rather

CCSC: Northwestern Conference

143

NOT use technology; and how much harder is it for you to learn new things when usingtechnology. Across the three years, both males and females showed steady increases intheir agreement with the following statements: I am more likely to get a good job afterlearning how to use technology and it is important to learn about technology. Also, it wasinteresting to see that both males and females reported a steady decline in how much theyagreed with the following statements: I get nervous when working with technology.Overall, both males and females agree that Digispired has increased their interest intechnology.

The Participant Knowledge and Skills (PKS) assessment was administered toDigispired participants in 2007, 2008, and 2009; and administered to the comparisonstudents in 2007 and 2009 as shown in Figure 1.

Figure 1. Digispired Participants PKS ScoreDistribution in Percent, 2007 to 2009

For the 2009 data, independent t-tests found that the differences in the mean ofscores achieved by Digispired participants (77.21%) and the mean of comparison groupstudents' scores (48.25%) were statistically significant, suggesting that students weredifferent from their classmates (t [117] = -8.429, p = .000). It is important to note that thecomparison group for 2009 was not the same comparison group from 2007. Independentt-tests found that there were no significant differences between the two control groups (t[112] = 1.529, p = .129). This statistic argues that even though the comparison groupswere not composed of the same individuals, the groups were similar enough to providea reasonable comparison. Given the 2009 data, it can be said with some confidence thatparticipants are different from their comparison peer-at least in terms of the computerknowledge and skills assessed by the PKS. Specifically, participants are significantlymore knowledgeable about technology and related skills. This finding is important,particularly given the fact that the two groups were statistically similar beforeimplementation of the Digispired program.

JCSC 26, 1 (October 2010)

144

Additionally, differences in the measured scores of participants' PKS scores in 2007(63.75%) and in 2009 (77.21%) are indeed statistically significant (t [133] = 4.632, p =.000). This means that the pre-participation and post-participation differences, while notabsolutely attributable to Digispired program activities, are large enough that they are notlikely explained away by variances occurring naturally among group members. Thus,participation in the Digispired program seems to have increased students' knowledge andskills relevant to technology.

Overall, Digispired participants have significantly improved their computerknowledge and skills, at least as they are assessed by the PKS. The participants showedsignificant increases in their PKS scores from 2007 to 2009. For the 2009 data,participants scored significantly better than the comparison group, suggesting, with someconfidence, that participants are more knowledgeable about technology theircomparisons-at least in terms of the computer knowledge and skills assessed by the PKS.The groups were not significantly different before the program. QUALITATIVE RESULTS

Digispired participants were surveyed using a focus group format, at the end of thesummer academies in 2007, 2008, and 2009. A subgroup of eight students was randomlyselected from among those present and not opting out of the activity. The focus groupdiscussions inquired about expectations of learning from the program and interest inSTEM careers among other inquiries.

Expectations of learning: For all three years of the projects participants consistentlyreported having learned new things in the Digispired program and that they liked whatthey had learned. Students reported learning how to use a variety of programs, such asKahootz, Alice, Squeak, and Flash, with most students stating that Flash was theirfavorite. One student said, – I like Flash because it's all made independently. There areno premade backgrounds; you have to do it all yourself. Students also reported learningabout Lego Robotics and expressed excitement at competing in state and regionalcompetitions. One student said, "That's the funnest part. We won the regional's BestRobotic Performance and easily went into the state finals". Another student said, "I don'tthink you can get this kind of experience in a lot of other places. It was a one of a kindopportunity and we all just wanted to go for it". There were a few students who expressedinterest in learning more programs such as C++, Python, Java and a deepening theirknowledge of Flash. One student stated, "I enjoyed creating my own video game onFlash". Another stated, "I am really interested to learn more about Flash instead oflearning about something different". Students also reported that their participation in theprogram has improved their patience and helped them mature. As one student stated,"This is going to help us in the future because it helps us deal with other people withdifferent learning styles".

Interest in STEM careers: Very few of students had stated that they were alreadyinterested in computers and technology prior to their participation in Digispired. Whenasked about their interest in STEM careers, several students expressed interest inbecoming video game designers and few expressed interests in pursuing a field inprogramming or engineering. There were a few students who wanted to grow in otherprofessional areas (e.g., nursing, veterinary medicine, legal fields) but felt that some of

CCSC: Northwestern Conference

145

what they were learning in the program could be applicable to those fields as well.Students frequently mentioned field trips to the Entertainment Technology Center (ETC)at Carnegie Mellon University, Longwood University, science museums, andWashington, D.C.; students spoke about how these trips and meeting the experts in thefields impacted their desire to go into technology careers and their sense about what theywant in an institution of higher education. Stated one student, "With the visits to CarnegieMellon and Longwood, you get a good sense of what college you want to go to and whatyou want to do". Another student stated, "We've just sort of been exposed to differentfields in STEM so that maybe we would want to pursue a career in technology someday".Additionally, one other student attributed students' interest in technology to the trip toCarnegie Mellon University.

Best aspects of the program: Most students expressed an appreciation for theopportunity to gain knowledge about technology. The majority of students felt the bestaspects of the program were learning to create video games and the programmingcomponents. Some expressed their increased desire, which they not have before, to go tocollege and pursue higher education. According to many participants, the Digispiredproject gave students the opportunity to learn lots of technology, make new friends,travel, get paid, and have fun. Some students felt learning to program their robots andcompeting with their own designs were the best aspects of the program. One student said,"You've got more of an advantage with this program because it's teaching you stuff thatthey'll teach you in college . . . because you know more and you'll be able to answer morequestions and maybe understand it". Overall, students enjoyed creating video games andlearning about robotics. CONCLUSIONS

The most notable success of the program was observed in the area of improvingstudents' knowledge and skills. From 2007 to 2009, participating students' knowledge oftechnology and the skills required to use technology successfully increased significantly.Mean scores on the assessment increased steadily over the 3 years of the project. In 2009,participating students also demonstrated significantly better knowledge and skills thantheir comparison peers.

At the close of the project, participating students also held attitudes towardtechnology that were significantly more positive than those held by their comparisonpeers. Among other factors, students were more likely to believe that it was important tolearn about technology, to be less scared of or frustrated by technology, to report thattechnology increased their ability to learn new things, to report being more likely to enrollin STEM-related courses, and to have more positive feels toward technology in general,students also reported a much greater interest in pursuing careers in scientific researchor engineering than their comparison peers (59% to 45%). Participants were more certainabout their post-high school plans than non-participants; they primarily planned to attend4-year College or university programs (78% versus 49% of comparison students).

Students' comments indicate that they enjoyed the program and that they increasedtheir knowledge and skills and interest in STEM through their participation. Studentsenjoyed doing hands-on projects and appreciated working in groups and learning fromtheir peers. The Lego Robotics competition was popular with several students, as were

JCSC 26, 1 (October 2010)

146

the field trip experiences (which students also saw as opportunities to learn what theywould like to have in an institution of higher education). Nearly all students believed thatlearning about technology would help them in their future education and careers (evenif it did not seem relevant to their lives at the moment). It is important to note that inaddition to feeling more confident in mathematics and science, students reported otherimportant and, perhaps, unintended impacts of the program including increased patience(especially in peer workgroup situations) and increased maturity. Most students said thatthey would like to continue participating if Digispired continued to be offered.

Interactive game design activities offer exciting opportunities for the middle schoolstudents to engage in innovative, inventive, and inquiry-based science andtechnology-based learning. Developing students' interest in and enthusiasm forprogramming through game design would motivate them to explore other careers relatedto STEM. We strongly believe that with today's students of digital age, we should be ableto inculcate the habit of programming and design at the middle school level.

During the last three years and based on our observations, by engaging students atearly age in conversations about designing games, we were surprised by the level of theircreativity and enthusiasm. The Digispired participants made games which requiredfundamental learning, problem solving and thinking which are required in all STEMareas. By creating games, participants discovered underlying mathematics, programming,engineering and even physics concepts which would have been impossible in a traditionalteaching format. The program offered young students the opportunity to learn aboutvarious possibilities/careers in STEM which was the main objective of the project.

ACKNOWLEDGMENTS This material is based upon work supported by the National Science Foundation

under Grant No. 0624565. Any opinions, findings, and conclusions or recommendationsexpressed in this material are those of the authors and do not necessarily reflect the viewsof the National Science Foundation. We wish to thank all of the participants, parents,teaching assistants, school collaborators and program developers involved with theDigispired program. We would also like to acknowledge Edvantia research andevaluation specialists for constructing the needed instruments, conducting the analysis,and writing clear and usable reports of the findings.

REFERENCES

[1] Javidi, G., Sheybani, E., Digispired: digital inspiration for interactive gamedesign and programming, Journal of Computing sciences for Colleges, 24 (3),144-150, 2009.

[2] Kafai, Y. B., Playing and making games for learning: Instructionist andconstructionist perspectives for game studies, Games and Culture, 1 (1), 36-40,2006.

[3] Robertson, J., Howells, C., Computer game design: Opportunities for successfullearning, Computers and Education, 50, 559-578, 2008.

CCSC: Northwestern Conference

147

[4] Ronen-Fuhrmann, T., Kali, Y., Hoadley, C., Helping education studentsunderstand learning through designing, Educational Technology, 48 (2), 26-33,2008.

___________________________________________

* Copyright is held by the author/owner.

148

THE IMPACT OF OPENGL 3.X AND 4.0 ON THE TEACHING

OF COMPUTER GRAPHICS*

PANEL DISCUSSION

Mike BaileyOregon State University

[email protected]

Robert R. LewisWashington State University

[email protected]

Richard Weiss The Evergreen State College

[email protected]

David A. WolffPacific Lutheran University

[email protected]

Genevieve Orr (moderator, primary contact)Willamette University [email protected]

ABSTRACTThe Khronos Group recently released two major updates to the OpenGL

specification, versions 3.3 and 4.0, containing many exciting new features that offergreater speed, flexibility, and a much greater range of graphics capabilities. However, anumber of standard long-time features, such as glBegin/glEnd and the fixed pipeline, arescheduled to go away. The loss of these older and simpler features will make teachinggraphics at the introductory level more challenging because it will force the introductionof more complex code and material earlier in the course. This panel will give an overview of the main changes in OpenGL, focusing most on thosefeatures which will have the greatest impact our introductory graphics courses. Thepanelists will offer advice and suggestions for how instructors can incorporate the newversions into their courses in a way that is comprehensible to the students and yet alsouses some of the new and exciting OpenGL features. TOPICS • What OpenGL features are going away. • What new OpenGL features are being added. • Shaders (GLSL)

CCSC: Northwestern Conference

149

• Programming OpenGL in o Python o Java o Mobile Devices o Haskell o Processing

• The impact of all of the above on our teaching.

PRESENTERSMike Bailey is a CS faculty member at Oregon State University. His teaching and

research interests include computer graphics, scientific visualization, GPU programming,and stereographics.

Robert R. Lewis is a faculty member in the School of EECS, located at the WSUTri-Cities campus. His research areas are computer graphics, scientific visualization,computer vision, and parallel computing.

Richard Weiss has taught computer science and mathematics at Evergreen since2005. He has remained active in the computer vision community since 1982, when hestarted as a research professor at the University of Massachusetts at Amherst. He receivedan A.B. in mathematics from Brandeis University in 1969, and a Ph.D. from HarvardUniversity in mathematics in 1976

David A. Wolff is a member of the faculty of the Computer Science and ComputerEngineering department at Pacific Lutheran University. He is interested in computergraphics, physically based rendering, and scientific computing.

Genevieve Orr (moderator) has taught in the computer science department atWillamette University for the past 15 years. Her primary research interests includecomputer graphics and animation.

___________________________________________

* Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copywithout fee all or part of this material is granted provided that the copies are not made ordistributed for direct commercial advantage, the CCSC copyright notice and the title of thepublication and its date appear, and notice is given that copying is by permission of theConsortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires afee and/or specific permission.

150

DESIGN AND CONSTRUCTION OF GENERAL PURPOSE

COMPUTING RESOURCES FOR LINUX BASED COMPUTER

SCIENCE EDUCATION*

Richard SharpDepartment of Mathematics, Computer

Science, and StatisticsSt. Lawrence University

23 Romoda Dr.Canton, NY 13617

315 [email protected]

Ed HarcourtDepartment of Mathematics, Computer

Science, and StatisticsSt. Lawrence University

23 Romoda Dr.Canton, NY 13617

315 [email protected]

ABSTRACTFor six years our computer science program had no dedicated computinglaboratories and limited influence on the software that could be installed onuniversity wide workstations. In the fall of 2009 we remedied this situationby teaching a course where computer science students built their own labs. Wedescribe the design process including physical plant, hardware and softwareconfigurations of workstations and servers, and the supporting course whichstudents took to assemble workstations and learn concurrent programming.Our result is a medium scale computing resource (58 CPUs / GPUs; 232general purpose computing cores and 12,528 GPU cores) ideal for classroominstruction, student projects, and single CPU or grid computing.

1 INTRODUCTION AND MOTIVATIONAs an undergraduate liberal arts institution, we teach an introductory level CS

service course and a major that follows the traditional curriculum for a liberal arts degreein CS [1]. The CS department teaches 15 courses, 5-10 senior research projects, and 1-3summer student fellowships per year.

CCSC: Northwestern Conference

151

Our computational needs for teaching a CS education have been refined by 14 yearsof combined experience with a Microsoft based computing resources in education andindustry as well as 25 combined years of teaching experience. As CS educators we feelthat it is best to expose as much functionality of the operating system to students aspossible. Linux exposes almost every aspect of the computing process for inspection andconfiguration by the end user. We feel this philosophy is a superior one to teach CSbecause it embodies a major portion of what computer science is about: the practicalimplementation of the theoretical foundations of computation.

Computational NeedsOur day to day computational needs not only include a programming environment

and a central file system but also the individual research requirements of the CS facultyand those of our colleagues. Such computational needs are difficult for a centralizeduniversity IT department to meet as they have campus wide goals of maintainability,reliability, and consistency in end user experiences. An advantage of using Linux for ourcomputational needs is that we, the primary users, can configure and maintain the overallenvironment to suit the needs of CS education and research as opposed to meeting theneeds of a general university population.

Administrative NeedsPart of the motivation for this project stemmed from six years of frustrating teaching

experiences at our university involving Microsoft Windows based workstations that werecentrally maintained by a university-wide Information Technology (IT) department. ACS teaching environment needs flexibility in the configuration of computing resources.We, and perhaps many readers, have experienced frustration involving the need to installsoftware or configure OS settings for classes but being hampered by bureaucraticprocesses in a rigid IT service model. Additionally, some software configurations suchas open source software are technically challenging to install and configure which can bedifficult for an IT department to handle.

2 RELATED WORKWe are unaware of other institutions who developed and constructed general

purpose computing resources for an undergraduate CS program that was built by facultyand students. However, the are many sources related to Linux supporting CS educationthat we discuss below.

Eastman makes a case for teaching Linux as part of the CS curriculum due to itsprevalence in industry which has been turning to Linux for years [2]. Gaspar and Godwinteach OS kernel programming by "hacking'' Linux through student written loadablekernel modules [3]. This approach to teaching fundamental OS concepts would bedifficult using Windows. Talton and Fitzpatrick describe their experiences in teachingcomputer graphics using the OpenGL shading language (GLSL) in [5]. We note thiswork as we encountered this problem in teaching our own OpenGL course, however, we

JCSC 26, 1 (October 2010)

152

found in a Linux based environment we were able to install OpenGL extensions, likeGLSL, with the package manager.

As Yue and Ding note [6], one of the primary foundations of web development isthe Linux/PHP/Apache / MySQL (LAMP) stack. Although these tools can be installedin a Windows based environment it is often non-trivial to do so, and may be difficult fora university wide IT department to maintain. On the other hand a LAMP environmentis easy to install in a Linux environment as many Linux distributions come with theoption to install LAMP as a default.

While there are many other examples of Linux being used in CS education, we areunaware of any work describing the construction of a general purpose Linux basedcomputing lab built and maintained for and by faculty and students.

3 CONSTRUCATION OF COMPUTING LABORATORIESStudents and faculty built a total of 58 workstations and four severs to fill three

classroom spaces. Workstation design and construction was only a part of the effortrequired to build our entire laboratory space. Since we were taking over abandonedbiology and chemistry labs, we also accounted for physical plant issues such asdemolition of lab benches and sink work, asbestos abatement, power and data networkinstallation, furniture and layout, projector and screen installation, keyless entry systems,and others.

Workstation Configuration and ConstructionOur goals for selecting hardware for workstations were: (1) Workstations should be

built by students from commodity components. (2) The ability to absorb a hardwarefailure rate of 10% across components in 5 years. (3) Once purchased and assembled,workstations should be maintained solely by CS faculty.

Custom built desktop computers are relatively commonplace and many onlinedealers offer components directly to the consumer. Although there are non-trivialdependencies among the components, they are often well documented and the selectionprocess is relatively straightforward. To handle inevitable hardware failures we purchasedspare components which account for 10% of all our components purchased. Ascomponents fail, we expect to minimize the impact by swapping out components.

Our goals when considering software capabilities were: (1) Faculty should be ableto install software on all workstations at any time, even during class sessions. (2)Software configurations should be maintained solely by CS faculty. (3) Students must beable to login using their existing university accounts. (4) Students must have access totheir university wide student network drives. (5) Students must have access to a local CSnetwork drive space. (6) Students must have access to shared resources such as classmaterials and software. (7) Workstation software configurations must be identical.

The first two goals are one of our stronger reasons for using Linux as our OS.Unfortunately this choice complicated the third goal as our university's IT infrastructureis Microsoft Windows based. Fortunately, we were able to craft a solution using Samba(a collection of programs that implement Microsoft's SMB protocol for Unix systems)

CCSC: Northwestern Conference

153

to join workstations to the university's Windows domain, winbind (which providesservices to negotiate user and group information from a Windows server once joined tothat domain), and configuring PAM (pluggable authentication modules for Linux whichhandle the authentication tasks of various Linux services.), to use winbind for userauthentication.

Student access to IT served network drives were realized with Samba's clientsoftware. Local CS network drive space was implemented using a central file server webuilt that serves the home directories to the workstations through NFS. Shared resourcesare also distributed through the file server as a globally readable mount shared throughNFS.

Finally, we maintain identical workstation configurations by administering allstations remotely and simultaneously using cluster SSH which allows for control ofmultiple remote shell windows connected to different machines through a single mainconsole.

Our backup scheme consists of two identically configured file servers one primaryand one mirror with each server also containing its own backup partition. Each servercontains four 1TB hard drives configured in two partitions. Each partition consists of twodrives configured as a RAID1 disk array. The first partition is the primary storage withthe second partition being the backup. We use rsnapshot (www.rsnapshot.org) and rsyncto maintain hourly, daily, weekly, and monthly backups.

4 PARALLEL COMPUTING COURSEA key aspect of the implementation of our laboratories was that not only that

students built the machines but also learned the foundations of parallel computing,including software that: use multiple cores on one machine through software threads andprocesses, manually distribute calculations to multiple machines using TCP/IP sockets,automatically distribute calculations using MPI, and execute in parallel the GPU usingNVidia's CUDA interface. Applications developed in class included classic concurrentprograms such as producer/consumer and readers/writers but also a chat program, andparallel integer factorization. We also used this as an opportunity to teach scripting andusing ssh to distribute programs across machines.

Students were required to keep a laboratory notebook, assemble three workstations,and complete a concurrent programming project that used all local computing resources.Student projects included parallel password cracking, a parallel n-body simulation, anda parallel DNA string matching algorithm.

5 STUDENT PERCEPTIONSDuring the course of the semester we had students take a survey to determine their

perceptions of the importance of the OS in their productivity. Students took the surveytwice, at the first and last week of the semester. Although our sample size (n=12) was toosmall for any statistical significance, we did note a trend toward the preference of Linuxover Microsoft Windows. We describe our results below.

JCSC 26, 1 (October 2010)

154

OS Preference SurveyHere we discuss each question on our survey and the aggregate results for the

semester in question. The aggregate results of our survey are listed in Figure 1. First wepresent the questions, then discuss the results as aggregated by students' reportedpreference of OS.

Please rate your relative level of experience with the Linux OS. (1) No experience.(2) Have used a Linux live-CD. (3) I installed Linux at least once. (4) I use Linux as myprimary OS. (5) I have written a large program using only Linux. Students scored anaverage of 2.5 on week 1 and 4.6 on week 15.

How do you perceive the choice of OS on your productivity when programming? (1)Does not affect my productivity. (2) I prefer a particular OS because I am not familiarenough with another to be productive with it. (3) I prefer one OS over another, but forreasons unrelated to productivity. (4) The choice of OS is important to my level ofproductivity. (5) The choice of OS is critical to my level of productivity. Students scoredan average of 3.2 on week 1 and 3.8 on week 15.

Consider two job offers, one which paid $100k/yr but required you to use an OS youdidn't like and another which paid ($100k-x)/yr but you were allowed to choose your ownOS. What is the largest non-negative value of x such that you would take the second job?

In a future job, what OS would you prefer to work with?Figure 1 reflects how students' perceptions and preferences of OSs changed

throughout the semester. To summarize, five students preferred Linux as their primaryOS at the beginning of the semester while seven did at the end. Students who preferredLinux also thought their choice of OS was more important to their productivity than thosewho preferred Windows. Additionally, those who preferred Linux were willing to reduce$8k more off a base salary of $100k in order to work in it than those who preferredWindows. Although our sample size is too small to determine any statistical significance,anecdotally there was a shift toward preferring Linux as a primary work OS.

Preference N reported Experience Productivity Monetary

1 15 1 15 1 15 1 15

none 3 3 2.0 4.3 3.0 2.7 $37k $27k

Linux 5 7 3.2 4.7 3.6 43 $10k $18k

Windows 4 2 2.0 4.5 2.75 4.0 $20k $10k

Figure 1 Aggregate results of survey data described in Section 5.1. The 1 and 15under the second row indicate results taken from that particular week of the course(there are 15 weeks in total).

6 DISCUSSIONWith a faculty driven effort we built, from scratch, computing laboratories with

significant help from students. We feel the novelty of our project comes not fromteaching students how to configure Linux or a network for a specialized course, but the

CCSC: Northwestern Conference

155

fact that students and faculty constructed, configured, and now maintain the completecomputing infrastructure for all CS courses and CS faculty research. Below we brieflydiscuss our personal expectations, experiences, and reflections that may be useful toothers who wish to implement a similar environment for a similar institution.

Damage During Construction We were concerned that student involvement in theconstruction of workstations could result in significant accidental damage of components.Surprisingly, we experienced only one incident of processor socket damage on amotherboard which was replaced by the manufacturer.

Conversion to Linux Based Environment Anecdotally, the conversion to an opensource Linux based computing environment has made a dramatic and consequentialimpact to our ability to teach CS. In Linux programming languages feel "close" asthough at your fingertips on the command line (Python, C,Bash, Unix pipes, etc.). Interms of student response, our shift to Linux was surprisingly smooth. The students inupper level courses took to programming at the command line quickly. In theintroductory course we are able to abstract much of the command line experience awayfrom students.

Laboratory Administration We were initially concerned that laboratoryadministration could turn into an overwhelming task. In practice administration has beenno more than 30 minutes a week and usually involves installing software, somethingeasily done with cluster ssh. In short, after the initial software configurations,administration has been nearly trivial involving only checking the Munin monitor on aday to day basis.

Future Work We hope to offer a workshop for faculty at similar institutions whichwill involve each participant building a workstation from components, and learning thebasics of Linux and network administration for a medium scale teaching lab.

BIBLIOGRAPHY

[1] L. A. C. S. Consortium, A 2007 model curriculum for a liberal arts degree incomputer science, Journal on Educational Resources in Computing, 7 (2), 2,2007.

[2] Eastman, E. G., Exploring Linux as an operating system in the CS curriculum, J.Comput. Small Coll., 21 (4), 83-89, 2006.

[3] Gaspar, A., Godwin, C., Root-kits & loadable kernel modules: exploiting theLinux kernel for fun and (educational) profit, J. Comput. Small Coll., 22 (2),244-250, 2006.

[4] Norris, J. S., Kamp, P.-H., Mission-critical development with open sourcesoftware: Lessons learned, IEEE Software, 21 (1), 42-49, 2004.

[5] Talton, J. O., Fitzpatrick, D., Teaching graphics with the opengl shadinglanguage, SIGCSE '07: Proceedings of the 38th SIGCSE technical symposium onComputer Science education, 259-263, 2007.

JCSC 26, 1 (October 2010)

156

[6] Yue, K.-B., Ding, W., Design and evolution of an undergraduate course on webapplication development, ITiCSE '04: Proceedings of the 9th annual SIGCSEconference on Innovation and technology in computer science education, 22-26,2004.

157

INDEX OF AUTHORS

Ahmad, K . . . . . . . . . . . . . . . . . . . . 85Amin, M . . . . . . . . . . . . . . . . . . . . 118Bailey, M . . . . . . . . . . . . . . . . . . . 148Beasley, R . . . . . . . . . . . . . . . . . . . . 2Boutin, M . . . . . . . . . . . . . . . . . . . . 59Brylow, D . . . . . . . . . . . . . . . . . . . . 56Cuny, J . . . . . . . . . . . . . . . . . . . . . . . 6Cusack, C . . . . . . . . . . . . . . . . . . . . 77Dey, P . . . . . . . . . . . . . . . . . . . . . . 118Dulimarta, H . . . . . . . . . . . . . . . . . . 7Engelsma, J . . . . . . . . . . . . . . . . . . . 7Farahani, A . . . . . . . . . . . . . . . . . . 118Frank, C . . . . . . . . . . . . . . . . . . . . . 49Gephart, N . . . . . . . . . . . . . . . . . . . 32Gestwicki, P . . . . . . . . . . . . . . . 30, 85Grasser, R . . . . . . . . . . . . . . . . . . . . 23Gross, P . . . . . . . . . . . . . . . . . . . . . 75Gudivada, V . . . . . . . . . . . . . . . . . . 40Guzdial, M . . . . . . . . . . . . . . . . . . . . 5Haddad, A . . . . . . . . . . . . . . . . . . . 59Hamou-Lhadj, A . . . . . . . . . . . . . . 40Harcourt, E . . . . . . . . . . . . . . . . . . 150Howard, E . . . . . . . . . . . . . . . . . . . 67Javidi, G . . . . . . . . . . . . . . . . . . . . 140Kelleher, C . . . . . . . . . . . . . . . . . . . 75Kuperman, B . . . . . . . . . . . . . . . . . 32Lewis, R . . . . . . . . . . . . . . . . . . . . 148Matos, V . . . . . . . . . . . . . . . . . . . . . 23McFall, R . . . . . . . . . . . . . . . . . . . . 77McGuire, T . . . . . . . . . . . . . . . . . . 124McNely, B . . . . . . . . . . . . . . . . . . . 30Meinke, J . . . . . . . . . . . . . . . . . . . viiiNandigam, J . . . . . . . . . . . . . . . . . . 40Olowoyeye, A . . . . . . . . . . . . . . . . 93Opyrchal, L . . . . . . . . . . . . . . . . . 133Orr, G . . . . . . . . . . . . . . . . . . . . . . 148Panitz, M . . . . . . . . . . . . . . . . . . . 126Peck, C . . . . . . . . . . . . . . . . . . . . . . 16Petrone, M . . . . . . . . . . . . . . . . . . . 67Rogers, M . . . . . . . . . . . . . . . . . . . . . 9Rosenberg, R . . . . . . . . . . . . . . . . 126

Ruth, P . . . . . . . . . . . . . . . . . . . . . . 56Sharp, R . . . . . . . . . . . . . . . . . . . . 150Sheybani, E . . . . . . . . . . . . . . . . . 140Sinha, R . . . . . . . . . . . . . . . . . . . . 118Stewart, K . . . . . . . . . . . . . . . . . . . 93Sung, K . . . . . . . . . . . . . . . . . . . . 126Tao, Y . . . . . . . . . . . . . . . . . . . . . . 40Townsend, G . . . . . . . . . . . . . . . . . 93Van Boxtel, J . . . . . . . . . . . . . . . . 133Walker, H . . . . . . . . . . . . . . . . . . . 103Wallace, S . . . . . . . . . . . . . . . . . . 133Walsh, A . . . . . . . . . . . . . . . . . . . 112Weiss, R . . . . . . . . . . . . . . . . 108, 148Werner, L . . . . . . . . . . . . . . . . . . . . 49Wolfe, M . . . . . . . . . . . . . . . . . . . 110Wolff, D . . . . . . . . . . . . . . . . . . . . 148

JCSC 26, 1 (October 2010)

158

CCSC: Northwestern Conference

159

JCSC 26, 1 (October 2010)

160

NON-PROFIT ORG. U.S. POSTAGE

P A I D ALLENTOWN, PA PERMIT #759

JCSC Volume 26 Number 1 October 2010

Muhlenberg College 2400 Chew StreetAllentown, PA 18104-5586