The Journal of Computing
Sciences in Colleges
Volume 27, Number 6
June 2012
The Journal of Computing
Sciences in Colleges
Papers of the Seventeenth Annual CCSC
Northeastern Conference
April 27-28, 2012
Quinnipiac University
Hamden, Connecticut
John Meinke, Editor
UMUC — Europe
George Benjamin, Associate Editor
Muhlenberg College
Susan T. Dean, Associate Editor
UMUC — Europe
Michael Gousie, Contributing Editor
Wheaton College
Volume 27, Number 6
June 2012
The Journal of Computing Sciences in Colleges (ISSN 1937-4771 print, 1937-4763
digital) is published at least six times per year and constitutes the refereed papers of
regional conferences sponsored by the Consortium for Computing Sciences in Colleges.
Printed in the USA. POSTMASTER: Send address changes to Paul Wiedemeier, CCSC
Membership Chair, Assistant Professor of Computer Science, The University of Louisiana
at Monroe, Computer Science and CIS Department, 700 University Avenue,
Administration Building, Room 2-37, Monroe, LA 71209.
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission
to copy without fee all or part of this material is granted provided that the copies are not
made or distributed for direct commercial advantage, the CCSC copyright notice and the
title of the publication and its date appear, and notice is given that copying is by
permission of the Consortium for Computing Sciences in Colleges. To copy otherwise,
or to republish, requires a fee and/or specific permission.
ii
TABLE OF CONTENTS
THE CONSORTIUM FOR COMPUTING SCIENCES IN COLLEGES
BOARD OF DIRECTORS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
CCSC NATIONAL PARTNERS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
FOREWORD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
John Meinke, UMUC Europe
WELCOME TO CCSCNE 2012 FROM THE CHAIRS.. . . . . . . . . . . . . . . . . . . . . . . 1
Mark Hoffman and Jonathan Blake, Quinnipiac University
BOARD MEMBERS — CCSC NORTHEASTERN REGION. . . . . . . . . . . . . . . . . . 2
2012 CCSC NORTHEASTERN REGIONAL CONFERENCE COMMITTEE. . . . . 2
REVIEWERS – 2012 CCSC NORTHEASTERN CONFERENCE. . . . . . . . . . . . . . . 3
COMPUTING EDUCATION RESEARCH: WHO IS IT FOR? OH, AND WHY? —
FRIDAY PLENARY SESSION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Sally Fincher, University of Kent
COMPUTER SCIENCE: PAST, PRESENT, AND FUTURE — SATURDAY
PLENARY SESSION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Ed Lazowska, University of Washington
SOFTWARE TESTING (IN JAVA) FROM THE BEGINNING — PRECONFERENCE WORKSHOP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Viera K. Proulx, Northeastern University
REDUCING THE LEARNING CURVE IN AN INTRODUCTORY
PROGRAMMING COURSE USING VISUAL LOGIC© — PRECONFERENCE WORKSHOP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Dee Gudmundsen, The College of Saint Rose, Lisa Olivieri, Chestnut Hill
College, Namita Sarawagi, Rhode Island College
iii
WORKSHOP: LEARNING FOSS COLLABORATION TOOLS & TECHNIQUES
THROUGH GUIDED INQUIRY ACTIVITIES — PRE-CONFERENCE
WORKSHOP.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Clif Kussmaul, Muhlenberg College, Heidi J. C. Ellis, Western New England
University, Gregory W. Hislop, Drexel University
TEACHING CS0 WITH MOBILE APPS USING APP INVENTOR FOR ANDROID
— PRE-CONFERENCE WORKSHOP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Hal Abelson, Massachusetts Institute of Technology, Ralph Morelli, Trinity
College, Stella Kakavouli, Eni Mustafaraj, Franklyn Turbak, Wellesley
College
CREATE TWO, THREE, MANY COURSES: AN EXPERIMENT IN
CONTEXTUALIZED INTRODUCTORY COMPUTER SCIENCE.. . . . . . . . 19
Valerie Barr, Union College
EARLY INTRODUCTION OF ADVANCED CS TOPICS TO INCREASE
STUDENT SATISFACTION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Deborah Sturm and Roberta Klibaner, College of Staten Island (City University
of New York)
SHOULD DATABASE COURSES BE REQUIRED IN COMPUTER SCIENCE
PROGRAMS?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Lisa MacLean, Wentworth Institute of Technology
LESSONS LEARNED FROM TEACHING APP INVENTOR — PANEL
DISCUSSION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Hal Abelson, Massachusetts Institute of Technology, Ralph Morelli, Trinity
College, Eni Mustafaraj, Franklyn Turbak, Wellesley College, Chinma
Uche, Greater Hartford Academy of Math and Science
VIDEO VS. TEXT FOR LAB INSTRUCTION AND CONCEPT LEARNING. . . . 42
Eric Breimer, Jami Cotler and Robert Yoder, Siena College
A VISUAL TASK MANAGER APPLICATION FOR INDIVIDUALS WITH
AUTISM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Heather Duncan, Joo Tan, Kutztown University of Pennsylvania
ADVANCED STUDY CASES FOR NUMERICAL ANALYSIS — FACULTY
POSTER ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Vladimir V. Riabov, Rivier College
USING UNDERGRADUATE TEACHING ASSISTANTS IN INTRODUCTORY
COMPUTER COURSES — FACULTY POSTER ABSTRACT. . . . . . . . . . . 61
Ramona Santa Maria, Sarbani Banerjee, State University of New York College at
Buffalo
iv
INTEGRATING COMPUTER ETHICS COMPONENTS INTO THE COMPUTER
SCIENCE CURRICULUM — FACULTY POSTER ABSTRACT.. . . . . . . . . 63
Yana Kortsarts, Adam Fischbach, Widener University
EVALUATING PEER REVIEWS OF WRITING USING FAULT INJECTION —
FACULTY POSTER ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Delbert Hart, SUNY Plattsburgh
DEVELOPING A PROJECT-BASED CURRICULUM FOR THE DESIGN AND
ANALYSIS OF ALGORITHMS FOR INTRACTABLE PROBLEMS —
FACULTY POSTER ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Andrea F. Lobo and Ganesh R. Baliga, Rowan University
STUDENT-PULL INSTEAD OF INSTRUCTOR-PUSH: IN PREPARATION FOR A
STUDENT LEARNING DASHBOARD — FACULTY POSTER ABSTRACT.
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Mihaela Sabin, University of New Hampshire
LEVERAGING ONLINE/DISTANCE LEARNING METHODOLOGIES IN FACE
TO FACE INSTRUCTION — FACULTY POSTER ABSTRACT. . . . . . . . . . 73
Susan P. Imberman, College of Staten Island
GRAPHICS PROGRAMMING ON ANDROID — FACULTY POSTER
ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Michael Werner, Wentworth Institute of Technology
WHEN DO STUDENTS LEARN? INVESTIGATING FACTORS IN
INTRODUCTORY COURSES — FACULTY POSTER ABSTRACT.. . . . . . 78
Matthew Hertz, Canisius College, Sarah Ford, University of Massachusetts,
Amherst
CRITICAL THINKING IN AN INTRODUCTORY PROGRAMMING COURSE —
FACULTY POSTER ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Sarah Tasneem, Eastern Connecticut State University
PROGRAMMING FOR THE HUMANITIES: USING TARGETED GAMES.. . . . 84
Evelyn Stiller, Plymouth State University
ETHICS FOR NON-COMPUTER MAJORS IN A DIGITAL WORLD. . . . . . . . . . 90
Barbara Zimmerman, Villanova University
AND, OR, NOT: TEACHING LOGIC IN CS0.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Lisa N. Michaud, Merrimack College
v
HANDS-ON COMPUTING WITH ARDUINO — TUTORIAL PRESENTATION.105
John Vaughn, Hobart and William Smith Colleges
COLLABORATION TECHNIQUES FACILITATE STUDENT LEARNING —
PANEL DISCUSSION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Carolee Stewart-Gardiner, Kean University, Mary V. Connolly, Saint Mary's
College, Margaret Menzin, Simmons College, David Arnow, Brooklyn
College, Jeffrey A. Stone, Penn State University
MOBILE APPLICATION DEVELOPMENT IN COMPUTING CURRICULA —
PANEL DISCUSSION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Stoney Jackson, Heidi Ellis, Western New England University, Stan Kurkovsky,
Central Connecticut State University, Lori Postner, Nassau Community
College, Eni Mustafaraj, Wellesley College
ALSO “YOUR” JOB TO LEARN! HELPING STUDENTS TO REFLECT ON
THEIR LEARNING PROGRESS.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Stella Kakavouli, Panagiotis Metaxas, Wellesley College
EMPHASIZING ETHICS AND PRIVACY PRESERVATION IN AN
UNDERGRADUATE DATA MINING COURSE.. . . . . . . . . . . . . . . . . . . . . 121
Trudy Howles, Rochester Institute of Technology
TEACHING MOBILE COMPUTING USING CABANA. . . . . . . . . . . . . . . . . . . . 128
Paul E. Dickson, Hampshire College
USING A PIC32 MICROCONTROLLER AND SIMULATOR TO TEACH
COMPUTER ORGANIZATION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Robert A. Ravenscroft, Jr., Rhode Island College
THE DEVELOPMENT OF A COURSE COVERING SCRIPTING LANGUAGES
AND THEIR APPLICATIONS.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Charles N. Stevenson, Salem State University
HYBRID CLOUD TUTORIAL: FROM PLANNING TO CLASSROOM —
TUTORIAL PRESENTATION.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
David G. Rilett and Charlie Wiseman, Wentworth Institute of Technology
MEASURING THE IMPACT OF COMPUTATIONAL THINKING WORKSHOPS
ON HIGH SCHOOL TEACHERS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Patricia Morreale, Catherine Goski, Luis Jimenez, Kean University
THE ROAD TO SUCCESSFUL ACADEMIC SERVICE LEARNING PROJECTS:
MAKING THE RIGHT CHOICES.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Richard A. Scorce, St. John's University
vi
ADDING MICRO LABS TO AID PROFESSIONAL DEVELOPMENT IN
INFORMATION TECHNOLOGY CLASS CURRICULUM. . . . . . . . . . . . . 166
Michael Jonas, University of New Hampshire at Manchester
INDEX OF AUTHORS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
vii
THE CONSORTIUM FOR COMPUTING SCIENCES IN COLLEGES
BOARD OF DIRECTORS
Following is a listing of the contact information for
the members of the Board of Directors and the
Officers of the Consortium for Computing Sciences
in Colleges (along with the year of expiration of
their terms), as well as members serving the Board:
Bob Neufeld, President (2012), P. O. Box 421,
North Newton, KS 67117, 316-283-1187 (H),
neufeld@mcpherson.edu.
Laura J. Baker, Vice-President (2012), Computer
Sciences Department, St. Edward's University, Box
910, 3001 S. Congress Ave, Austin, TX 78704,
512-448-8675, laurab@stedwards.edu.
Paul Wiedemeier, Membership Chair (2013),The
University of Louisiana at Monroe, Computer
Science and CIS Department, 700 University
Avenue, Monroe, LA 71209, 318-342-1856 (O),
318-342-1101 (fax), ccscpaul@gmail.com.
Bill Myers, Treasurer (2014), Consortium for
Computing Sciences in Colleges 100
Belmont-Mount Holly Road Belmont Abbey
College Belmont, NC 28012-1802, (704) 461-6823,
FAX: (704) 461-5051, myers@crusader.bac.edu.
John Meinke, Publications Chair (2012), US Post:
CMR 420, Box 3368, APO AE 09063; (H)
Werderstraße 8, D-68723 Oftersheim, Germany,
011-49-6202-5 77 79 16 (H), meinkej@acm.org.
Colleen Lewis, Southwestern Representative
(2014), University of California at Berkeley, 329
Soda Hall, Berkeley, CA 94720,510-388-7215,
colleenl@berkeley.edu.
Elizabeth S. Adams, Eastern Representative
(2014), James Madison University - Mail Stop
4103, CISAT - Department of Computer Science,
Harrisonburg, VA 22807, 540-568-2745 (fax),
adamses@jmu.edu.
Jeff Lehman, Midwestern Representative (2014),
Mathematics and Computer Science Department,
Huntington University, 2303 College Avenue,
Huntington, IN 46750, 260-359-4209,
jlehman@huntington.edu.
Scott Sigman, Central Plains Representative
(2014), Drury University, 900 E. Benton Ave.,
Springfield, MO 65802, 417-873-6831,
ssigman@drury.edu.
Kevin Treu, Southeastern Representative (2012),
Furman University, Dept of Computer Science,
Greenville, SC 29613, 864-294-3220 (O),
kevin.treu@furman.edu.
Timothy J. McGuire, South Central Representative
(2012), Sam Houston State University, Department
of Computer Science, Huntsville, Texas
77341-2090, 936-294-1571, mcguire@shsu.edu.
Brent Wilson, Northwestern Representative (2012),
George Fox University, 414 N. Meridian St,
Newberg, OR 97132, 503-554-2722 (O),
503-554-3884 (fax), bwilson@georgefox.edu.
Pat Ormond, Rocky Mountain Representative
(2013), Utah Valley University, 800 West
University Parkway, Orem, UT 84058,
801-863-8328 (O), 801-225-9454 (cell),
ormondpa@uvu.edu.
Lawrence D'Antonio, Northeastern Representative
(2013), Ramapo College of New Jersey, Computer
Science Dept., Mahwah, NJ 07430, 201-684-7714,
ldant@ramapo.edu.
Linda Sherrell, MidSouth Representative (2013),
University of Memphis, 209 Dunn Hall, Memphis,
TN 38152, 901- 678-5465 (O),
linda.sherrell@memphis.edu.
Serving the Board: The following CCSC members
are serving in positions as indicated that support the
Board:
Will Mitchell, Conference Coordinator, 1455 S
Greenview Ct, Shelbyville, IN 46176-9248, 317392-3038 (H), willmitchell@acm.org.
George Benjamin, Associate Editor, Muhlenberg
College, Mathematical Sciences Dept., Allentown,
PA 18104, 484-664-3357 (O), 610-433-8899 (H),
benjamin@muhlenberg.edu.
Susan Dean, Associate Editor, US Post: CMR 420,
Box 3369, APO AE 09063; Werderstraße 8,
D-68723 Oftersheim, Germany. 011-49-6202-5 77
82 14 (H), sdean@faculty.ed.umuc.edu.
Robert Bryant, Comptroller, MSC 2615, Gonzaga
University, Spokane, WA 99258, 509-313-3906,
bryant@gonzaga.edu.
Mark Goadrich, National Partners Chair,
Centenary College of Louisiana, 2901 Centenary
Boulevard, Shreveport, LA 71104, 318-869-5194,
mgoadrich@centenary.edu.
Brent Wilson, Database Administrator, George Fox
University, 414 N. Meridian St, Newberg, OR
97132, 503-554-2722 (O), 503-554-3884 (fax),
bwilson@georgefox.edu.
Myles McNally, Webmaster, Alma College, 614
W. Superior St., Alma, MI 48801, 989-463-7163
(O), 989-463-7079 (fax), mcnally@alma.edu.
viii
CCSC NATIONAL PARTNERS
The Consortium is very happy to have the following as National Partners. If you
have the opportunity please thank them for their support of computing in teaching
institutions. As National Partners they are invited to participate in our regional
conferences. Visit with their representatives there.
Turings Craft
National Science Foundation
Wiley
FOREWORD
Once again we come to the final conference of another academic year, and the
Northeastern conference proves to be an excellent conference.
As I look back at the last quarter century, thanks are due to many. First of all thanks
are due to the Consortium for their support over that period. Without their support there
would not be any conferences and there would not be a Journal. My sincere thanks to the
Consortium Board for all they have done to ensure that these regional conferences
continue and that we have a quality Journal that records the reviewed papers of the
presenters. Yes, all papers are peer reviewed using a double blind reviewing process to
insure that quality is maintained, and each issue contains a welcome statement from the
individual conference which indicates the acceptance rate.
Thanks are also due to the regional boards and conference committees for the hard
work that goes into preparing a regional conference. All of these people are essential in
pulling off a successful conference. Needless to say my contact with the regional
conferences at this point is primarily with the contributing editors, and every one of them
(Mike Gousie for this conference) has been wonderful to work with.
Then, there’s the final production. Susan Dean, George Benjamin, and Bob Neufeld
have been wonderful to work with over the decades. Susan is very involved with final
editing of manuscript, which sometimes is a real challenge. Her contribution has become
very essential as we went from one conference per year a quarter century ago to now
having ten regional conferences. I also rely on her for proofing. George is the liaison
with our printer. George does the final proofing and coordinates getting the final printing
to the individual conferences. Bob does a superb job proofing. We affectionately refer
to Bob as “Eagle Eye Bob” since we keep trying to get minimal for him to find in the
proofing process, and he always manages to come up with a full sheet or more of
corrections. Of course, a fresh set of eyes helps in this process. Without these three
people and their contributions it would be impossible to deliver the quality that is in the
Journal. Susan, George, and Bob have been wonderful to work with for over the last
couple decades. They continue to be loyal troopers, supporting the Consortium – and I’m
ix
most appreciative of their support getting the Journal out.
As I express thanks, I would be remiss in not thanking our National Partners listed
above. They help to supply the income that assists in keeping conference attendance costs
down, and the Consortium has always endeavored to make the conferences accessible to
those of us with minimal travel budgets. Please express your thanks to them for allowing
the continuation of the Journal and the conferences at minimal cost.
I must also express my thanks to Upsilon Pi Epsilon, the National Honor Society
for Computer Science. They have been contributing for many years allowing the
conferences to have activities for students. A primary example is the student
programming contest which is a part of almost every conference. We appreciate very
much their support of our students.
Of course, we cannot leave out ACM SIGCSE. They provide the “in cooperation”
support that is so very helpful. ACM also has been very supportive in posting the Journal
to the ACM Digital Library.
This year we had a surprise mid-year in that our long time printer, Montrose
Publishing, was closing their doors. After a quarter century it was a real shock and
difficult to say good-bye. My sincere thanks to both Jerry Golis and Tammy Bonnice
who have become real friends over the many years that we’ve worked together, and now
we welcome a new printer, Courier Printing. We are confident that our relationship with
Courier Printing will be a good one and that we will have a many-year excellent
relationship.
Thanks are also due to you, the membership, for your support of the Consortium.
Without your participation in the regional conferences there could not be regional
conferences.. The growth of the Consortium over the last quarter century speaks for itself!
As we look toward a new fiscal year starting 1st August, plan to attend a regional
conference (or two or three) as well as help execute the conference of your choice. Check
out the web site – ccsc.org – , the list of regions and the upcoming conferences, as well
as how to contact the region is listed on the regional web sites, and indicate how you
would like to assist. The CCSC Board can also use your help. Feel free to contact any
Board member.
John Meinke
UMUC Europe
CCSC Publications Chair
x
xi
xii
WELCOME TO CCSCNE 2012 FROM THE CHAIRS
Welcome to the 17th Annual Conference of the Northeast region of the Consortium
for Computing Sciences in Colleges. The conference is held in cooperation with the ACM
SIGCSE and Upsilon Pi Epsilon Honor Society and is hosted by Quinnipiac University
in Hamden, CT.
The program committee has worked hard to bring you a thought provoking
conference featuring a range of topics, presented in a variety of formats. During the
plenary sessions, Ed Lazowska will present Computer Science: Past, Present, and Future,
and Sally Fincher will present Computing Education Research: Who is it for? Oh, and
why? We accepted 43% of the papers submitted. These will be presented in six sessions.
We have two tutorial sessions and three panel sessions.
On Friday morning, we have four pre-conference workshops. We will have a faculty
poster session for works in progress. And for our future educators, researchers, and
practitioners, we have a student poster contest and a student programming contest. On
Saturday morning, the Computer Science Teachers Association (CSTA) will host a
roundtable session where participants will be able to talk with members of the regional
CSTA about important K-12 issues and the bridge from high school to undergraduate
computing programs.
We thank the program committee for their dogged dedication, without whom none
of this would be possible. We thank the CCSCNE Board for their guidance and support.
We thank our talented reviewers, who provided prompt and thorough reviews of
submissions. We thank Quinnipiac University for hosting the conference. Most
importantly, we thank those who participate and attend the conference, making CCSCNE
such a dynamic and provocative community.
We hope that you enjoy your visit to Hamden, CT and Quinnipiac University, and
that you leave feeling inspired and fulfilled.
Mark Hoffman and Jonathan Blake
Conference Co-Chairs
Quinnipiac University
1
BOARD MEMBERS — CCSC NORTHEASTERN REGION
Lawrence D'Antonio, Chair. . . . . . . . . . Ramapo College of New Jersey, Mahwah, NJ
Richard Wyatt, Secretary. . . . . . . . . . . . . West Chester University, West Chester, PA
Adrian Ionescu, Treasurer. . . . . . . . . . . . . . . . . . . Wagner College, Staten Island, NY
Michael Gousie, Editor. . . . . . . . . . . . . . . . . . . . . . . . . Wheaton College, Norton, MA
Paul Tymann, Membership Chair. Rochester Institute of Technology, Rochester, NY
Stoney Jackson, Webmaster.. . . . Western New England University, Springfield, MA
Frank Ford, Registrar. . . . . . . . . . . . . . . . . . . . . . . Providence College, Providence, RI
Lonnie Fairchild.. . . . . . . . . . . . . . . . . . . . . . . . . SUNY Plattsburgh, Plattsburgh, NY
David Hemmendinger. . . . . . . . . . . . . . . . . . . . . . . . Union College, Schenectady, NY
Scott McElfresh. . . . . . . . . . . . . . . . . . . . . . . . . . . . St. John's University, Queens, NY
Hemant Pendharkar. . . . . . . . . . . . . . . . . . . . Worcester State College, Worcester, MA
Amruth Kumar. . . . . . . . . . . . . . . . . . . . Ramapo College of New Jersey, Mahwah, NJ
Bonnie MacKellar. . . . . . . . . . . . . . . . . . . . . . . . . . St. John's University, Queens, NY
Viera Proulx. . . . . . . . . . . . . . . . . . . . . . . . . . . . Northeastern University, Boston, MA
Ingrid Russell. . . . . . . . . . . . . . . . . . . . . . . University of Hartford, West Hartford, CT
James Teresco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Siena College, Loundonville, NY
Karl Wurst. . . . . . . . . . . . . . . . . . . . . . . . . . . Worcester State College, Worcester, MA
2012 CCSC NORTHEASTERN REGIONAL CONFERENCE
COMMITTEE
Mark Hoffman, Conference Co-Chair. . . . . . . . . Quinnipiac University, Hamden, CT
Jonathan Blake, Conference Co-Chair.. . . . . . . . Quinnipiac University, Hamden, CT
Mark Bailey, Papers Co-Chair. . . . . . . . . . . . . . . . . . . Hamilton College, Clinton, NY
Aaron Cass, Papers Co-Chair. . . . . . . . . . . . . . . . . . Union College, Schenectady, NY
Jim Teresco, Papers Co-Chair. . . . . . . . . . . . . . . . . . . Siena College, Loudenville, NY
Susan Imberman, Panels and Demos Co-Chair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . College of Staten Island, Staten Island, NY
2
CCSC: Northeastern Conference
Yana Kortsarts, Panels and Demos Co-Chair. . . . . . Widener University, Chester, PA
Ingrid Russell, Speakers Co-Chair.. . . . . . University of Hartford, West Hartford, CT
Brian Dorn, Speakers Co-Chair. . . . . . . . . University of Hartford, West Hartford, CT
Sandeep Mitra, Undergraduate Posters Co-Chair. . SUNY Brockport, Brockport, NY
Robert Dugan, Undergraduate Posters Co-Chair. . . . . . Stonehill College, Easton, MA
Lonnie Fairchild, Faculty Posters Co-Chair.. . . . SUNY Plattsburgh, Plattsburgh, NY
John Russo, Faculty Posters Co-Chair.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wentworth Institute of Technology, Boston, MA
Bonnie MacKellar, Tutorials and Workshops Co-Chair. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . St. John's University, Jamaica, NY
Jonathan Hill, Tutorials and Workshops Co-Chair. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . University of Hartford, West Hartford, CT
Lisa Michaud, Registration Co-Chair. . . . . Merrimack College, North Andover, MA
Alice Fisher, Registration Co-Chair.. . . . University of New Haven, West Haven, CT
Bruce White, Registration Co-Chair. . . . . . . . . . Quinnipiac University, Hamden, CT
Adam Fischbach, Vendor Co-Chair.. . . . . . . . . . . . . Widener University, Chester, PA
Mihaela Sabin, Vendor Co-Chair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . University of New Hampshire at Manchester, Manchester, NY
Matthew Hertz, Publicity Co-Chair. . . . . . . . . . . . . . . . Canisius College, Buffalo, NY
Nadine Hanebutte, Publicity Co-Chair. . . . . . St. John Fisher College, Rochester, NY
Frank Ford, Programming Contest Co-Chair.. . . . Providence College, Providence, RI
Delbert Hart, Programming Contest Co-Chair. . SUNY Plattsburgh, Plattsburgh, NY
Stanislav Kurkovsky, Programming Contest Co-Chair. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . Central Connecticut State University, New Britain, CT
REVIEWERS – 2012 CCSC NORTHEASTERN CONFERENCE
Reneta Barneva. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SUNY Fredonia, Fredonia, NY
Stephen Bloch. . . . . . . . . . . . . . . . . . . . . . . . . . Adelphi University, Garden City, NY
Barbara Bracken.. . . . . . . . . . . . . . . . . . . . . . . . Wilkes University, Wildes-Barre, PA
Alistair Campbell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hamilton College, Clinton, NY
Aaron G. Cass. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Union College, Schenectady, NY
Ping-Tsai Chung. . . . . . . . . . . . . . . . . . . . . . . Long Island University, Brookville, NY
Mary Courtney. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pace University, New York, NY
Lawrence D'Antonio. . . . . . . . . . . . . . . Ramapo College of New Jersey, Mahwah, NJ
Dan DiTursi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Siena College, Loudenville, NY
Alfreda Dudley.. . . . . . . . . . . . . . . . . . . . . . . . . . . . Towson University, Towson, MD
Emanuel Emanouilidis. . . . . . . . . . . . . . . . . . . . . . . . . . . . Kean University, Union, NJ
Lonnie Fairchild.. . . . . . . . . . . . . . . . . . . . . . . . . SUNY Plattsburgh, Plattsburgh, NY
Adam Fischbach.. . . . . . . . . . . . . . . . . . . . . . . . . . . . Widener University, Chester, PA
Seth Freeman. . . . . . . . . . . . . . . . . . . . . . . Capital Community College, Hartford, CT
3
JCSC 26, 6 (June 2011)
Meg Fryling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Siena College, Loudenville, NY
Ernie Giangrande Jr.. . . . . . . . . . . . . . . . . . . . . . . . Wingate University, Wingate, NC
John Giordano. . . . . . . . . . . . . . . . . . . . . US Department of Defense, Baltimore, MD
Michael Gousie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wheaton College, Norton, MA
Delbert Hart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . SUNY Plattsburgh, Plattsburgh, NY
David Hemmendinger. . . . . . . . . . . . . . . . . . . . . . . . Union College, Schenectady, NY
Susan Imberman.. . . . . . . . . . . . . . . . . . . . College of Staten Island, Staten Island, NY
Bo Kim.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Daniel Webster College, Nashua, NH
Bradley Kjell. . . . . . . . . . . . . . Central Connecticut State University, New Britain, CT
David Klappholz. . . Stevens Institute of Technology, Castle Point on the Hudson, NJ
Darren Lim.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Siena College, Loudenville, NY
Joan Lucas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SUNY Brockport, Brockport, NY
John MacCormick. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dickinson College
Jeffrey Martens. . . . . . . . . University of Maryland Baltimore County, Baltimore, MD
Fred Martin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UMass Lowell, Lowell, MA
Margaret McCoey. . . . . . . . . . . . . . . . . . . . . . . La Salle University, Philadelphia, PA
Carson McCullers. . . . . . . . . . . . . Dutchess Community College, Poughkeepsie, NY
Scott McElfresh. . . . . . . . . . . . . . . . . . . Wake Forest University, Winston-Salem, NC
Lisa N. Michaud.. . . . . . . . . . . . . . . . . . . . . Merrimack College, North Andover, MA
Sandeep Mitra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . SUNY Brockport, Brockport, NY
Patricia Morreale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kean University, Union, NJ
Eileen Peluso. . . . . . . . . . . . . . . . . . . . . . . . . . . Lycoming College, Williamsport, PA
Sofya Poger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Felician College, Lodi, NJ
Ingrid Russell. . . . . . . . . . . . . . . . . . . . . . . University of Hartford, West Hartford, CT
Jack Ryder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kean University, Union, NJ
Ian Sanders.. . . . . . . . . University of the Witwatersrand, Johannesburg, South Africa
Christina Schweikert. . . . . . . . . . . . . . . . . . . . . . . . St. John's University, Jamaica, NY
Daniel Spiegel. . . . . . . . . . . . . . . . . . . . . . . . . . . Kutztown University, Kutztown, PA
Jeffrey Stone. . . . . . . . . . . . . Penn State University Schuylkill, Schuylkill Haven PA
James Teresco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Siena College, Loudenville, NY
Rebecca Thomas. . . . . . . . . . . . . . . . . . . . . Bard College, Annandale-on-Hudson, NY
John Vaughn. . . . . . . . . . . . . . . . . . Hobart and William Smith Colleges, Geneva, NY
Nanette Veilleux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simmons College, Boston, MA
Giovanni Vincenti. . . . . . . . . . . . . . . . . . . . . . . . . . Towson University, Towson, MD
David Voorhees. . . . . . . . . . . . . . . . . . . . . . . . . . . . Le Moyne College, Syracuse, NY
Xiaohong (Sophie) Wang.. . . . . . . . . . . . . . . . . . Salisbury University, Salisbury, MD
Marc Waldman.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manhattan College, Bronx, NY
Linda Wilkens. . . . . . . . . . . . . . . . . . . . . . . . . . . . Providence College, Providence, RI
4
COMPUTING EDUCATION RESEARCH: WHO IS IT FOR? OH,
AND WHY?*
FRIDAY PLENARY SESSION
Sally Fincher
Professor of Computing Education
University of Kent, Canterbury, UK
Sally Fincher is Professor of Computing
Education in the School of Computing at the
University of Kent, where she leads the
Computing Education Research Group. Her work
is centrally concerned with the teaching and
learning of Computing, with particular emphasis
on teachers and teaching practices. She has
worked on several major computing education
projects, such as the Bootstrapping Research in
Computer Science Education series, and the UK
Sharing Practice project:
http://www.sharingpractice.ac.uk. She is
Editor-in-Chief of the Journal Computer Science
Education (jointly with Laurie Murphy), is a UK
National Teaching Fellow, a Senior Fellow of the
UK Higher Education Academy and a Fellow of
the Royal Society of Arts.
___________________________________________
*
Copyright is held by the author/owner.
5
COMPUTER SCIENCE: PAST, PRESENT, AND FUTURE*
SATURDAY PLENARY SESSION
Ed Lazowska
Bill & Melinda Gates Chair in Computer Science & Engineering
University of Washington
Director, University of Washington eScience Institute
Chair, Computing Community Consortium
The U.S. National Science Foundation
created the Computing Community Consortium to
stimulate the computing research community to
envision and pursue longer-range, more audacious
research challenges.
I'd like to take this opportunity to engage
you in this process. The next ten years of
advances in computer science should be far more
significant, and far more interesting, than the past
ten. I'll review the progress that our field has
made, and I'll present a number of "grand
challenge" problems that we should be prepared
to tackle in the coming decade.
I'll also discuss a recent assessment of of the
status and direction of computing research,
carried out by the U.S. President's Council of
Advisors on Science and Technology, for which
I co-chaired the working group that formulated
the report.
Ed Lazowska holds the Bill & Melinda Gates Chair in Computer Science &
Engineering at the University of Washington. Lazowska received his A.B. from Brown
University and his Ph.D. from the University of Toronto. His research and teaching
concern the design, implementation, and analysis of high performance computing and
communication systems. Twenty two Ph.D. students and twenty three Masters students
have completed their degrees working with him. Lazowska is a Member of the National
Academy of Engineering, a Fellow of the American Academy of Arts & Sciences, and a
Fellow of ACM, IEEE, and AAAS.
___________________________________________
*
Copyright is held by the author/owner.
6
SOFTWARE TESTING (IN JAVA) FROM THE BEGINNING*
PRE-CONFERENCE WORKSHOP
Viera K. Proulx
College of Computer and Information Science
Northeastern University
Boston, MA 02115
617-373-2225
vkp@ccs.neu.edu
ABSTRACT:
Software testing is usually delegated to upper level courses when students work on
larger projects and practice design skills. We believe that software testing needs to be an
integral part of learning how to design programs from the very beginning. The goal of this
workshop is to show how with the proper software support students can practice test-first
design from the beginning, and show that this approach helps students to develop good
program design habits early. We then show how additional techniques can be used to
create a more comprehensive validation and verification of programming projects and
help in identifying design flaws in student projects.
In the first half of the workshop we will introduce unit testing for the beginners, both
in the functional style and in the imperative style, exploring the notion of equality, and
examining special cases of unit testing (checking the correctness of constructors, methods
that throw exceptions, tests for inexact values, for a range of values, or one-of values, tests
that compare structured data sets. We will introduce our tester library that makes test
design, evaluation, and reporting accessible to the programmer at his/her current level of
knowledge of programming. We will show the syntax for the tests and describe the
pedagogy we use to enforce test-first design from the very first program students write.
The tester library is freely available on our web site with extensive documentation that
shows how to use it with Eclipse, NetBeans, BlueJ, or just command-line Java
compilation.
In the second half of the workshop we will show how to design randomized tests,
stress tests, black box tests and integration tests. We will show how the use of tools that
measure code metrics can help students and instructors identify design flaws in student
projects that make the design of tests difficult or impossible. We have used these tools in
our courses, especially in code reviews and in evaluation of student projects with
promising results.
___________________________________________
*
Copyright is held by the author/owner.
7
JCSC 27, 6 (June 2012)
INTENDED AUDIENCE:
The workshop is aimed at all college instructors with focus on those involved with
the first year introduction to programming. Prior exposure to functional style of
programming is recommended but not necessary. Our curriculum focuses initially on
mutation-free program design: the result of every function or method is a new piece of
data. This makes the test design easier, as all we need to do is to compare the actual
outcome with the expected one. However, the tests for imperative methods (that produce
void) are not much harder to design and will be covered in the workshop.
MATERIALS NEEDED:
No special materials are needed, other than an overview handout that will be
provided for the participants. It is recommended that the participants are ready to build
simple projects in Java in the IDE of their choice (Eclipse, NetBeans, BlueJ, JGrasp,
command line). All of our course materials, the tester library, and a wealth of labs,
examples, assignments, and lecture notes are already available on our web pages. The
tester library can be downloaded from our website. Additional workshop materials will
be available from the workshop website. Both, the needed libraries and all workshop
materials will be available on USB sticks during the workshop.
PRESENTER'S BACKGROUND:
Viera Proulx is a Professor in College of Computer and Information Science at
Northeastern University in Boston, MA. She has been involved in curriculum and
software development for introductory computing for over 20 years. During the past ten
years she has been developing and implementing curriculum for data-driven class based
introductory course on object-oriented programming, working with the
TeachScheme/ReachJava team. The draft of the textbook How to Design Classes that
supports this curriculum is nearly complete. For the past two years she has worked on
extending the software testing curriculum beyond the introductory stage.
Professor Proulx has led faculty development workshops and several
conference workshops on the ReachJava curriculum and on test-first design. Currently the
ReachJava team has an NSF grant that supports faculty development workshops at four
locations (Utah, California, New York, and Massachusetts or Rhode Island) with next
round of workshops planned for the summer 2012. Additionally, Professor Proulx is the
single PI on the NSF grant Integrating Test Design into Computing Curriculum from the
Beginning that supports further development of the software testing curriculum. Part of
the grant provides support for summer faculty development workshops, with the next one
planned for the Summer 2012 at Northeastern University.
REFERENCES
[1] Proulx, V. K., Test-Driven Design for Introductory OO Programming. SIGCSE
Bulletin, 41(1) 2009.
8
CCSC: Northeastern Conference
[2] Proulx, V. K., and Gray, K. E., Design of Class Hierarchies: An Introduction to
OO Program Design. SIGCSE Bulletin,38 (1), 2006.
[3] Proulx, V.K., and Jossey, W., Unit Test Support for Java via Reflection and
Annotations, in Principles and Practice of Programming in Java (PPPJ 2009),
Calgary, Canada.
This workshop is sponsored by two NSF DUE CCLI grants:
Integrating Test Design into Computing Curriculum from the Beginning, Grant
#0920182.
Redesigning Introductory Computing: The Design Discipline, Grant #00618543.
9
REDUCING THE LEARNING CURVE IN AN INTRODUCTORY
PROGRAMMING COURSE USING VISUAL LOGIC©*
PRE-CONFERENCE WORKSHOP
Dee Gudmundsen
The College of Saint Rose
Albany, NY 12203
518-454-2105
gudmundd@strose.edu
Lisa Olivieri
Chestnut Hill College
Philadelphia, PA 19118
215-248-7092
lolivier@chc.edu
Namita Sarawagi
Rhode Island College
Providence, RI 02908
401-456-9865
nsarawagi@ric.edu
ABSTRACT:
Visual Logic © (www.visuallogic.org) is an interactive, graphical software tool that
enables a novice programmer to interactively develop executable flowcharts. It is used
to introduce abstract programming concepts visually, making the transition into a complex
programming language easier. Participants will examine the simplicity, power and
versatility of using Visual Logic to teach programming concepts, with different
approaches, in introductory courses: (i) as an entire course in algorithmic thinking, (ii) as
the first half of an introductory programming course transitioning to Python, (iii)
simultaneously using Visual Logic to illustrate concepts and brainstorm solutions as
students learn Java syntax. Participants with non-Windows OS will require a Windows
simulator on their laptops.
INTENDED AUDIENCE: College faculty who teach introductory programming courses
for majors or non-majors.
RATIONALE: Learning the syntax of complex programming languages, such as C++
or Java, while simultaneously trying to understand the logic of basic programming
constructs continues to be a challenge and a discouraging factor for many students
enrolled in introductory programming courses. Even after completing a course that
focuses on the logic of programming via a game-like environment, the learning curve to
transition to an “industrial strength” programming language is often steep.
___________________________________________
*
Copyright is held by the author/owner.
10
CCSC: Northeastern Conference
Visual Logic © (www.visuallogic.org) [2], an interactive, graphical software tool,
introduces students to basic programming concepts in an almost syntax-free environment.
Novice programmers can develop and test programs in the form of interactive, executable
flowcharts that provides immediate feedback. The graphical flowchart symbols students
use to build their programs provide a visual perspective to abstract concepts including but
not limited to branching, looping, arrays, pre-defined functions, IO, and procedures. There
is also a full Logo-like graphics package that allows students to create graphic programs.
Visual Logic is easy for students to use. Its visual representations and straightforward
correlation with the essential structures of most programming languages make the
transition to an “industrial” programming language smoother. In student course
evaluations, most of the comments were extremely positive. A typical example: “Visual
Logic was good to start with because it really helped with the structure and I could
visually see the flow of the program”. From the instructor's perspective, using this visual
tool generates far more student enthusiasm and understanding than the traditional
approach of explaining syntax and fixing errors [1].
WORKSHOP OUTLINE:
1.
Introduction to Visual Logic and the rationale for using it. (15 minutes)
2.
For each of the three approaches to using Visual Logic as described in the Abstract
- each presenter will provide a
a)
Brief overview of the approach on how Visual Logic was used in their course
(15 minutes) followed immediately by
b)
Hands-on exercises illustrating different features of Visual Logic. Participants
will try the exercise simultaneously while the presenter demonstrates it. (15
minutes)
By the end of these ninety minutes, participants will have seen different approaches
to using Visual Logic in three different introductory programming courses and
would have tried out many features of the software.
3.
Several hands-on exercises for participants. (75 minutes).
Participants will try out these exercises on their own, with needed help from
presenters, to gain experience on how these problems enhance the logic of
programming and ease the transition to a regular programming language.
4.
Participants will be provided with deliverables to help them teach introductory
courses using one of these approaches.
DELIVERABLES: Participants will receive the following materials •
•
•
•
•
Demo version of Visual Logic (same as full version, but work cannot be saved)
Sample Visual Logic programs illustrating major concepts and their solutions
A tutorial PDF for Visual Logic
Materials that show the comparison between Visual Logic and Python and Java
Materials that support student transition from Visual Logic to Python.
11
JCSC 27, 6 (June 2012)
COMPUTER REQUIREMENTS:
Participants with non-Windows OS will require a Windows simulator on their
laptops in order to do the hands-on exercises. The Visual Logic software will be provided
during the workshop and does not require installation.
REFERENCES:
[1] Gudmundsen, D., Olivieri, L., Sarawagi, N., Using Visual Logic©: Three
Different Approaches in Different Courses - General Education, CS0, and CS1,
Journal of Computing in Sciences in Colleges, 26(6), 23-29, 2011.
[2] Visual Logic, © PGS Systems, LLC, www.visuallogic.org/, retrieved April,
2011.
BIOGRAPHICAL INFORMATION ABOUT PRESENTERS:
Dee Gudmundsen has been using Visual Logic in an objects-late CS1 for five
semesters. Visual Logic is used 1) to introduce the programming concept visually before
teaching the specific Java syntax and 2) as a tool to brainstorm and test the logic of
solutions before coding in Java.
Lisa M. Olivieri has used Visual Logic in a CS0 course for the past four years.
Students first learn Visual Logic and then transition to Python.
Namita Sarawagi was involved in the development of a new CS General Education
course: “Introduction to Algorithmic Thinking”. Visual Logic has been used in this
course for all majors, for the past 3 years.
12
WORKSHOP: LEARNING FOSS COLLABORATION TOOLS &
TECHNIQUES
THROUGH GUIDED INQUIRY ACTIVITIES*
PRE-CONFERENCE WORKSHOP
Clif Kussmaul
Muhlenberg College, 2400 Chew St, Allentown, PA 18104
1-484-664-3352
kussmaul@muhlenberg.edu
Heidi J. C. Ellis
Western New England University, 1215 Wilbraham Road, Springfield, MA 01119
1-413-782-1748
ellis@wne.edu
Gregory W. Hislop
Drexel University, 3141 Chestnut St, Philadelphia, PA 19104
1-215-895-2179
hislopg@drexel.edu
ABSTRACT
Many faculty members (and students) desire to know more about free & open source
software (FOSS) development and its tools and practices. This workshop introduces
participants to collaboration tools & techniques used in FOSS. In particular, we will focus
on task tracking systems and version control systems, which are unfamiliar to many
faculty and students. To help participants understand what these tools do and how to use
them, we will use process oriented guided inquiry learning (POGIL) activities. In POGIL,
learners work in groups of 3 or 4 in guided activities that are structured to help them
construct new knowledge. In the two hands-on activities, teams will work through a series
of increasingly sophisticated models. In each model, teams will use tools, answer
questions, explore options, and report out their findings and lessons learned. We
particularly welcome students, who should enjoy the activities and could help faculty
observe the strengths and limitations of the tools and activities. Participants will receive
___________________________________________
*
Copyright is held by the author/owner.
13
JCSC 27, 6 (June 2012)
copies of all activities, presentation slides, and other materials, and an annotated
bibliography on FOSS, POGIL, and related topics.
BACKGROUND
Computer science (CS) and software engineering (SE) education face many
challenges. Students must master a broad and diverse range of technical knowledge and
skills, and also develop skills in communication, teamwork, and project management.
Many faculty members are turning to FOSS projects to provide students with learning
opportunities within a professional environment (e.g. [1,2, 3,4,5]). FOSS projects
maintain a complete history of code and other development artifacts, which students can
study and improve. FOSS communities can help students to solve problems and learn to
communicate with a variety of project stakeholders. Thus, FOSS projects may provide a
continuous environment which supplies students with a more holistic educational
experience to connect knowledge and skills gained across a variety of courses. FOSS
participation can also require experience with an array of technologies, tools, and
community processes.
In POGIL, teams of learners (typically 3-5) work on scripted inquiry activities and
investigations designed to help them construct their own knowledge, often by modeling
the original processes of discovery and research. Teams follow processes with specific
roles, steps, and reports that encourage individual responsibility and meta-cognition.
POGIL has been developed, and validated over the last 15 years, particularly for teaching
chemistry (e.g. [8]). POGIL is also being used in CS education (e.g. [6,7]). Multiple
studies have examined the effectiveness of POGIL, and generally find that POGIL
significantly improves student outcomes.
ORGANIZATION
1.
2.
3.
4.
5.
6.
7.
8.
(10 min) Introductions and background on FOSS and POGIL
(5 min) Organization of teams and introduction of first activity.
(50 min) Participants will work through a POGIL activity that explores task tracking.
(10 min) Discussion & questions about task tracking.
(15 min) Break.
(70 min) Participants will work through a POGIL activity that explores code sharing
and version control.
(10 min) Discussion & questions about version control.
(10 min) Conclusion and discussion of broader issues and future directions.
REFERENCES
[1] Budd, T. A course in open-source development. Symposium on Integrating FOSS
into the Undergraduate Curriculum, SIGCSE, 2009.
http://hfoss.org/symposium09
[2] Ellis, H., Morelli, R., and Hislop, G. Support for educating software engineers
through humanitarian open source projects. Proceedings of CSEE&T, 2008.
14
CCSC: Northeastern Conference
[3] Hislop, G., Ellis, H., Tucker, A., and Dexter, S. Using open source software to
engage students in computer science education. Proceedings of SIGCSE,
134-135, 2009.
[4] Hortsmann, K. Challenges and opportunities in an open source software
development course. Symposium on Integrating FOSS into the Undergraduate
Curriculum, SIGCSE, 2009.
[5] Kussmaul, C. Free and open source software across the curriculum. Symposium
on Integrating FOSS into the Undergraduate Curriculum, SIGCSE, 2009 (panel
position).
[6] Kussmaul, C. Process oriented guided inquiry learning for soft computing.
Proceedings of the Int'l Conference on Advances in Computing &
Communication, Kochi, India, 2011.
[7] Kussmaul, C. CS-POGIL: Process Oriented Guided Inquiry Learning in
Computer Science, 2011. Retrieved Nov 8, 2011 from http://cspogil.org.
[8] Moog, R., Spencer, J. Process-Oriented Guided Inquiry Learning (POGIL).
Oxford Univ. Press, 2008.
PRESENTER BIOGRAPHIES
Clif Kussmaul is Associate Professor of Computer Science at Muhlenberg College.
Formerly he was Visiting Fulbright-Nehru Scholar at the University of Kerala, India; and
Chief Technology Officer, Elegance Technologies, Inc. Clif is PI on an NSF-TUES
project on POGIL in Computer Science. His professional interests include guided inquiry
learning, free and open source software, distributed collaboration and knowledge
management, and entrepreneurship.
Heidi Ellis is Chair and Associate Professor of Computer Science and Information
Technology at Western New England University. Dr. Ellis' research interests include
software engineering education, open source software, and tools for biological data
analysis. Dr. Ellis is one of the founding members of the Humanitarian FOSS (HFOSS)
project which focuses on involving students in FOSS projects that improve the human
condition. Heidi is PI/Co-PI on two NSF-CCLI projects that support student involvement
in HFOSS projects. Heidi also attended a POGIL workshop and has used POGIL activities
in introductory computing classes.
Gregory Hislop is a Professor of Information Science and Technology and
Computer Science at Drexel University. His interests include software engineering,
computing education, and use of technology in education. Dr. Hislop has been PI or
Co-PI on several NSF-funded projects that have explored student participation in FOSS.
Prior to joining Drexel University, Dr. Hislop spent almost 20 years in IT practice with
particular emphasis on products and services for enterprise systems management.
15
TEACHING CS0 WITH MOBILE APPS USING APP INVENTOR
FOR ANDROID *
PRE-CONFERENCE WORKSHOP
Hal Abelson
Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology
Cambridge, MA 02139
hal@mit.edu
Ralph Morelli
Department of Computer Science
Trinity College
Hartford, CT 06106
ralph.morelli@trincoll.edu
Stella Kakavouli, Eni Mustafaraj, and
Franklyn Turbak
Computer Science Department
Wellesley College
Wellesley MA 02481
{skakavou, emustafa, fturbak}@wellesley.edu
App Inventor for Android (AIA) is a visual programming environment freely
available from MIT's Center for Mobile Learning that enables students with no previous
programming background to build apps for Android mobile devices. Empowering
students to create their own mobile apps engages them personally and can infuse
much-needed energy and excitement into computer science education.
This workshop is targeted at faculty teaching introductory computer science courses
in college or high school. We will lead hands-on activities in which participants create
applications and test them on phones that we will provide. We will also describe our
experiences with using AIA in our courses (including a CS Principles course),
demonstrate applications created by students, and discuss relevant teaching techniques
and practical issues.
WORKSHOP SCHEDULE (3 hours)
•
•
•
Motivation and design philosophy (5 minutes).
Hands-on walk-through of two simple applications (30 minutes).
Demonstration of student apps from our courses (10 minutes).
___________________________________________
*
Copyright is held by the author/owner.
16
CCSC: Northeastern Conference
•
•
•
•
•
•
•
Brainstorming about applications participants can write during the session (10
minutes).
Break (5 minutes).
Independent work by participants, with support from workshop leaders (75
minutes).
Break (5 minutes).
Q&A about AIA (10 minutes).
Presentation of course materials, including sample assignments and projects from
MIT, Trinity, and Wellesley (15 minutes).
Discussion of whether and how to incorporate mobile phone programming and
AIA into courses taught by participants (15 minutes).
PARTICIPANT REQUIREMENTS
AIA programs are constructed by dragging and dropping components into an
interface designer and then describing the behavior of the components in a Scratch-like
block-based programming environment. While an app is being built, it can be tested on
an Android phone connected to the computer by a USB tether or on an Android emulator
running on the computer.
We will supply the Android phones that will be used by the participants during the
workshop (but they are welcome to bring any Android devices they might have).
Participants need to bring laptops with wireless networking. Before the workshop, they
must follow setup instructions supplied by the workshop leaders to configure their
laptops.
ABOUT THE WORKSHOP LEADERS
Hal Abelson is the Class of 1922 Professor of Computer Science and Engineering
at MIT and co-director of the MIT Center for Mobile Learning. He is the winner of the
2012 SIGCSE Award for Outstanding Contribution to Computer Science Education for
his work on the pedagogy and teaching of introductory computer science with Logo,
Scheme, and App Inventor. While a visiting faculty member at Google, he was one of the
founders of AIA.
Ralph Morelli is Professor of Computer Science at Trinity College in Hartford, CT,
where he teaches a CS Principles course based on App Inventor. He is also co-PI of the
Humanitarian Free and Open Source Software Project, in which App Inventor has been
used to implement projects.
Eni Mustafaraj is a Norma Wilentz Hess Fellow (Visiting Assistant Professor) in the
Computer Science Department at Wellesley College, a liberal arts college for women. She
has taught App Inventor in three courses at the CS0 and CS2 level and is currently active
in supporting the transition of App Inventor from Google Labs to MIT's new Center for
Mobile Learning.
17
JCSC 27, 6 (June 2012)
Stella Kakavouli is an Instructor of Science Laboratory and Franklyn Turbak is an
Associate Professor of Computer Science at Wellesley College. In Fall 2011, they teamed
up to teach a new CS0 course based on App Inventor entitled Inventing Mobile Apps.
18
CREATE TWO, THREE, MANY COURSES: AN EXPERIMENT
IN CONTEXTUALIZED INTRODUCTORY COMPUTER
SCIENCE*
Valerie Barr
Computer Science Department
Union College
Schenectady, NY 12308
518-388-8361
barrv@union.edu
ABSTRACT
This paper describes an approach to introductory CS that is based on numerous
theme-based introductory courses, with resulting improvements in overall
enrollments and gender diversity.
INTRODUCTION
The decreased interest in computer science among incoming college students is well
documented [3, 7]. So, too, is the declining opportunity within high schools for students
to have exposure to computer science [4]. This combination of factors led the Union CS
department to revamp its introductory CS approach, seeking a curriculum that would be
of interest to students who did not come to college intending to study CS, as well as
engage in CS courses students whose primary academic interests lie outside computer
science. There are three key elements to the revised curriculum. First, there must be
introductory courses that appeal to students based on their own areas of interest. Second,
interdisciplinary connections and uses of computing must be made apparent to all students
(majors and non-majors) in order to motivate and sustain their interest. Third, there must
be curricular routes students can pursue after the introductory course if they decide that
they are interested in computing and computer science, but not necessarily as a major
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
19
JCSC 27, 6 (June 2012)
field. This paper focuses primarily on introductory courses and the impact on enrollments
of a new introductory curriculum.
Background
Union is a residential liberal arts college, with engineering, of approximately 2300
students. As of 2004-2005, the CS department offered a standard CS1 course in Java,
along with a CS0 course that covered Excel, Access, and some Visual Basic
programming. Enrollment in CS1 for the 5 academic years 2000-2005, with 2 or 3
sections per year, averaged 38 students per year. Enrollment in the CS0 course over the
same time period averaged 98 students per year. However, enrollments in both courses
diminished over that time period, with only 29 students in CS1 and 45 in CS0 during
2004-2005. In addition, the students who enrolled in CS1 came from a relatively small
number of majors, primarily computer science, electrical engineering, computer
engineering, and math. There were a few economics majors, though those students were
more likely to take CS0 (which was required of managerial economics majors).
In 2005-2006 a new course, Creative Computing, was added, initially positioned as
a CS0 (non-major) course. This is a media computation course based on [6] and taught
with Python. In 2006-2007 another CS0 level course was added, Robots Rule!, a robotics
themed course initially taught with C (now taught with Python). Initial interest in the new
courses was strong and a number of the enrolled students decided to become CS majors
or minors.
The department was concerned that the new majors then had to take the CS1 course,
despite a fair amount of overlap between CS0 and the CS1 courses. The department was
generally in favor of multiple pathways into the major ([9]), but did not want to have
some pathways be longer than others. Furthermore, the goal was to expose to computing
as large a portion of the student body as possible. In 2007 the department decided to
experiment with multiple CS1 courses, rather than multiple CS0 courses that would feed
into a typical CS1. In order to have multiple CS1 courses, the department first developed
a common set of skills and concepts (discussed below) that would be covered in all the
introductory courses, and changed Creative Computing and Robots Rule! to be CS1
courses, not CS0. At that point the original CS1 course was also revamped to have a
game development theme, and eventually switched to Python.
In 2007-2008 the department added Can Computers Think?, an introductory course
with an Artificial Intelligence theme, and in 2008-2009 added Taming Big Data, with a
computational science theme. The former was developed in part to support the
neuroscience program, and is now required of all neuroscience majors. The latter focuses
on the types of problem involving large data sets that are usually found in the science and
social science disciplines. Finally the Programming For Engineers course was changed
to also cover the common set of concepts and skills covered by the other introductory
courses.
Because each theme requires that there be coverage of theme-specific content, some
material was removed that would normally be in a CS1 course, and this had a curricular
ripple effect. There is now only minimal coverage of objects and classes in the
20
CCSC: Northeastern Conference
introductory courses. The first third of the CS2 course is a transition to Java and object
oriented programming. As a result, material that no longer fits in CS2 has been moved
either to Algorithms or to Large Scale Software Development.
Common Concepts and Skills
The department had to agree on a common set of concepts and skills. These are
shown in Table 1 and have informed the development of all six of the CS1 courses. For
many topics, such as fundamental programming, there was easy unanimity about the level
at which the topics should be taught. However, there were a number of topics about
which there was debate as to whether students needed to simply be introduced to the
topic, or whether they needed deep understanding.
Unit Name
Fundamental Programming
Constructs
Topic Name
Notes
Basic syntax and semantics of
high-level language
Conditional and iterative control
structures
Functions and parameter passing
Simple I/O
Structured decomposition
Breaking problem into chunks
Variables, types, expressions,
and assignment
Algorithms and
Problem-Solving
Debugging strategies
Echo printing and tracing, etc.,
not using a debugger
Concept and properties of algs.
Role of algs. in problem solving
Implementation strategies for
algs.
Problem solving strategies
Fundamental Data Structures
Records
Concept of "struct-like" entities,
encapsulated fields, built-in
functions
Primitive types
Data representation in memory
Logical memory diagrams
Arrays
Fundamental computing
algorithms
Sequential and binary search
algs.
Understand sequential
Overview of programming
languages
Language paradigms, procedural Introductory level
languages
Introduction to language
translation
Comparison of compilers and
interpreters
Introduce binary
Introductory level
21
JCSC 27, 6 (June 2012)
Abstraction mechanisms
Modules in programming
languages
Digital logic and digital
systems
Overview of computer
architecture
Machine level representation
of data
Numeric data representation,
number bases
Overview only, not history
Bits, bytes, words
Representation of non-numeric
data (characters, graphical data)
Overview of operating systems Role and purpose of the OS
Software tools and
environments
Programming environments
Recursion
The concept of recursion
Includes ASCII and Unicode
Introductory level
Show how different IDEs can be
used to edit and run the same
code; show command-line
Implementation of recursion
Social context of computing
Introduction to social
implications of computing
Other
Students should learn how to
look up language documentation
on their own.
Table 1: Common Concepts and Skills For All CS1 Courses
Along with the common concepts and skills, the department faculty had to agree on
the level of mastery that would be necessary for a student to go on to CS2. Effectively
this meant deciding what constituted C- level work, based on three competency levels,
applied to each category of the concepts and skills list: Accomplished, meaning that the
student can usually solve this type or problem or apply the skill with only minor errors;
Developing, meaning the student can make an attempt that goes in the right direction, but
he/she might need some help to make it work properly; Beginning, meaning that the
student is aware of having seen similar problems or concepts before, but may need
considerable help to go further. For example, in the category of fundamental
programming constructs, students are expected to be accomplished in the majority of
areas, but they might still be developing their ability to implement file reading, to do
structured decomposition, and to carry out program tracing. They will be shown a
debugger, but their own debugging skills will still be developing, though they are
expected to use the error messages generated by the compiler/interpreter. Students will
understand the reasons for developing algorithms, and will be able to translate algorithms
into code. However, they may still be developing their own ability to write pseudo code.
The department now offers 8-11 sections per year of introductory CS, usually taught
by at least 6 distinct faculty members each year. By comparison, before the curricular
changes the department offered 1-2 sections per year of CS1 and 1-3 sections per year of
CS0. The level of agreement achieved about the concept and skills, and the consistency
with regard to assessment of student mastery and competency, has been crucial in order
22
CCSC: Northeastern Conference
to ensure adequate preparation of students who continue on with CS2 or other courses
within the CS program.
HOW CAN A SMALL DEPARTMENT DO THIS?
The department currently has 6 full time faculty members, and a 6 course per year
teaching load. Each introductory course is taught studio style, with integrated lecture and
hands-on work. The old CS1 had a separate lab session and counted as 1.5 courses of
teaching load. Now the introductory courses (except Programming for Engineers)
continue this model, meet the additional time and count as 1.5 courses for the faculty
member, allowing substantial time for hands-on activities. Each section is capped at 18
students and taught in a computer lab in order to facilitate the transition between lecture
and hands-on work.
In order to make room in the course schedule for the increased number of CS1
offerings, the department eliminated the old CS0 course. A number of additional changes
were made in order to accommodate the new approach to the introductory CS curriculum:
reduction of the number of proscribed courses for the major from 8 (out of 10) to 5 (this
has the added benefit, by increasing the number of electives, of giving students more
flexibility and choice within the general guidelines of the major); put elective courses on
a rotation schedule so that each one is taught every other or every third year; made
available to students a 4-year schedule of offerings so that they can plan according to the
course rotation.
RELATED WORK
A number of departments have added some form of theme-based CS1 or CS0 course
to their CS curriculum. In some cases the theme is chosen in order to give students a
sense of a "real" application, possibly one to which they can relate based on their prior
experience with computers. This is particularly true for courses focused on games, such
as described in [2], or that use games as the learning environment ([1]). In other cases the
theme is chosen in order to give students a tangible environment in which to work, such
as the robotics themed course described in [8], or in order to fully explain a particular area
of computer science, such as the networking course described in [10]. Our approach
differs from these in several key ways. First, rather than retain the standard CS1 and add
a single theme-based course, or replace our CS1 with a single theme-based course, we
have replaced CS1 with 6 theme-based courses. The themes were chosen because they
should be engaging for a range of students and they dovetail with other curricular interests
the students may already be pursuing. This increases the possibility that we will recruit
new majors and minors, though the department also values the enrollments of students
who may take just a few CS courses. Because of the common set of concepts and skills
across the set of introductory courses, we also have a framework that makes it possible
for us to change courses as student and faculty interests evolve over time. A significant
additional benefit of our revised curriculum is that all CS majors have immediate
exposure to an application of and context for computing within their introductory course.
23
JCSC 27, 6 (June 2012)
Finally, it is worth comparing our work with the Threads ([5]) project begun at
Georgia Tech. In some ways Threads is similar to our efforts at Union in that it gives
students a context for computing and exposure to multidisciplinarity. However, the
Threads curriculum is designed for students who already plan to major in CS, with the
expectation that it would increase recruitment (into the College of Computing) and
retention. This is a very reasonable approach for a large institution like Georgia Tech that
is dealing with a student population that is already inclined toward an engineering or
computing discipline. By comparison, Union is a small liberal arts college in which at
most 1-2% of each graduating class majors in CS. Therefore, the goal is to provide a
computing related context both for prospective majors and for students whose initial (and
final) academic interest may lie elsewhere. In Threads the themes cross areas of computer
science, whereas the goal at Union is that students will see the connections between
computer science and other disciplines, and be better equipped to address problems that
lie at the intersections of disciplines, whether it is bioinformatics, analysis of dynamic
economic systems, or powerful searches within Greek texts
RESULTS
There are several indicators of the impact of the curricular changes. Three of these
are 1) the major departments of introductory CS students, 2) the overall enrollment
numbers in the introductory courses, and 3) the gender ratio in the introductory courses.
The traditional CS1 course drew primarily from CS, the three engineering programs
(electrical, mechanical, and computer engineering), with a few math, economics, and
physics majors. The revamped introductory course is now required of various majors.
All neuroscience majors are required to take Can Computers Think?, all managerial
economics majors are required to take Taming Big Data, and all engineering majors are
required to take one of the CS1 courses (mechanical engineers are required to take
Programming for Engineers, while the other engineering majors can take any CS1).
Overall, in 2010-2011 the students taking introductory CS came from 18 distinct majors,
including Asian Studies, Environmental Studies, English, Women & Gender Studies.
In the five-year period 2000-2005, an average of 136 students enrolled per year in
our CS0 and CS1 courses. In 2004-2005 the annual combined enrollment was only 74.
Since spring 2009, at which point all the new or revised introductory courses were on line,
CS1 has averaged 148 students per year. The enrollments in the old CS1 course were
14% female over a 5-year period prior to changes in the curriculum. Certain majors from
which CS draws heavily, such as economics and engineering, have their own gender
imbalances. Despite this, since the completion of the curricular changes, CS1 enrollments
are 29% female when Programming for Engineers is included, and 33% female without
that course. While many of the students from other departments do not take additional
CS courses, we have seen modest change in CS2 as well. Prior to the curricular change,
CS2 enrollments were below 9% female, but have increased to 13% female since the
curricular change.
24
CCSC: Northeastern Conference
CONCLUSIONS
The overhaul of the CS curriculum to include a number of theme-based introductory
CS courses has greatly increased the number and diversity of students enrolled. It has
made it possible for the department to recruit majors after students arrive on campus, as
well as work with students from non-CS disciplines who become interested in computing.
ACKNOWLEDGMENTS
Elements of this work have been supported by the National Science Foundation,
Grant No. IIS-0722203. Current and past members of the Union College CS department
have contributed to development of curriculum, courses, and competency guidelines,
including Linda Almstead, Brendan Burns, Aaron Cass, Chris Fernandes, Dave Hannay,
David Hemmendinger, John Rieffel, Kristina Striegnitz, and Andrea Tartaro.
REFERENCES
[1] Barnes, T., Powell, E., Chaffin, A., Game2Learn: Improving the motivation of
CS1 students, Proceedings of the 3rd International Conference on Game
development in computer science education (GDCSE), 2008.
[2] Bayliss, J., Strout, S., Games as a 'Flavor' of CS1, SIGCSE 2006 Conference
Proceedings, 500-504, March 2006.
[3] CRA, Freshmen Interest in CS and Degree Production Trends, CRA Bulletin,
October, 2007, retrieved Sept. 5, 2009.
[4] CSTA, CSTA National Secondary Computer Science Survey,
http://www.csta.acm.org/Research/sub/CSTAResearch.html, retrieved Nov. 20,
2011.
[5] Furst, M., Isbell, C., Guzdial, M., Threads: How to restructure a computer
science curriculum for a flat world, SIGCSE 2007 Conference Proceedings, 420 424, March 2007.
[6] Guzdial, M., A Media Computation Course for Non-Majors, ITiCSE 2003
Conference Proceedings, 104-108, June 2003.
[7] Higher Education Research Institute, University of California at Los Angeles,
http://www.gseis.ucla.edu/heri/cirpoverview.php, retrieved on Sept. 5, 2009.
[8] Summet, J., Kumar, D., O'Hara, K., Walker, D., Ni, L., Blank, D., Balch, T.,
Personalizing CS1 with Robots, SIGCSE 2009 Proceedings, 433-437, March
2009.
[9] Margolis, J., Fisher, A., Unlocking the Clubhouse: Women in Computing,
Cambridge, MA: MIT Press, 2002.
[10] Murtagh, T.,Weaving CS into CS1: A Doubly Depth-first Approach, SIGCSE
2007 Conference Proceedings, 336-340, March 2007.
25
EARLY INTRODUCTION OF ADVANCED CS TOPICS TO
INCREASE STUDENT SATISFACTION*
Deborah Sturm and Roberta Klibaner
Department of Computer Science
College of Staten Island (City University of New York)
Staten Island, New York 10314
ABSTRACT
This paper describes the restructuring of our Computer Science elective
sequence in response to recommendations from an external Computing
Professionals advisory board, alumni and graduating students. By introducing
several new 200-level electives, students are able to sample advanced topics
early in their academic sequence. We also report feedback from current
students who have completed the major under the new format. Preliminary data
indicates increased student satisfaction. This may lead to increased enrollment
and retention of Computer Science majors.
INTRODUCTION
Many innovative approaches to revising Computer Science curricula have been
introduced in order to increase the number of computing majors [1,2,4,6,8 ]. Some have
focused on broadening the curriculum, on interdisciplinary efforts, and on introducing
research topics in courses [3,4,5,7,9,10 ]. The NSF's Integrative Computing Education and
Research (ICER) Initiative recommends five strategic initiatives; Strategic Initiative 3
includes: "Improve retention by recasting introductory courses as "pumps, not filters."
Strategic Initiative 4 states: "Strengthen interdisciplinary connections by offering courses
for students in other disciplines, encouraging collaborative activities across disciplines for
faculty, and developing and distributing interdisciplinary curricula."[2]
During the periodic review of assessment data, our Departmental Outcomes
Assessment Committee reported several issues. Several constituencies (Computing
Professionals, alumni, graduating seniors) recommended introducing new topics to keep
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
26
CCSC: Northeastern Conference
pace with the rapidly changing computing field. They included Network Security and
Game Development. They also suggested requiring more than two electives.
As a result of this feedback, in 2007 we introduced several new electives at the 200
and 400 level. The 200 level electives require only CS1 as a prerequisite (Table 1 and
Figure 1). We placed them early in the major sequence in order to introduce advanced and
applied topics earlier in the major. This was in line with the ICER recommendation to
create "pump" rather than "filter" courses. Majors are now required to take three electives;
two of these optional entry-level courses count as one full elective. The first two new
electives were Web Development and Hacking Revealed. Since then we have introduced
three more: Web Database Applications, Introductory Game Development and
Introduction to High Performance Computing. Advanced courses such as game
development which would ordinarily require a strong theoretical foundation were
modified to make greater use of pre-built code and templates in order to both make the
coursework more practically oriented and lower the barrier to entry.
Before restructuring, all electives as well as Operating Systems, Software Design
and Algorithms had Data Structures as a prerequisite. Students typically take two
additional required courses (Circuits Lab and Architecture) in their junior or senior year
since these also follow a linear sequence after Assembly Language Programming and
Switching Theory. Since there are three required electives, Software Engineering and a
Senior Seminar, students had to take ten courses after completing Data Structures.
The restructuring of our elective sequence resulted in four positive outcomes:
•
It allows potential Computer Science majors to sample advanced and/or applied
topics early in their academic career.
•
Students from other disciplines can take interesting and popular courses without
completing several prerequisites.
•
Computer Science students are able to take one elective (2 early electives = one full
elective) earlier and not overload themselves with several courses in their last
semester.
•
The fourth outcome was unexpected. During focus group meetings with our majors,
students requested that we institute optional area concentrations based on groups of
electives.
Based on this student feedback we introduced three optional area concentrations:
Game Development, Network Security, and High Performance Computing. Each of the
early exposure electives has a corresponding advanced elective (Table 1). Some of the
paired advanced electives were in place prior to the restructuring while others were
introduced at the same time as the new electives. A student pursuing a concentration in
Game Development would take the two game development courses and electives in
Graphics or Artificial Intelligence. For Network Security they would choose the hacking
course, Network Security or Networking. The High Performance Computing
concentration includes the two HPC electives, as well as Linear Algebra.
27
JCSC 27, 6 (June 2012)
Early Elective
Semester
Introduced
Times
Run
Corresponding Advanced
Elective
Computer Hacking
Revealed
Fall 2007
4
Network Security
Introduction to Web
Development
Fall 2007
6
Applied Concepts in
Information Systems
(e-commerce)
Introduction to Game
Development
Fall 2008
3
Advanced Game
Development
Web Database
Applications
Fall 2008
2
Database Management
Systems
Intoduction to High
Performace Computing
(HPC)
Fall 2011
1
Advanced HPC
Table 1. New Early Electives and their corresponding Advanced Elective
Figure 1 illustrates how the restructured electives fit into our prerequisite framework.
By inserting the early electives after the introductory course, a student can take one or two
of these courses together with the Advanced Programming course and sample the applied
and advanced topics. Note that the advanced electives do not have the early electives as
prerequisites.
28
CCSC: Northeastern Conference
Figure 1. Partial Prerequisite chart showing the placement of the early electives with
prerequisite of CS1
Key: CS1.5 (Advanced Programming); DS (Data Structures); DM(Discrete Math); ALG
(Algorithms); OOP (Software Design/Object Oriented Programing); SE (Software
Engineering)
EARLY-ELECTIVES COURSE CONTENT
Each early elective is two credits and is structured with a lecture and lab component.
The lecture is official one hour and there are three laboratory hours. Here are the course
descriptions for the five 200-level electives:
29
JCSC 27, 6 (June 2012)
CSC 223 Computer Hacking Revealed
A theoretical and practical survey of computer network and Web security, attack
methods, and algorithms for defending computers and computer networks.
Students learn about major security threats, methods and technologies used, and
how threats affect the development and functioning of computer software and
hardware.
CSC 225 Introduction to Web Development and the Internet
An introduction to the Internet and Web page creation and management, using
a markup language, a scripting language, a current editor, and a graphics
program. Topics include incorporating graphics, sound, video and proper Web
page development concepts. Students will prepare Web pages incorporating text,
digitized images, scripts, animations, sound, and video.
CSC 226 Web Database Applications
This course offers students a mixture of theoretical and practical information on
creating Web database applications. Students will learn open source technologies
that are often combined to develop these applications. Student will model and
design databases and query remotely located databases on the Web. Searching,
browsing, storing user data, validating user input, managing user transactions,
and security issues are discussed.
CSC 227 Introductory Computer Game Programming
This course covers the process of game development. It also discusses the
importance of testing, and how developers use the results of testing to improve
their games. Students will be expected to develop simple games, or portions of
games, using appropriate game development tools.
CSC 229 Introduction to High Performance Computing (Effective Fall 2010)
An introduction to High Performance Computing. Parallel memory architectures
and programming models with an emphasis on the MPI programming model.
Issues related to designing parallel programs will be discussed. Examples of how
to parallelize simple serial programs will be covered.
ASSESSMENT
Since the fall 2007 semester, the early electives have been offered 16 times to a total
of 344 students. Although the students have predominantly been Computer Science
majors, 62 students from other disciplines have sampled the new courses. The most
popular one for non-majors is the Web Development course. However students outside
of Computer Science have also signed up for the Hacking and Game Development
courses. This is significant since these courses do not count towards their majors.
30
CCSC: Northeastern Conference
The department is considering adding optional areas of
specialization
Percent
Good idea
100%
Bad idea
0%
Table 2. Senior Exit Survey question before introducing Area Concentrations
I took (or am taking) the following 200-level electives:
CSC 223 - Hacking
Percent
9.1%
CSC 225 - Web Development
18.2%
CSC 226 - Web Database Applications
18.2%
CSC 227 - Introductory Game Development
36.4%
CSC 229 - Introductory High Performance Computing (HPC)
The 200-level electives are a valuable addition to the major
Strongly Agree
Agree
0%
Percent
90.9%
9.1%
Neither Agree nor Disagree
0%
Disagree
0%
Strongly Disagree
0%
I like having the option of Area Concentrations in the major
Percent
Strongly Agree
57%
Agree
42%
Disagree
Level of Early Elective
Too easy for 200-level course
Right level for 200-level course
Too hard for 200-level course
0%
Percent
0%
100%
0%
Table 3. Senior Exit Survey questions
As part of our continuous assessment, our senior seminar students complete exit
surveys each semester. Before adding area concentrations we asked the seniors (40
31
JCSC 27, 6 (June 2012)
students) whether they thought this was a good idea (Table 2). We also added questions
to ascertain their experience with the new elective structure (Table 3).
In addition, we examined persistence in the early electives and in two other
200-level courses. The first is the required Intermediate Programming course (CS 1.5 in
the flowchart in figure 1) that students typically take the semester after the introductory
course. Students completed the electives (non-F, non-Withdraw) at a rate ranging from
75% to 96% (average of 87%) as compared to the CS 1.5 course which students
completed at a rate of 50% to 77% (average of 63%). These averages are the cumulative
values from fall 2007 until spring 2011. We also compared the electives to our required
Discrete Math (DM in the flowchart in figure 1). The prerequisite for this course is the
Intermediate Programming course. The pass rates for this course were comparable to the
early-elective pass rates,
DISCUSSION
The restructuring of the elective sequence has led to several positive outcomes. All
the surveyed seniors either agreed or strongly agreed that the early electives are a valuable
option in the major. Those that took the early electives all agreed that they were taught at
the right level for a 200-level elective. They also agreed that the new area concentrations
are worthwhile. Despite not counting more than two early electives in the major, many
students have opted to take more than two out of interest. Moreover, several students have
expressed an interest in completing more than one concentration area. Although we found
that persistence is high in the 200-level electives, further study is needed to determine
whether exposure to early electives will lead to better retention rates.
REFERENCES
[1] Blumenfeld, P. C., Soloway, E., Marx, R. W., Krajcik, J. S., Guzdial, M., &
Palinscar, A. (1991) Motivating Project-Based Learning: Sustaining the Doing,
Supporting the Learning. Educational Psychologist, 26(3 & 4), 369-398.
[2] Cushing, J., Genevieve Orr, Robert Bryant, Sylvia Spengler, Sharon Tuttle, Ken
Yasuhara.. "NSF'S Integrative Computing Education and Research (ICER)
Initiative," Journal of Computing Sciences in Colleges CCSC-NW October 2006
(Spokane Washington)
[3] Cushing, J.,"Broadening CS at the Entry Level Interdisciplinary Science & CS,"
Google Education Summit, 2007.
[4] Merrick Furst , Charles Isbell , Mark Guzdial, Threads™: how to restructure a
computer science curriculum for a flat world, Proceedings of the 38th SIGCSE
technical symposium on Computer science education, March 07-11, 2007,
Covington, Kentucky, USA
[5] Dahlberg, T., Barnes, T., Rorrer, A., Powell, E., and Cairco,L. 2008. Improving
retention and graduate recruitment through immersive research experiences for
32
CCSC: Northeastern Conference
undergraduates. Proceedings of the 39th SIGCSE Technical Symposium on
Computer Science Education, Portland, OR, March 2008
[6] Guzdial, M., Soloway, E. Teaching the Nintendo generation to program, CACM,
(45,4), pp 17-21. 2002.
[7] Huntinroads, K., Using Image Processing to Teach CS1 and CS2, SIGCSE
Bulletin 86 Volume 35, Number 4
[8] Matzko, S. , Timothy A. Davis, Teaching CS1 with graphics and C, Proceedings
of the 11th annual SIGCSE conference on Innovation and technology in
computer science education, June 26-28, 2006, Bologna, Italy
[9] Peckham,J , Stephenson, P., Hervé, Y. , Hutt, R , Encarnação, M., Increasing
student retention in computer science through research programs for
undergraduates, ACM SIGCSE Bulletin, v.39 n.1, March 2007
[10] Peckham, J., Raicu, D., Russell, I., REUs: Undergraduate Research Experiences
and Funding, Volume 23 , Issue 5 (June 2007), Papers of the twelfth annual
CCSC Northeastern Conference, p. 208-211
33
SHOULD DATABASE COURSES BE REQUIRED IN
COMPUTER SCIENCE PROGRAMS?*
Lisa MacLean
Wentworth Institute of Technology
550 Huntington Avenue
Boston MA 02115
617.989.4122
macleanl@wit.edu
ABSTRACT
Currently, many accredited programs of computer science do not require
database theory coursework. If the goal of accreditation of academic programs
is to monitor the changes in an industry and prepare students to meet the needs
of the relevant industry, is this goal being met without such a requirement?
Database courses often suffer from an identity crisis of not being "real"
computer science, but this perception is limiting potential graduates by
straining out courses that are not traditional in the discipline. This paper
focuses on where the computer science graduate job market is moving and
what this means to accredited programs of computer science.
INTRODUCTION
The purpose of accreditation in higher education is a noble and vital one: to ensure
that students are adequately prepared to be gainfully employed in their chosen field of
study. Accreditation ensures that graduates are thoroughly prepared in foundational and
advanced coursework needed to succeed; that faculty are well-versed in their areas of
expertise, and capable of promulgating that knowledge; that facilities are adequate to
support the goals of the program and that colleges are staying current to impart the best
skills in a rapidly-changing and expanding economy which is increasingly global in scale
[11].
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
34
CCSC: Northeastern Conference
ABET (which changed its name from the Accreditation Board for Engineering and
Technology) is a non-profit, non-governmental organization that accredits over 3,100
computer science programs at more than 650 colleges and universities in 23 countries [1].
ABET standards require coursework in algorithms, data structures, software design,
concepts of programming languages and computer organization and architecture [2] but
no database courses.
1. WHERE THE TECHNICAL WORLD IS GOING
If one of the goals of accreditation of computer science is to ensure students are
being adequately prepared to function within the parameters of the technical world, it is
necessary to look at where that world is going. Clearly, increasingly, and not surprisingly,
that world is going to the Internet.
The Internet world itself is moving to databases. Domain Name Service, or DNS,
is the service that resolves IP (Internet Protocol) addresses to human-readable names for
web sites. While DNS was once a flat file stored in text, it is now a distributed, hierarchal
database. In fact, it is the largest and most frequently accessed database in the world [18]
and the Internet would not be possible without it. This is especially helpful with email,
since DNS is used to resolve the origin of email packets through a reverse-lookup
procedure [9].
The Dynamic Host Configuration Protocol (DHCP) is how IP addresses are assigned
to devices looking to connect to the network or Internet to use resources. Each host or
device must have a unique identifier, similar to a telephone number. DHCP is used to
assign these addresses dynamically, as opposed to using static IP addresses. This allows
for fewer IP addresses reserved and allows for centralized administration of IP addresses.
Also originating as a flat file, it is now a database as well [6].
More and more businesses are moving to the Internet and developing strong
presences there. The rise of Internet banking, online commerce such as Amazon and eBay,
and even simple small business interactive web sites is a testament to this. The rise of
web-enabled sites means a very simple thing: new systems architectures are becoming
more common. Specifically, this means three-tier, also called multi-tier or n-tier,
architecture.
In a centralized architecture, the programs and data are stored in one, centralized
location, usually a mainframe. Distributed architecture led to both programs and data
being distributed and processed across the network. In tiered architecture, the components
of an application are divided into layers, each of which perform a different task. The
presentation layer contains what the user sees, with formatting and error correction. The
second layer, or tier, is the application or middle tier, which holds business rules and
passes data requests to the database layer [4]. Three-tier architecture is highly flexible and
scalable. This is the architecture of the Internet.
Tiered architectures mean relational databases, and relational databases mean SQL.
The relational model database has risen to the top of the database world and has displaced
flat files and hierarchal databases. It is the most common database system used and has
dominated the market for some time [13]. In the relational model, data is stored in a series
35
JCSC 27, 6 (June 2012)
of tables related to each other and joined through keys. SQL is the language used to
create, control access to, and manipulate this data structure. It is both American National
Standards Institute (ANSI) and International Standards Organization (ISO) standardized,
and it is the de facto language of the relational database world [17].
1.1 The technical skills needed for this environment
As this model of relational tables stored in a SQL format on a three-tier architecture
continues to rise, data set sizes have grown substantially. Whether the industry is travel,
telecommunications, financial services, healthcare, or retail, data set sizes are enormous
and continue to grow [19]. This data growth has been shown to be exponential [10]. As
database sizes grow, maintaining application speed is of paramount importance. While
there are many ways that have been explored to keep applications running in real-time,
increasing hardware on servers storing the data has been shown to only produce
short-term solutions [8]. The three most critical factors to application speed in this
environment are table design, index design and SQL query design [7, 8]. It is not the
presentation code or business logic.
Table design means Entity-Relationship Diagramming (ERDs). These charts show
data tables as entities (people, places, things and events which need to be tracked) and the
relationships between the tables. The tables are validated by a process called
normalization, which applies a set of rules against the table structures to eliminate known
data anomalies inherent in the relational model [5]. The related tables are joined using
keys, which uniquely identify the row [3]. These keys become indices in the physical
design, hence index design being the second most important factor in application speed.
Since data is retrieved from these tables using the low-common-denominator SQL
language, and not C, C++, Java, or other application language, SQL query design is the
third most significant factor in overall application speed. Bad table design inherently leads
to bad code, reflecting the most important factor.
Coursework in Entity-relationship diagramming and normalization is not required
in an ABET-accredited computer science program, nor is SQL programming.
2. WHERE THE JOB MARKET IS GOING
If the goal of post-secondary education is to prepare graduates for the job market,
and the goal of accreditation to foster the engenderment of those skills needed for the
current job market, it is necessary to look at where the job market is going and ask if the
accredited coursework is effective toward this goal.
The United States Bureau of Labor Statistics (BLS) tracks the demand for different
job categories and the average salaries for them. Their data for straight computer
programmers shows 367,880 positions available with a mean annual wage of $74,690
with the job description of converting project specifications for coding into computer
language [15]. Adding database skills not only increases the employment opportunities,
but the salaries. The BLS shows 495,500 positions available with a mean annual wage of
$90,170 when the analysis and design of databases is performed [16]. While the mean
36
CCSC: Northeastern Conference
annual wages are only about $15,000 apart, the study notes that 90% of people employed
within the database skilled job description make a much higher mean annual salary:
$132,080 [16]. Database administrators, or those who maintain the databases on the
physical servers, also make six-figure mean annual salaries and demand is growing
swiftly for the 2008-2018 decade [14].
This same BLS publication notes the high and increasing demand for network
administrators. This makes sense, given the momentum of the Internet. Since more of
networking technology is moving to databases, it would stand to reason to include
database modeling techniques to facilitate the development of this career path as well.
3. CONCLUSION
The world is moving to the Internet, to tiered architectures and relational databases
that are created, protected and manipulated with the SQL programming language. While
relational database theory may not be traditional to computer science curricula, it is an
important skill. The SQL programming language may be considered a "fourth generation
language," yet it is an important tool in a programmer's skill set. If the goal of
accreditation is to prepare post-secondary students for the current technological world,
and the current and future job market, it is well worth considering mandating coursework
in database design and SQL programming. This would increase the employment
opportunities for graduates as well as provide a better return on investment for the cost
of post-secondary education.
REFERENCES.
[1] ABET. 2011. About ABET. http://abet.org/about-abet/ , January 31, 2012.
[2] ABET. (2011). Criteria for Accrediting Computing Programs, 2011 - 2012.
http://abet.org/DisplayTemplates/DocsHandbook.aspx?id=399, November 17,
2011.
[3] About.com. (2011). Database keys.
http://databases.about.com/od/specificproducts/a/keys.htm, November 17, 2011.
[4] Linux Journal. (1994-2011). Three-tier Architecture.
http://www.linuxjournal.com/article/3508, November 17, 2011.
[5] Microsoft.com. (20110). Description of the database normalization basics.
http://support.microsoft.com/kb/283878, November 17, 2011.
[6] Microsoft.com. (2011). DHCP Database.
http://technet.microsoft.com/en-us/library/cc774827(WS.10).aspx, November 17,
2011.
[7] Microsoft.com. (2011). Improving SQL Server Performance.
http://msdn.microsoft.com/en-us/library/ff647793.aspx, November 17, 2011.
37
JCSC 27, 6 (June 2012)
[8] Oracle Corp. (2000, 2008). Designing and Developing for Performance.
http://docs.oracle.com/cd/B19306_01/server.102/b14211/design.htm, November
17, 2011.
[9] Postcastserver.com. (2011). DNS Lookups.
http://www.postcastserver.com/help/DNS_Lookups.aspx, November 17, 2011.
[10] Quest Software. (2002). Middleware Solutions for MPE.
http://www.quest.com/middleware/pdfs/mpe_middle.pdf, November 17, 2011.
[11] Schools in the USA.com. (2003-2011). Computer Science Accreditation.
http://www.schoolsintheusa.com/ComputerScienceAccreditation.cfm, November
17, 2011.
[12] TechTarget.com. (2005-2011). Entity-Relationship Model (ERM or ER Model).
http://searchsqlserver.techtarget.com/definition/entity-relationship-model,
November 17, 2011.
[13] TechFAQ.com. (n.d.) What is a database?
http://www.tech-faq.com/what-is-a-database.html, November 17, 2011.
[14] United States Department of Labor. Bureau of Labor Statistics. (n.d.)
Occupational Outlook Handbook, 2010-11 Edition. Computer Network, Systems,
and Database Administrators. http://www.bls.gov/oco/ocos305.htm, November
17, 2011.
[15] United States Department of Labor. Bureau of Labor Statistics. (n.d.)
Occupational Employment and Wages, May 2009. 15-1021 Computer
Programmers. http://www.bls.gov/oes/2009/may/oes151021.htm, November 17,
2011.
[16] United States Department of Labor. Bureau of Labor Statistics. (n.d.)
Occupational Employment and Wages, May 2009. 15-1031 Computer Software
Engineers, Applications. http://www.bls.gov/oes/2009/may/oes151031.htm,
November 17, 2011.
[17] University Information Technology Services. (2005-2010). What is SQL?
http://kb.iu.edu/data/ahux.html, November 17, 2011.
[18] Uptrends.com. (2011). DNS Domain Name System.
http://www.uptrends.com/en/support/dns, November 17, 2011.
[19] Vertica Systems, Inc. (2009, October). Managing Big Data with Hadoop and
Vertica.
http://www.vertica.com/wp-content/uploads/2011/01/ManagingBigDatawithHad
oopandVertica1.pdf, November 17, 2011.
38
LESSONS LEARNED FROM TEACHING APP INVENTOR*
PANEL DISCUSSION
Hal Abelson
Computer Science and Artificial
Intelligence Laboratory
Massachusetts Institute of Technology
Cambridge, MA 02139
hal@mit.edu
Ralph Morelli
Department of Computer Science
Trinity College
Hartford, CT 06106
ralph.morelli@trincoll.edu
Eni Mustafaraj and Franklyn Turbak
Computer Science Department
Wellesley College
Wellesley MA 02481
{emustafa, fturbak}@wellesley.edu
Chinma Uche
Greater Hartford Academy of Math
and Science
Hartford, CT 06106
cuche@crec.org
App Inventor is a visual programming environment developed at Google and now
freely available from MIT's Center for Mobile Learning that enables students with no
previous programming background to build apps for Android mobile devices. The
panelists will describe their experiences with using App Inventor in a variety of computer
science courses.
POSITION STATEMENTS
Hal Abelson: Personal computing emerged in the 80's as a "tinkerable" technology, that
people could adapt and control. In contrast, mobile computing is emerging as a collection
of consumer products built on closed platforms that provide few opportunities for
non-professionals to tinker. App Inventor is motivated by the vision that ordinary people
could experience mobile computing as creators, not just consumers. This goes beyond
issues of teaching programming or computational thinking, to fundamental ideas about
how a citizenry can be empowered in the age of information.
Ralph Morelli: The CS Principles project is an NSF-funded initiative by the College
Board to develop a new breadth-first, language-neutral AP Computer Science exam.
Trinity College, in collaboration with the Greater Hartford Academy of Mathematics and
___________________________________________
*
Copyright is held by the author/owner.
39
JCSC 27, 6 (June 2012)
Science, is piloting a CS Principles course that is based on App Inventor for Android.
This presentation will provide an overview of the CS Principles curriculum and several
examples of how the principles can be mapped to App Inventor projects and assignments.
It will also show how App Inventor has been use in the context of the Humanitarian Free
and Open Source Software Project.
Eni Mustafaraj: App Inventor lures students into a world of programming that they
might not otherwise enter. Once there, it changes the way they think about their mobile
devices. No longer are these just black boxes that present them with information others
want them to see, but ways to search for and share personally relevant information
wherever they are. This realization, in conjunction with the low barriers that App
Inventor has for accessing web services, leads students to imagine and develop apps that
fill the needs of their local communities better than generic applications like Google and
Yelp. This process also enables students to think differently about issues the quality,
trustworthiness, and privacy of information.
Franklyn Turbak: The key benefits of App Inventor have very little to do with block
programming and a lot to do with simple APIs for interesting components with
compelling behaviors, such as GUIs, persistent storage, and web services. This suggests
that many of these benefits can be realized by adapting these APIs to other programming
languages and environments used in the CS curriculum. The project-centered curriculum
encouraged by App Inventor provides an excellent learning experience for students, but
requires tremendous resources, not only in terms of equipment but also in terms of teacher
time to guide, support, and evaluate students.
Chinma Uche: In the era of standardized testing, some K-12 schools are eliminating
Computer Science from the curriculum. However, we see that knowledge of computer
science brings many great benefits. We have found that App Inventor is useful in
engaging the school community on the importance of Computer Science in the K-12
classroom, and helps its users acquire numerous skills. App Inventor not only teaches
skills that are necessary to thrive in the 21st century, but also enables the production of
useful computational artifacts.
ABOUT THE PANELISTS
Hal Abelson is the Class of 1922 Professor of Computer Science and Engineering
at MIT and co-director of the MIT Center for Mobile Learning. He is the winner of the
2012 SIGCSE Award for Outstanding Contribution to Computer Science Education for
his work on the pedagogy and teaching of introductory computer science with Logo,
Scheme, and App Inventor. While a visiting faculty member at Google, he was one of the
founders of App Inventor for Android.
Ralph Morelli is Professor of Computer Science at Trinity College in Hartford, CT,
where he teaches a CS Principles course based on App Inventor. He is also co-PI of the
40
CCSC: Northeastern Conference
Humanitarian Free and Open Source Software Project, in which App Inventor has been
used to implement projects.
Eni Mustafaraj is a Norma Wilentz Hess Fellow (Visiting Assistant Professor) in the
Computer Science Department at Wellesley College, a liberal arts college for women. She
has taught App Inventor in three courses at the CS0 and CS2 level and is currently active
in supporting the transition of App Inventor from Google Labs to MIT's new Center for
Mobile Learning.
Franklyn Turbak is an Associate Professor of Computer Science at Wellesley
College. In Fall 2011, he taught a new CS0 course based on App Inventor entitled
Inventing Mobile Apps. His current research focuses on improving block programming
languages like App Inventor.
Chinma Uche is a high school Math and Computer Science teacher at the Greater
Hartford Academy of Math and Science, as well as the president of the Connecticut
chapter of Computer Science Teachers Association (CTCSTA). She is currently teaching
a CS Principles course based on App Inventor.
41
VIDEO VS. TEXT FOR LAB INSTRUCTION AND CONCEPT
LEARNING*
Eric Breimer, Jami Cotler and Robert Yoder
Computer Science Department
Siena College
Loudonville, NY 12211
518 786-5084
{ebreimer, jcotler, ryoder}@siena.edu
ABSTRACT
Given the popularity of YouTube and other video dissemination websites, it
is reasonable to assume that the digital natives of today might prefer
video-based instruction, especially for a computer lab activity in an
Information Systems course. Consider the specificity of a video that shows
students exactly what to click versus the potential ambiguity of text
instructions. At first look, video appears to offer a significantly superior
instruction format compared to text, especially for the digital native generation.
However, after two years of experimenting with video instructions, we no
longer make this assumption. We present an experiment that examines the
differences between online video and online text instructions with respect to
concept learning, task completion time, retention, and student impression. Our
results indicate that video and text perform similarly, which is surprising since
we are investigating a type of task and an audience that appear, on the surface,
to be well-suited for video instructions. Our experiments are supported by an
innovative web-based lab delivery system that provides a framework for
evaluating different forms of instruction and user interface designs by
collecting students' responses, impressions of the experience, and timing data.
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
42
CCSC: Northeastern Conference
BACKGROUND
Our computer science department's mission focuses on teaching concepts to
undergraduate students by using hands-on computer-based activities. In our largest
enrolled course, Management Information Systems (MIS), students meet for two hours
a week in a computer lab, work in pairs, and complete structured activities using
spreadsheets, databases, geographic information systems and other business applications.
We design activities where students solve problems that reinforce conceptual topics
presented in two weekly hours of lecture. The topics of interest range from general
concepts such as the difference between data and information, to very specific topics such
as Market Basket Analysis as a form of data mining.
To save paper, our lab instructions consisted of a single Microsoft Word document
that students download from the web and view on a dual-monitor PC. They are shown
how to manage two monitors to display the document and the business application being
used. The instructions include ordered step-by-step procedures with illustrative
screen-captures as well as paragraph-formatted descriptions and explanations that frame
the case study and overall problem.
In administering our MIS labs for the past six years, many instructors have noted that
students struggle to follow written lab instructions displayed on the monitors. Students
will sometimes skip or misinterpret steps, resulting in errors that require students to redo
earlier tasks. Instructors can feel overwhelmed when many students require individual
help to clarify instructions or to correct errors. While trying to navigate through
instructions, students often focus on the mechanical (skill-based) details of completing
tasks and neglect the larger context of the problem being solved or the concept being
illustrated.
RESEARCH QUESTIONS
Compared to the students we were teaching a decade ago, our current students have
extraordinary familiarity with short-duration instructional video. A Google search for a
term such as “how do I” often ends with a video tutorial on YouTube. Given students'
exposure to video and our observation of their struggles to follow written instructions, we
pondered whether video-based lab instructions would be more effective than text-based
instructions.
The focus of our lab activities is not skill acquisition, which has been studied by
[1,3,5,9,8,10,12,13], as cited by [7], but to reinforce concepts learned in lecture. We do
not assess whether students can perform a skill, such as writing a spreadsheet formula
with correct syntax, but rather, we assess students' understanding of how the activity
solves a larger problem and how it is connected to previously studied concepts. There is
a general deficit of recent empirical research [4,6,7,15] in the efficacy of video-based
instruction for the following measures that are very important to us as educators:
Concept Learning: Given video instructions instead of text, can students more
accurately answer questions about the activities they complete? Video instructions have
the potential to make task completion easier by showing students exactly how to perform
43
JCSC 27, 6 (June 2012)
a task, allowing them to focus on the lab concepts, i.e., “what they are doing” rather than
focus on “how exactly to do it.”
Completion Time: Will students complete the video instructions faster? Screen
capture videos that show students exactly where to click have the potential to speed up
completion times due to fewer misinterpretations and errors.
Retention: Will students better remember a lab activity if the instructions are
video-based? Video allows students to simply mimic the tasks shown, which may result
in a tendency to forget important details.
Impression: Will video instructions improve students' opinions of the experience
and their impressions of the underlying activity?
To answer these questions and put our own assumptions to the test, we conducted
an experiment to address questions that we could not answer in our survey of related work
[4,6,7,12,14,15].
EXPERIMENTAL DESIGN
For this experiment, we selected our sixth laboratory activity titled “Wagemart,” that
uses Microsoft Access as a decision support tool to help a fictional company reduce labor
costs. The activity reinforces the role of databases in transforming raw data into
information tailored for strategic decision-making.
We converted the Wagemart lab instruction from a Word document to an interactive
web page (see http://mis.sienacs.com/wagemart.php) where students directly answer 50
embedded multiple-choice questions. Twenty six questions (questions 1, 3-6, 9, 11, 14-15,
21, 24-29, 31, 33-41) are conceptual. They require students to reflect on the task's purpose
and how it relates to the broader problem. For example, question 28 asks, “What does the
query as a whole accomplish?” The remaining questions are task checks to ensure
students perform the steps correctly. For example, question 2 asks, “How many hourly
employees are in the table?”
We used a single HTML document where page control, question embedding, and
interactive feedback are controlled using JavaScript. Our web-based format uses varying
page lengths such that each page corresponds with a logical segment. Since students must
scroll vertically to the bottom of longer pages, we use a horizontal scrolling effect to
move from page to page. Upon answering questions, feedback is inserted into the question
placeholder using a fade-in animation effect. Data is transmitted to a server
asynchronously using the AJAX framework allowing the client-end system to track
responses to questions and page views to the millisecond without needing to wait for the
server to respond.
The text version consists of 4400 words and 26 illustrative screenshots. The
video-based version (http://mis.sienacs.com/wagemart_video.php) replaces approximately
1600 words and 20 images with roughly 35 minutes of instructional video. To better
understand how the lab versions are different and to see the videos, refer to the hyperlinks
above to view both versions side by side. In our preliminary experiment [2], we
administered the labs to students working in pairs due to the limitation of our instructional
44
CCSC: Northeastern Conference
lab space. Because we were concerned about the dynamics of working with partners and
variability across instructors, we needed to conduct a more refined experiment.
In this latest experiment, we instructed students to work on their own without help
from peers, tutors, or instructors. We asked students to set aside two hours of
uninterrupted time and complete the lab in our open computer lab, which is meant for
work outside of supervised lab time. While this unsupervised environment has variables,
we felt that we were not introducing them in a systematic manner. We are making a key
assumption, which is necessary given the size limitations of our supervised computer labs:
the individual environment will be similar on average for both groups of students, where
the only significant difference is whether the lab instructions contain video or not.
The lab activity included 50 embedded multiple-choice questions and seven
post-activity impression questions. Six weeks after completing the lab, students were
asked five questions in their final exam that required them to recall details of the activity
and how it related to course concepts. Four students "abandoned" the lab after answering
5 or fewer questions; their results are not included below. The text-based lab was
completed by 51 students and the video-based version was completed by 45. All the
participants who completed the lab also completed the impression survey and answered
the final exam retention questions.
RESULTS
Concept Learning: The video group correctly answered more questions overall and
did noticeably, but not significantly better on "task check" type questions, but there was
very little difference between the groups for conceptual questions (see Table 1)
Question Type
Text N=51
Mean (STD)
Video N=45
Mean (STD)
t-test
All (out of 50)
40.5 (9.1)
43.1 (7.0)
0.160
Task Check (out of 24)
18.0 (4.7)
19.7 (3.3)
0.062
Conceptual (out of 26)
22.5 (5.0)
23.3 (4.0)
0.395
Table 1: Number of lab questions answered correctly.
Completion Time: Table 2 shows task completion times measured by a starting
question (Sq) that occurs before the task and an ending question (Eq) used to verify task
completion. We show both a t-test and a Mann-Whitney U test because we were not
convinced of an underlying normal distribution in the data. Task 1 was completed
significantly faster by the video group and tasks 2 and 4 were completed significantly
faster by the text group. The differences between tasks 3 and 5 were not significant. The
task 6 instructions were identical for the video and text group and are shown to
demonstrate the consistency among the two groups. We excluded completion time values
that were over 3600 seconds and less than zero. Some students answered questions out
of order leading to negative completion times and other students stopped and resumed
with over an hour of inactivity.
45
JCSC 27, 6 (June 2012)
Task
Text Mean
Video Mean
Video
Duration
t-test
u-test
(Sq-Eq)
(STD) N
(STD) N
1. (9-10)
260.6
(122.5) 40
189.0
(109.3) 29
141
0.014
0.006
2. (17-18)
171.9
(117.5) 43
270.0
(164.1) 30
88
0.003
0.001
3. (21-22)
1220.7
(601.5) 36
1464.7
(679.3) 30
597
0.126
0.189
4. (24-25)
252.7
(164.5) 38
523.5
(131.4) 29
325
0.000
0.000
5. (29-30)
181.9
(120.2) 33
198.7
(110.8) 24
115
0.592
0.213
6. (30-31)
400.0
(283.5) 35
391.3
(177.3) 33
NA
0.881
0.559
Table 2: Task completion time in seconds.
Retention: Students' scores (see Table 3) on the retention test questions (see
http//mis.sienacs.com/retention) were not statistically distinguishable.
Text Mean (STD)
VideoMean (STD)
t-test
73.3 (15.7)
75.3 (15.4)
0.563
Table 3: Retention test scores (out of 100).
Student Impression: According to our post-activity survey (see
http://mis.sienacs.com/impression), students perceived the video-based instructions to be
significantly longer (Q1). While not significant, students rated the video-based
instructions to be slightly easier to follow (Q4) and more helpful in understanding course
material (Q5). For both video and text, students indicated roughly the same level of
feedback (Q3) and enjoyment (Q7).
DISCUSSION & FUTURE WORK
Video instruction did not measurably improve conceptual learning as we had hoped
(see Table 1), but it did not negatively impact longer-term retention of details (see Table
3). We were surprised that video instruction did not lead to more improvements,
especially with respect to completion time, but our experiment and observations reveal
some of the reasons.
Students did not mimic the tasks in the video. In tasks 2 and 3 (see Table 2), the
video group's average completion time was nearly twice the duration of the text group and
also nearly twice the duration of the actual instructional video. Since the videos show
46
CCSC: Northeastern Conference
students exactly how to complete each task, the length of completion confirms our
observations [2] that students do not perform the tasks in synch with the video. Students
tend to view a segment of the video, attempt part of the task, and refer back to the video
for clarification, which is similar to how students reference text instructions. With video
instructions, referring back to the instructions for clarification requires pausing and
rewinding, which slows student progress. Also, the length of the video establishes a pace
and a minimum completion time that is not imposed by text instructions.
Our students are still able to interpret and reference our text instructions faster than
our videos. Video with excessive narration or poor pacing (too fast or too slow) can
greatly slow student completion time compared to text instructions. These observations
provide a plausible explanation why video was perceived as taking longer and in fact took
longer on average for the majority of the tasks (see Table 2). Our experiment is by no
means conclusive: there may be superior ways to present video instructions. Our results
simply indicate that replacing web-deployed text with video is not a clear-cut solution for
improving our students' laboratory experiences. But, in preparing this experiment we have
shown the potential of a web-based lab delivery system to improve evaluation of different
forms of instruction by collecting more feedback and more accurate measurements.
In the future, we plan to experiment with video timeline markers with meaningful
labels to help students move back to key parts of the video with more efficiency. We also
plan to add feedback buttons (“like,” “dislike,” “learned a lot,” “learned a little”)
throughout our labs to capture students' impressions at the moment they complete tasks.
Giving students the most effective style of instruction is particularly important since many
computer science labs require students to complete very complex computer-based tasks.
What we learned is that embedding video on a web page is not a simple task; there is still
much work to do in developing and deploying video to leverage its maximum
effectiveness as a medium for instruction.
REFERENCES
[1] Ayres, K.A., et al., Computer-based instruction for purchasing skills. Education
and Training in Developmental Disabilities, 253-263, 2006.
[2] Breimer, E., Cotler, J. and Yoder, R., A study of video-based versus text-based
labs for a management information systems course. ITiCSE 2011, June 2011.
[3] Dalton, D.W., How effective is interactive video in improving performance and
attitude? Educational Technology, 27-29, 1986.
[4] Herron, C., et al., A comparison study of the effects of video-based verses
text-based instruction in the foreign language classroom. The French Review,
775-795 1995.
[5] Huebner, C.E. and Meltzoff, A.N., Intervention to change parent child reading
style: A comparison of instructional methods. Journal of Applied Developmental
Psychology: An International Lifespan Journal, 296-313, 2005.
47
JCSC 27, 6 (June 2012)
[6] Khan, M.L., Richards, K. and Wu, M.L., Understanding the effectiveness of
video-based instruction versus text-based instruction. Proceedings of
ED-MEDIA'2010 3638-3646, 2010.
[7] Luyben, P. and Warden, K., Comparative effects of video-plus-text verses
text-only instructional formats on acquisition and generalization of concept
learning to real life situations. J. Educational Technology Systems, Vol. 37(2)
159-174, 2008-2009.
[8] Mechling, L., The effect of instructor-created video programs to teach students
with disabilities: a literature review. J. of Special Education Technology, 25-36,
2005.
[9] Mechling, L.C., Ortega, B. and Hurndon, F., Computer-based video instruction to
teach young adults with moderate intellectual disabilities to perform multiple
step, job tasks in a generalized setting. Education and Training in Developmental
Disabilities, 24-37, 2007.
[10] Mechling, L.C., Pridgen, L. S. and Cronin, B.A., Computer-based video
instruction to teach students with intellectual disabilities to verbally respond to
questions to make purchases in fast food resturants. Education and Training in
Developmental Disabilities, 47-59, 2005.
[11] Moore, K., The Pew Research Center's Internet & American Life Project.
Washington, D.C.: Pew Research, April 26 - May 22, 2011.
[12] Schwan, S and Riempp, R., The cognitive benefits of interactive video: learning
to tie nautical knots. Learning and Instruction, 293-305, 2004.
[13] Simpson, A., Langone, J. and Ayres, K.M., Embedded video and computer based
instruction to improve social skills for children with autism. Education and
Training in Developmental Disabilities, 240-252, 2004.
[14] Thomerson, J.D., Computer-assisted instruction vs. traditional instruction in an
advanced-level computer course. Issues in Information Systems, 114-118, 2006.
[15] Zhang, Dongsong, et al., Instructional video in e-learning: Assessing the impact
of interactive video on learning effectiveness. Information and Management,
15-27 2006.
48
A VISUAL TASK MANAGER APPLICATION FOR INDIVIDUALS
WITH AUTISM*
Heather Duncan and Joo Tan
Department of Computer Science
Kutztown University of Pennsylvania
Kutztown, PA 19530
Phone: 610-683-4413, Fax: 484-646-4129
hdunc901@live.kutztown.edu & tan@kutztown.edu
ABSTRACT
In recent years, use of mobile computing has expanded rapidly, both in terms
of audience and function. Men, women, and children of all ages, with a huge
variety of interests and needs, all use and often depend on the mobile devices
they carry. Ordinary people use mobile devices for different purposes ranging
from leisure to organization to teaching and learning. Special needs groups
have also found many ways to use mobile devices to enhance their abilities and
enrich their lives. One such group is the autistic community. This paper
describes a project idea to design and implement a mobile web application that
would allow adults with autism to complete their work with minimal
supervision.
INTRODUCTION
For decades, the autistic community has relied on bulky text-to-speech devices to
help them communicate and learn. Many of these devices have limited portability and are
quite expensive – from $5000 to $10,000. Recently, software applications such as
Proloquo2go provide comparable features to individuals with autism spectrum disorders
(ASD) while at the same time offering portability and affordability. While many methods
for teaching autistic children have been adapted to mobile software format, there is a
shortage of software intended specifically for adults who otherwise would be capable of
being employed, or even become exemplary workers when given the chance. The authors
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
49
JCSC 27, 6 (June 2012)
have identified a need to design and implement an application to aid working adults with
autism so that they may successfully complete their work with minimal direct supervision.
Background
Autistic [2,3] people are generally visual learners, and may have difficulty taking
verbal instruction. This is in part because they have problems making generalizations or
making abstract connections. In addition, autistic people can have difficulty filtering
extraneous sensory information and sometimes have problems with fine-motor control.
Mobile technology, in the form of smartphones like the iPhone and the Android, and
tablets like the iPad, utilize many forms of technology that can greatly enhance the lives
of people with autism. Features like geolocation and mobile broadband access, as well as
the minimal size and weight of the devices themselves, enable easy portability and widen
the range of places where access to technology is possible. Touch screens on mobile
devices can make them more accessible for people with fine-motor control issues than
their non-mobile counterparts, which often require the use of a mouse and/or cursor. The
inclusion of a camera within the mobile device can aid in personalization, something
which is important for autistic individual that have difficulty generalizing situations
across multiple locations.
In many ways the most important feature is the creation and use of applications on
the mobile devices. The rise of user content creation for technology, especially in terms
of mobile apps, greatly increases the range of possible uses of technology. As normal
users have a chance to give their input into what is needed, it allows for the creation of
new and specialized applications targeted at specific groups. Furthermore, many
applications allow for user customization, thus offering greater ability for personalization.
MOBILE TECHNOLOGY
For decades, the autistic community has relied on bulky text-to-speech devices to
help them communicate and learn. Many of these devices have limited portability and are
quite expensive – from $5000 to $10,000. Recently, software applications such as
Proloquo2go provide comparable features to individuals with autism spectrum disorders
(ASD) while at the same time offering portability and affordability. While many methods
for teaching autistic children have been adapted to mobile software format, there is a
shortage of software intended specifically for adults who otherwise would be capable of
being employed, or even become exemplary workers when given the chance. The authors
have identified a need to design and implement an application to aid working adults with
autism so that they may successfully complete their work with minimal direct supervision.
Background
Autistic [2,3] people are generally visual learners, and may have difficulty taking
verbal instruction. This is in part because they have problems making generalizations or
making abstract connections. In addition, autistic people can have difficulty filtering
extraneous sensory information and sometimes have problems with fine-motor control.
50
CCSC: Northeastern Conference
Mobile technology, in the form of smartphones like the iPhone and the Android, and
tablets like the iPad, utilize many forms of technology that can greatly enhance the lives
of people with autism. Features like geolocation and mobile broadband access, as well as
the minimal size and weight of the devices themselves, enable easy portability and widen
the range of places where access to technology is possible. Touch screens on mobile
devices can make them more accessible for people with fine-motor control issues than
their non-mobile counterparts, which often require the use of a mouse and/or cursor. The
inclusion of a camera within the mobile device can aid in personalization, something
which is important for autistic individual that have difficulty generalizing situations
across multiple locations.
In many ways the most important feature is the creation and use of applications on
the mobile devices. The rise of user content creation for technology, especially in terms
of mobile apps, greatly increases the range of possible uses of technology. As normal
users have a chance to give their input into what is needed, it allows for the creation of
new and specialized applications targeted at specific groups. Furthermore, many
applications allow for user customization, thus offering greater ability for personalization.
MOBILE TECHNOLOGY
The autistic community has jumped at the opportunity to develop apps specialized
for the specific needs of people with the disorder. Many involved transferring the
techniques already used in teaching autistic children into a mobile format. In many cases,
this has not only made them more portable, but also increased the effectiveness of the
techniques. Other apps have been developed to aid autistic people in other areas that had
not yet been truly addressed successfully, in areas such as safety, music/sensory therapy,
and visual schedules.
Existing Apps
To aid autistic individuals, a number of applications have been developed for mobile
devices. Mobile technology cuts down on the costs of bulky devices that often lacked
portability. A number of methods have been developed for teaching autistic children
communication, language, social skills [8], and academics, but these techniques still have
some problems that have not yet been dealt with.
Recently, mobile devices like the iPad have been able to offer solutions to these
problems. Apps such as Proloquo2Go [13] and the Grace Picture Exchange [9] have been
developed to perform the same functions as PECS [14], the Picture Exchange
Communication System, and the original text-to-speech devices. Proloquo2Go converts
about 8000 symbols and text into speech, which it then reads aloud on an iPad's speakers.
The app is user friendly and easy to customize, making it invaluable for autistic children
with difficulties in generalizing from situation to situation. The Grace Picture Exchange
app performs a similar function for transferring the PECS system into a mobile tech
format. Rather than carrying binders full of laminated photo cards, all of the necessary
images are contained within the application, greatly easing the portability concerns.
Proloquo2Go costs only $190 and Grace Picture Exchange only $43. Even adding the
51
JCSC 27, 6 (June 2012)
price of an iPad, iPhone, or iPod Touch, using these apps in place of the original methods
is much more affordable.
Since autistic people often have problems forming grammatically correct sentences,
language development apps for mobile platforms such as Sentence Builder [17], Question
Builder [15], and Conversation Builder [5] work on teaching the same sentence structure
lessons that are normally included by the human speech therapist. Other apps such as
Answers: Yes/No [1] and My Choice Board [12] work on helping to teach choice making
skills, something else that often causes difficulty for autistic children. These apps use
visual and intuitive interfaces which lend themselves well to an autistic individual's visual
learning style, thus improving the effectiveness of the lesson.
Apps made to teach other forms of academics take advantage of visual interfaces to
make effective use of discrete trial training [7]. Autistic people require structure and
systematic procedures in order to learn. This forms the basis of discrete trial training, but
is difficult for a human teacher to replicate. Humans do not naturally use the same words
and tone of voice every time they repeat an instruction or a response. Computers, on the
other hand, do. By transferring academic teaching to a computer instructor, autistic people
can receive the structure and repetitiveness they need to learn.
Apps for teaching social skills, another thing autistic people have great difficulty
learning, have also been created. One app called Stories2Learn [18] uses a visual and
customizable interface to make social stories more accessible to autistic learners which
can be enhanced using an image-based story on the device.
The possibilities for social learning through mobile devices encompass far more than
just apps. Social networks like Facebook and Twitter, accessible through the mobile
device, provide the perfect training opportunity for autistic people. The training an autistic
person needs to learn correct sentence structure, as well as the tendency to require
structure and rules in their activities, places them in an environment where they write and
speak in a stilted manner. Short, simple tweets and Facebook posts give them the
opportunity to practice more natural language.
There is also the social benefit that results from the ‘coolness factor' of owning a
mobile device. "Because of their widespread use, people with ADS who use these tools
do not look different from their peers and almost automatically become ‘cool' " [16].
Autistic individuals who are nonverbal or have limited speech might be treated differently
or regarded with disdain if they carry a bulky text-to-speech device or a binder full of
picture exchange cards. By bringing a common and popular device like an iPad or a
smartphone instead, s/he can fill his communication needs without sacrificing, or possibly
even improving, his social standing among his peers.
Finally, visual schedules [4,6,19], or schedules that use pictures and images, can
convey the tasks to be performed. For autistic people who require structure and order in
their lives, and who absorb information visually better, these schedules are perfect. They
are also far more easily created using customized mobile technology.
52
CCSC: Northeastern Conference
PROBLEM: FEW APPS FOR ADULTS
Unfortunately, while there are many mobile applications made for teaching and
aiding children with autism, there is a shortage of software intended specifically for
adults. A communication app like Proloquo2Go is usable for individuals of all ages, and
certain lower-functioning autistic adults still require teaching software even after school
age. But many adults with autism would be capable of being employed, and can be
exemplary workers. They almost always require a great deal of direct supervision,
however, either by a job coach or the employer. Furthermore, it is usually quite difficult
to find or receive funding for a job coach, and most employers are not happy about the
prospect of providing such direction themselves.
PROPOSED WORK
To this end, the authors plan to develop an application to make up for these
problems. This application will be targeted towards adults with autism and will help to
lessen the amount of supervision necessary for the adult to be employed. This will be
done by creating an application that can, in many ways, act as the supervisor. The creation
of an application that meets the design goals of visual, intuitive, and mobile interaction
makes it ideal for usage by autistic individuals. Since mobile devices already cater to a
large portion of the population, the proposed design leverages such devices in support of
autistic adults.
Visual Task Manager for Adults with Autism
The authors plan to develop the web application using HTML5 [10,11] and test it
on the iPad2. At its core, the application will be a visual schedule with easy to understand
instructions. One important major feature required in the application will be the ability
to split each task into small ‘inner steps’. Once a step is done, it can be ‘checked’ off to
signify its completion. This is extremely useful to an autistic adult who tends to take
things literally and does not generalize well. Understandably, people with these
difficulties will not always recognize the unspoken portions of a task they are instructed
to perform. A simple example would be if an employee working in a restaurant is told
to clear the dishes from the tables. Without specifically being told to wait until the
customers were done before starting, they might clear the plates away before the
customers were finished eating. The intended application will display those unspoken
steps, giving the employee all the information he needs to perform the task correctly.
Figure 1 shows the initial step for an example task of making a pie crust. At this
point (step 1), there are options to view a short video, indicated by the video image, or to
view smaller inner steps, as indicated by the question mark image. If the autistic
individual needs to see more details on how to accomplish this step, he can choose the
question mark option (see figure 1). The result of choosing this option is shown in figure
2. However, if the individual is confident of performing this step without looking at the
inner steps, perhaps having done this many times before, he can simply select the right
arrow. This will take him to the next step of the task, which would be step 2 (not shown
in our example).
53
JCSC 27, 6 (June 2012)
Sometimes, a particular step may be quite ‘big’ with sizeable instructions. In our
example, this big step (step 3 shown in figure 3) can be broken down into
sub-instructions. Note that there is only one checkbox to signify the completion of this
‘big’ step. Additionally, steps that have already been completed are listed at the bottom
of the screen; in this case, steps 1 and 2. At the final step of the overall task (see figure
4), all the completed steps are listed.
Another feature to include in the application will be a communication system that
allows for both image-based and text-to-speech communication. This will enable the user
to communicate his needs without the need to exit the application to use a different
54
CCSC: Northeastern Conference
communication app. It will also have the ability to include spoken or image-based
prompts for the autistic adult, something that often is left to the job coach or supervisor.
The application will also include a number of customization options, such as
allowing for different views on the schedule, like list view, grid view or table view;
making item sizes and colors adjustable to suit the needs of the individual using the app;
adding restrictions such as setting a clock timer; and the creation of a summary report.
Wireless Internet functionality will be included in the app for the purpose of loading
user created schedules and tasks without syncing to a computer. Editing functions such
as Cut, Copy, and Paste, as well as data entry, will also make entering the tasks directly
possible. Other functions such as the ability to create video or animation or the inclusion
of photo slideshows will enhance the ability of the schedule to accurately convey the inner
steps of a task to the autistic individual.
Features that are expected to be included in the future are the ability to set the level
of control while making changes or updates to the schedule, thereby allowing the app to
be used for both high and lower-functioning autistic adults; the ability for a supervisor or
job coach to create job-specific schedules or tasks that can be loaded into the app; the
allowance of more interactivity through enabled user data entry; and authentication and
authorization to check user credentials.
METHODOLOGY
This ongoing researchwill be divided into two major phases. Phase one will focus
on functionality that are related to the end user (the autistic individual) interface. A
preliminary phase saw us collecting and analyzing requirements for the proposed web
application. Next, we will generate use cases and investigate possible scenarios for usage.
After details of the use cases and scenarios are elaborated, development of the user
interface and prototyping of the end user functionality will begin. Upon completion of
actual implementation, we will conduct usage testing with one or more test subjects. After
the test results are obtained, they will be assessed, at which time the design and
implementation of device functions will be adjusted accordingly based on results of the
usage tests. Actual design and implementation of phase one's functionality will begin in
January of 2012 and an actual working prototype application is expected by the end of
April 2012. Phase two (future) of this research will involve supervisor functions such as
creating/updating the tasks, including storage capability, and adding security features.
The intended web application will be implemented using HTML5 which is
developed under the Open Web Standard. This "Web-centricity" will theoretically allow
an application to be accessed from any device through a browser, independent of devices
or location. HTML5 is a set of standards and specifications that is proposed by the W3C
that offers us the flexibility of building on top of existing knowledge of HTML and
JavaScript. The latest browsers (and future versions of browsers will) have support for
HTML5 and many more are expected in the near future.
55
JCSC 27, 6 (June 2012)
CONCLUSION
The development of mobile technology has opened new doors of opportunity for
many people. Special needs groups such as the autistic community have taken advantage
of this technology to create a number of specialized applications that can help improve
and enhance the lives of people suffering from the disorder. These apps have certainly
proved successful and valuable in helping them live full and healthier lives. However,
having analyzed the apps that are currently available, the authors determined that there is
still a need for applications targeted towards autistic adults seeking employment. To this
end, a plan has been made to address this need by creating a new web application that will
be tested using the iPad2. This would allow adults with the disorder to work with minimal
direct supervision from their employers. Actual design and development of the application
will begin in January 2012, and the authors have high hopes that the proposed application
will prove helpful in improving the ability of autistic adults to obtain productive
employment.
REFERENCES
[1] Answers Yes/No HD,
http://itunes.apple.com/us/app/answers-yesno-hd/id393762442?mt=8,
SimplifiedTouch, retrieved November 2011.
[2] Autism Spectrum Disorder (ASD) – Sign and Symptoms,
http://www.cdc.gov/ncbddd/autism/signs.html, Centers for Disease Control and
Prevention (CDC), retrieved November 2011
[3] Autism, http://www.ncbi.nlm.nih.gov/pubmedhealth/PMH0002494/, PubMed
Health, retrieved November 2011.
[4] Bryan, L.C., Gast, D.L., Teaching On-Task and On-Schedule Behaviors to High
Functioning Children with Autism via Picture Activity Schedules,
http://www.springerlink.com/content/v42l7755330766p2/, Journal of Autism
Developmental Disorder, 30 (6), 553-567, 2000, retrieved November 2011
[5] Conversation Builder, http://a4cwsn.com/2011/04/conversation-builder/, Apps
for Children with Special Needs, retrieved November 2011.
[6] Dettmer, S., Simpson, R., Myles, B.S., Ganz, J.B., The Use of Visual Supports to
Facilitate Transitions of Children with Autism,
https://depts.washington.edu/pdacent/Publications/Simpson/Simpson1.pdf, 2000,
retrieved November 2011.
[7] Evidence-Based Practice: Discrete Trial Training (DTT),
http://autismpdc.fpg.unc.edu/content/discrete-trialtraining-0, The National
Professional Development Center on Autism Spectrum Disorders, retrieved
November 2011.
[8] Gagnon, E., Social Stories, Social Scripts, and the Power Card Strategy,
http://www.education.com/reference/article/social-scripts-stories-asperger-ASD/,
retrieved November 2011.
56
CCSC: Northeastern Conference
[9] Grace App for Autism on iPhone, iPad, and iTouch, http://www.graceapp.com/,
retrieved November 2011. [10] HTML5 – W3C,
http://dev.w3.org/html5/spec/Overview.html, Editor's Draft, November 4, 2011.
[10] HTML5 – W3C, http://dev.w3.org/html5/spec/Overview.html, Editor’s Draft,
November 4, 201111] HTML5, http://en.wikipedia.org/wiki/HTML5, Wikipedia,
retrieved November 2011.
[12] My Choice Board,
http://goodkarmaapplications.com/Good_Karma_Applications/CB_About.html,
Good Karma Applications, retrieved November 2011.
[13] Proloquo2go, http://www.proloquo2go.com/, retrieved November 2011.
[14] Picture Exchange Communication System (PECS), http://www.pecsusa.com/,
Pyramid Educational Consultants, retrieved November 2011
[15] Question Builder, http://www.apps-school.com/Question-Builder.php, retrieved
November 2011.
[16] Sennot, S., Bowker, A., Autism, AAC, and Proloquo2Go,
http://scholar.googleusercontent.com/scholar?q=cache:CGizShf5X7sJ:scholar.go
ogle.com/&hl=en&as_sdt=0,39, retrieved November 2011.
[17] Sentence Builder,
http://itunes.apple.com/us/app/sentence-builder/id344378741?mt=8, Mobile
Education Tools, retrieved November 2011.
[18] Stories2Learn, http://www.stories2learn.com/about.php, Training Games
Network, retrieved November 2011.
[19] Visual Schedules for Autism,
http://www.lucasworks.org/visual-schedule-autism.html, Lucas Works, retrieved
November 2011.
57
ADVANCED STUDY CASES FOR NUMERICAL ANALYSIS*
FACULTY POSTER ABSTRACT
Vladimir V. Riabov
Department of Mathematics and Computer Science
Rivier College
Nashua, NH 03060-5086
603 897-8613
vriabov@rivier.edu
A course on Numerical Methods typically covers introductory topics in numerical
analysis for students of engineering, science, mathematics, and computer science who
have completed elementary calculus, linear algebra and matrix theory. The course is
usually limited to exploring basic algorithms for solving traditional simple problems in
sciences and engineering [1]. As a result, the students have become inadequately prepared
to construct and explore more sophisticated algorithms of modern technological
challenges. To reduce this gap, the author has offered a series of study cases, which
provide concrete examples of the ways numerical methods lead to solutions of some
scientific problems. The similar approach was promoted in [2].
Various problems of applied mathematics, thermophysics, and aerodynamics (e.g.,
stability of mechanical systems and flow boundary layers, fuel combustion, and heat
protection of space probes) come to solving differential equations with small coefficients
at the highest derivatives. This phenomenon leads to the formation of regions with small
linear dimensions where gradients of functions are large. The numerical analysis of such
problems by traditional box-schemes is restricted by non-uniform convergence or even
divergence of numerical solutions. In this study case, the numerical solutions of the model
singular ordinary differential equation have been evaluated for the linear boundary value
problem. The developed numerical method [3] was used for the analysis of gas flow
parameters in boundary and viscous shock layers under the conditions of blowing on the
body surface and nonequilibrium chemical reactions.
From a mathematical point of view, the increase of the flow rate of blowing gas or
chemical-reaction rates is equivalent to the existence of a small coefficient at the highest
derivative in the boundary-layer equations. A sublayer (of uncertain location) with large
gradients of functions is created. The gas flow in the boundary layer was studied using a
two-point exponential box-scheme and an effective regularization algorithm [3]. The
uniform second-order convergence was obtained for functions and derivatives in the full
___________________________________________
*
Copyright is held by the author/owner.
58
CCSC: Northeastern Conference
range of small parameters such as blowing factors and inverse chemical-reaction rates.
The approach could be applied to boundary layers with gas injection and combustion.
Many technological problems (e.g., calculations of transport coefficients and
chemical-reaction rates) require estimations of multi-fold integrals under the conditions
when classical Newton-Cotes formulas for numerical integration could not be applied. In
the second case, students studied the rotational relaxation of a gas of homonuclear
diatomic molecules. The realistic models of the intermolecular interaction [4] have been
used for calculating the redistribution of the rotational and translational energies upon
collision. To estimate the rotational relaxation time, the sixfold integrals were calculated
at 200 points over the range of temperatures from 200 K to 10,000 K, using the Monte
Carlo simulation technique, with 4000 tests at each point. The data for intermediate points
were determined by means of the interpolation technique using cubic splines of defect 1
with smoothing. The accuracy of the calculations was estimated as 1.5%. The
experimental data for molecular nitrogen correlates well with the numerical results.
The purpose of the third study case was to analyze heat transfer processes at the
catalytic materials of the shock-tube end after shock wave refraction in terms of the model
of the nonsteady-state nonequilibrium thermal boundary layer [5]. The major challenge
was to develop the algorithm that could correctly and uniformly calculate flow parameters
under all possible states (chemically "frozen", nonequilibrium, and equilibrium ones) right
behind the moving reflected shock wave. The types of governing differential equations
are significantly different in these three cases, and the algorithm should automatically
"adapt" to these changes across the flow.
The system of algebraic-differential equations [5] was solved at each point of the
flowfield behind the incident and reflected shock waves. A modified Newton's method
with optimal choice of iteration step [5] was used for numerical solution of the equations.
In the case of the initial pressure pl = 100 Pa, the flow behind the reflected wave is close
to a state of local thermodynamic equilibrium, while in the other case pl = 1 Pa, the flow
is significantly in nonequilibrium. The data were used as external boundary conditions for
the flow parameters in the thermal viscous layer under the considered conditions.
The special topics covered mathematical foundations of evolution of dynamic
systems that could be described in terms of attractors. The study cases of numerical
modeling of the attractors of chaotic dynamical systems [6] (turbulence, weather forecast,
and economic system development) also became a part of the course. They were
introduced through classical examples of bifurcations of systems modeling equilibrium
in chemical reactions (Rössler attractor) and atmospheric dynamics (Lorenz oscillator).
After brief in-class discussions of the study cases, each student continued working
on a selected case as a project, created computer codes, run them at various parameters,
compared the results with experimental data, and presented the findings to the classmates.
In the course evaluations, students stated that they became deeply engaged in the course
activities because they were examining the challenging problems.
REFERENCES
[1] Ascher, U. M., and Greif, C. A First Course in Numerical Methods. SIAM, 2011.
59
JCSC 27, 6 (June 2012)
[2] Dahlquist, G., and Bjrck, A. Numerical Methods in Scientific Computing. SIAM,
2008.
[3] Riabov, V. V. Applications of Exponential Box Schemes for Viscous Flows with
Combustion and Blowing. In Computational Fluid and Solid Mechanics, edited
by K. J. Bathe, Vol. 1, Elsevier, Boston, MA, pp. 1102-1105, 2003.
[4] Riabov, V. V. Gas Dynamic Equations, Transport Coefficients, and Effects in
Nonequilibrium Diatomic Gas Flows. In Journal of Thermophysics and Heat
Transfer, 14 (3), 404-411, 2000.
[5] Riabov, V. V. Numerical Simulation of Interactions between Dissociating Gases
and Catalytic Materials in Shock Tubes. In Shock Waves, edited by K.
Hannemann and F. Seiler, Vol. 2, Springer-Verlag, Berlin, Germany, 2009, pp.
1437-1442.
[6] Lorenz, E. N. The Essence of Chaos. CRC Press, 1995.
60
USING UNDERGRADUATE TEACHING ASSISTANTS IN
INTRODUCTORY COMPUTER COURSES*
FACULTY POSTER ABSTRACT
Ramona Santa Maria, Sarbani Banerjee
Computer Information Systems Department
State University of New York College at Buffalo
1300 Elmwood Avenue, Buffalo, NY 14222
(716) 878 3250(716) 878 4912
{santamrr, banerjs} @buffalostate.edu
Using undergraduate teaching assistant (UTA) as part of the teaching process has
created student success in computing courses. Many researchers [3, 7] have shown that
peer-led team learning (PLTL) has improved student engagement and retention of under
achiever students in introductory computer courses. Using PLTL has been successful in
reducing the dropout rates and increasing satisfaction among students [4]. Using
undergraduate students as part of the teaching classes has created an effective learning
environment for both the students in the classes and the undergraduate peer leaders
themselves [6]. Among the benefits of using UTA at a university are: reduced overall
cost, improved quality of instruction, formation of undergraduate community and
practical experience that the UTAs gain [5]. Another study [1] found that having UTAs
in a classroom helps student perceptions, create a relaxed environment, improve
effectiveness of class time and improve overall class quality. Students in courses using
peer instruction show a high level of satisfaction with UTAs and student perception is that
UTAs were instrumental in the learning process [2]. The purpose of this presentation is
to explore the literature related to undergraduate teaching assistants (UTA) in computer
courses.
Data would be collected from a diverse population of undergraduate students and
instructors of the Computer Information Systems (CIS) department at Buffalo State
College, an urban college in western New York State. Three sets of survey instruments
have been prepared to collect data from the UTAs who are 1) upperclassmen majoring in
CIS, 2) instructors who use UTAs in their classroom and 3) students who are enrolled in
classes assisted by UTAs. UTAs are used in the following three types of courses: 1)
service courses for teaching foundation and theory of computers and computer literacy 2)
___________________________________________
*
Copyright is held by the author/owner.
61
JCSC 27, 6 (June 2012)
C++ Programming I and II for the CIS majors and 3) Introduction to Programming for
pre-majors and non-majors.
This research will investigate the effects of UTA related to the students'
understanding of the fundamental computer concepts in service courses as well as of the
programming concepts in discipline major courses. Preliminary data has been collected
and analyzed from a pilot sample and the results will be presented.
REFERENCES
[1] Dickson P. E. "Using Undergraduate teaching Assistant in a Small College
Environment", SIGCSE '11, Dallas, Texas, 2011.
[2] Gill, T. G. & He Q. "Peer-to-Peer Instruction in Programming Course", Decision
Sciences Journal of Innovative Education, 4 (2) , pp. 315 - 322, 2006.
[3] Horwitz, S. & Rodger S. H. "Using Peer-Led Team Learning to Increase
Participation and Success of Under-represented Groups in Introductory Computer
Science", SIGCSE '09, Chattanooga, Tennessee, 2009.
[4] Huss-Lederman, S., Chinn, D., Skrenty J. "Serious Fun: Peer-Led Team Learning
in CS", SIGCSE '08, Portland, Oregon, 2008
[5] Reges S. "Using Undergraduates as Teaching Assistants at a State University",
SIGCSE '03, Reno, Nevada, 2003
[6] Roberts, E., Lilly, J., Rollins, B. "Using Undergraduates as Teaching Assistants
in Introductory Programming Courses: An Update in the Stanford Experience",
SIGCSE '95, Nashville, Tennessee, 1995.
[7] Stewart-Gardiner C. "Improving the Student and Retention of Under-achiever
Student in Introductory Computer Science", The Journal of Computing Sciences
in Colleges, 26 (6), pp. 16-22, 2011.
62
INTEGRATING COMPUTER ETHICS COMPONENTS INTO
THE COMPUTER SCIENCE CURRICULUM*
FACULTY POSTER ABSTRACT
Yana Kortsarts
Adam Fischbach
Computer Science Department
Widener University, Chester, PA
e-mail: ykortsarts@mail.widener.edu
e-mail: jafischbach@mail.widener.edu
In addition to understanding the technical aspects of computer science, students
today are expected to understand the role ethics plays in the computing field, how to
conduct themselves in an ethical manner and how to apply ethical decision-making
techniques. One method for including ethics in a computer science curriculum is to
require a course on computing ethics. At Widener, we are developing such a course in
conjunction with our philosophy faculty. The resulting course will be co-taught by a
philosopher and a computer scientist. While this is a significant step, we can further
emphasize the importance of ethics in computing by incorporating ethics components into
our existing courses.
Rather than concentrating ethics material into the junior and senior years, we have
endeavored to broaden students' exposure to ethics throughout the curriculum. Ethics has
been included in courses from the freshman level through to the senior level, including
both core and elective courses. In such courses, only one week is typically devoted to
ethics, so there is still time to cover all of the necessary technical material. By the time
students take the ethics in computing course during their senior year, they will already
have been exposed to ethical issues in other courses. It has been our experience that
students tend not to take non-technical topics seriously. Our hope is that, by integrating
ethics throughout the curriculum in technical courses, students will gain a greater
appreciation for the relevance of ethics in computer science.
The poster focuses on Introduction to Computer Science I and II, an upper-level
Operating Systems course and three elective courses: Bioinformatics, Practical
Cryptology and Computer Forensics. Goals and objectives, as well as detailed course
curriculum related to computer ethics are presented. The poster also includes lesson
plans, ideas for group work, assessment instruments and assessment results.
___________________________________________
*
Copyright is held by the author/owner.
63
JCSC 27, 6 (June 2012)
In the introductory courses students first learn the ACM code of ethics [1] and read
related articles from the ACM Digital Library [2, 3]. The hands-on part of the ethical
component focuses on the design and analysis of case studies drawn from real-world
scenarios. Legal issues are discussed in the Computer Forensics course as well.
In the upper level elective courses the focus is on ethical issues related to the specific
discipline. In the Bioinformatics course we concentrate our attention on the new field of
applied ethics: computational genomics [4]. Students engage in discussion of
controversial issues related to privacy and confidentiality, information consent and
intellectual property. In the Practical Cryptology course we primarily discuss ethical
issues related to the security and social issues and responsibility specifically related to
computer security.
In the senior-level operating systems course, we spend a week, mid-semester,
discussing recent news events concerning the business of operating systems. After an
initial lecture and discussion, students are asked to read articles related to the events.
They are then given an assignment in which they are asked to respond to essay-style
questions. It is important for the instructor to remain as neutral as possible during the
discussions so that students feel free to provide honest, thoughtful responses to the
questions. Since these are current events, most students are already aware of them,
recognize their relevance to the field and are willing to engage in lively discussion.
We employ a variety of assessment tools to measure students' understanding of the
ethical material. In addition to answering essay-style questions as part of an assignment
or quiz, students may be asked to develop and discuss a scenario involving a particular
ethical issue. In many courses, students are required to give oral presentations. A form
of peer-assessment is also conducted where students devise questions about their own
presentations to measure how well the class understood the concepts delivered.
Students' response to the ethical material has been positive overall. Their
participation in class discussions have been lively and they seem genuinely engaged in the
material. They seem to enjoy the brief respite from technical concepts. However, this is
an ongoing project and, though we conduct assessment in individual courses, we have not
yet been able to conduct a program-level assessment. Students who have participated in
the ethical components in the introductory courses have not yet reached their senior year.
REFERENCES
[1] ACM Code of Ethics and Professional Conduct:
http://www.acm.org/about/code-of-ethics.
[2] Using the new ACM code of ethics in decision making, Ronald E. Anderson,
Deborah G. Johnson, Donald Gotterbarn, Judith Perrolle, Communications of the
ACM, Volume 36 Issue 2, Feb. 1993 .
[3] ACM Digital Library: http://dl.acm.org/.
[4] Ethics, computing, and genomics, edited by Herman T. Tavani, Jones & Bartlett
Learning, 2006.
64
EVALUATING PEER REVIEWS OF WRITING USING FAULT
INJECTION*
FACULTY POSTER ABSTRACT
Delbert Hart
Department of Computer Science
SUNY Plattsburgh
Plattsburgh, NY 12901
1-518-564-2775
hartdr@plattsburgh.edu
BACKGROUND
Advanced writing courses are required in many college majors, including computer
science. This paper describes an experimental tool and approach created to improve peer
reviews of writing. Students benefit from participating in peer reviews of each others'
writings. It has been found[1] that peer reviews were as good or better than reviews by
instructors on student achievement and attitudes. One aspect of peer reviews that is
important is the amount of effort that students put into the peer review process. In [2]
students who provided more detailed comments improved their own writing more than
students that provided numeric only feedback. Intuitively, it seems reasonable that
students that put more effort into the peer review process will get more out of it. One way
to encourage students to fully participate in the peer review process is to provide accurate
and timely feedback on their reviews.
The approach summarized here is to use fault injection to create an objective
measure of peer review quality. This objective measure (of how well students catch
introduced faults) provides better feedback to students on their peer-reviews.
Student peer reviews are supported to various extents in existing learning
management systems such as Moodle and BlackBoard. Most of these systems attempt to
measure the quality of the reviews via ratings given by the instructor and/or the reviewees.
The disadvantage of using a ratings system approach is that it is subjective and often not
timely. A different approach to review quality is taken by the SWoRD environment[3].
SWoRD rates a reviewers' accuracy by comparing an individual reviewer's feedback to
the mean of the reviews for that paper. In order for this to be reliable though it requires
at least six reviewers per paper. This is not a good fit for our advanced writing course.
___________________________________________
*
Copyright is held by the author/owner.
65
JCSC 27, 6 (June 2012)
Our course is primarily a survey course and students are writing new essays on a weekly
basis. There is not sufficient time in the course for the amount of review work that the
SWoRD approach requires.
WRITING TOOL
The premise of this paper is that a simpler, more reliable way to gauge the quality
of peer reviews is to use fault injection. Fault injection is used in evaluating the quality
of software testing and can serve a similar purpose here. The idea is to intentionally
generate faults and then check to see if the testing (peer review) process catches those
faults. In the context of student writing the software modifies the essays written by the
students to create some known defects. The software then tracks if the peer reviews catch
these known defects. Since the students will not be able to distinguish the injected defects
from non-injected defects, measuring the detection rate of one should provide a
reasonable estimate of the detection rate of the other.
The requirements for the writing tool included that it be easily accessible by
students, provide a usable environment for writing short essays, support anonymous
peer-reviews, and provide the instructor the ability to evaluate both the original writings
and the peer reviews. Easy access was the biggest factor in deciding to implement the
software as a web application. Students are seemingly always connected to the web, and
web applications are relatively easy to support across a wide variety of platforms. The
user interface is written in Javascript, using jQuery and custom classes built for the tool.
The back-end is written in Perl using the Catalyst framework. The data is stored in a
PostgreSQL database. The instructor can configure the number of defects injected and
the number of reviewers for each essay.
After students write their essays the software makes a mutated copy of it. The
mutated essay contains a number of injected defects. These mutated essays are the ones
that are made available for peer review. In the peer reviews, students are asked to
evaluate the essay as a whole and specific paragraphs of the essay using a provided
writing rubric. Each type of defect that can be injected is associated with a set of
evaluation criteria in the rubric that it is expected to affect. The software then checks
the scores given to the different evaluation criteria to see if the injected defects were
detected.
Students do not see the mutated version of their essays. The software attempts to
filter out the feedback associated with the injected defects. This works relatively well for
defects injected at the paragraph level, but does not work well for injected defects that
affect the whole essay.
FUTURE WORK
I used this software to support an advanced writing course during the Fall 2011
semester. Anecdotally, it was been successfully at providing a writing and reviewing
environment for students. I plan on further developing this software and collecting more
information about the effectiveness of this approach in future offerings of the course.
66
CCSC: Northeastern Conference
Although the software is not ready for wide adoption yet, it is available via GitHub for
those interested in it. https://github.com/DelHart/Web-Writing-Review-Tool
REFERENCES
[1] K. Topping, "Peer assessment between students in colleges and universities,"
Review of Educational Research, vol. 68, no. 3, pp. pp. 249-276, 1998.
[2] R. Wooley, The Effects of Web-Based Peer Review on Student Writing. PhD
thesis, Kent State University,2007.
[3] K. Cho and C. D. Schunn, "Scaffolded writing and rewriting in the discipline: A
web-based reciprocal peer review system," Computers & Education, vol. 48, no.
3, pp. 409 - 426, 2007
67
DEVELOPING A PROJECT-BASED CURRICULUM FOR THE
DESIGN AND ANALYSIS OF ALGORITHMS FOR
INTRACTABLE PROBLEMS*
FACULTY POSTER ABSTRACT
Andrea F. Lobo and Ganesh R. Baliga
Department of Computer Science
Rowan University
Glassboro, NJ 08028
(856) 256-4500 x3815
lobo@rowan.edu and baliga@rowan.edu
In Computer Science, problems for which no fast algorithms are known are called
intractable. The class of NP-complete problems is an important collection of intractable
problems. The need to solve intractable problems arises in numerous practical settings.
However, the only algorithms that are known to solve these problems at the present time
require an exponential amount of time. In recent years, algorithm designers have focused
their attention on feasible techniques for solving these problems such as approximate
algorithms, probabilistic algorithms, and others. Approximate algorithms will compute
a sub-optimal solution that is guaranteed to be within a factor of the optimal solution.
Probabilistic algorithms may only guarantee that a solution will be found with a certain
probability. These algorithms can be used to develop software programs that solve some
instances of intractable problems. As computers have continued to become more powerful
and affordable, the computing power available in industry and research is increasingly
sufficient to run these solvers on useful, often large, instances of some intractable
problems.
We are developing a project-based curriculum for algorithm design and analysis
aimed at helping Computer Science students understand and tackle intractable problems.
This novel curriculum is a sequence of laboratory projects comprising increasingly
sophisticated solvers for a single intractable problem. The idea for this curriculum and its
initial implementation won the Best Paper Award at CCSCNE 2006. We anticipate
receiving a National Science Foundation (NSF) grant to develop, evaluate, disseminate
and support the broad adoption of this project-based curriculum to help all computer
science undergraduate students understand and apply classic algorithm design techniques
___________________________________________
*
Copyright is held by the author/owner.
68
CCSC: Northeastern Conference
for solving intractable problems. To facilitate broad adoption, the anticipated NSF award
funds the development of three sets of projects based on intractable problems from
different domains: Satisfiability, Traveling Salesperson and Sequence Alignment. This
project makes a significant contribution to computer science education by establishing the
effectiveness of project-based learning in the study of algorithm design techniques for
intractable problems. The project has the potential for national adoption, for a direct
impact on computer science educational practices, and for advancing knowledge in the
discipline.
Faculty members who teach courses in Design and Analysis of Algorithms or Data
Structures and Algorithms are welcomed to participate in the adoption of the
project-based curriculum. To encourage adoption, an extensive faculty guide is being
developed with slides, an annotated bibliography, suggested project sequences, project
handouts and solutions. We plan to disseminate these materials at CCSC and SIGCSE
conferences during the next eighteen months. The NSF grant that we anticipate would
provide funds for potential adopters to attend a SIGCSE 2013 workshop and learn more
about the project-based curriculum and the grant project. We plan to support an online
community of adopters, and provide adopters with the opportunity to publish and
co-present an experience paper at a national conference. This poster presentation is the
first dissemination activity of the project inviting the participation of faculty adopters
beyond the authors' institution.
69
STUDENT-PULL INSTEAD OF INSTRUCTOR-PUSH: IN
PREPARATION FOR A STUDENT LEARNING DASHBOARD*
FACULTY POSTER ABSTRACT
Mihaela Sabin
Department of Computing Technology
University of New Hampshire
Manchester, NH 03101
603 641 4144
mihaela.sabin@unh.edu
A typical model of blending in-class learning with technology-enabled student
experiences outside class makes use of a course management system (CMS)1, such as
Blackboard. In this model, all the course management work is exclusively performed by
the course instructor. Some attempts have been made to steer away from having the
online content and activities be created, maintained, and monitored solely by the
instructor. Discussion boards, student breakout groups, and student portfolios are
examples of shifting some responsibilities to the students. However, the instructor
continues to be the main arbiter of these activities, and tools that support student
contributions are entirely under the control of the same, monopolistic CMS.
Structuring student experiences outside class in this top-down, instructor-push
fashion is increasingly contradicting a decentralized, learner-pull culture of today's social
media and cloud computing [1]. The question of interest to this poster is how instructors
could design a course learning environment that is affordable and learner-directed.
Learner-directed means that students determine how they participate in activities and what
featured artifacts represent their learning. Affordable means that the software tools and
cloud services with which students personalize their learning are free and convenient.
In this poster I report on my experience with moving out of Blackboard a few years
ago and opting for social media tools and cloud services [2], with which students and I
have experimented to improve student engagement and social interactions around learning
1
I am reluctant to use the alternate name of "learning management system",
which commercial CMSs have adopted, as I do not know of any educational research that
defines learning management and the functionality of such a system, if one exists.
___________________________________________
*
Copyright is held by the author/owner.
70
CCSC: Northeastern Conference
in the course. Learning outside a CMS is starting to gain momentum [3-6]. One of the
best ITiCSE 2010 Working Group reports, Tools for "Contributing Student Learning" [7]
has conducted a large-scale survey of the recent computing education literature to analyze
tools that students use to create content, collaborate, share, and peer review. The study
reaffirms that these activities have been shown to be beneficial to student mastery of the
material and student reflective, critical, and creative skills.
The social media tools and cloud services that help me gauge student learning
activities and artifacts are Piazza, Google Sites, Google Code, and MediaWiki.
•
Piazza (piazza.com) is a free online gathering place where students come together
to learn through the means of questioning, answering, commenting, and
following-up on unresolved problems. The instructor guides the conversations by
raising questions and vetting relevant questions or answers. Piazza software has
effective analytics that I easily tie into assessing student engagement outside
classroom.
•
Google Sites (sites.google.com) is a free site creation tool with wiki revision history
controls. Students use Google Sites to create online portfolios to assemble learning
artifacts (solutions to assigned homework and projects, self-evaluations, status
reports, reflections, revisions, and others). Only the student and I have access to a
student portfolio. My use of the portfolio is to provide formative and summative
assessment for the featured learning artifacts.
•
MediaWiki (www.mediawiki.org) is a free wiki software that students use to
document their team projects openly and collaboratively, both software development
work products and project management activities.
•
Google Code (code.google.com) is a free service for hosting open source student
projects. Version control, issue tracking, and membership controls allow students
to fully manage their projects with the help of the Google cloud.
The main advantage of replacing an instructor-controlled content management
system with a suite of tools and services that are under student control is to extend learner
centeredness to what happens online, outside classroom. I see these tools and services as
precursors of a student learning "dashboard". The term is borrowed from multiplayer
online games, such as World of Warcraft, to denote the variety of controls with which
students and instructor can gauge what and how much is learned.
REFERENCES
[1] Hagel III, J., Brown, J.S., and Davidson, L. The Power of Pull: How Small
Moves, Smartly Made, Can Set Big Things in Motion. New York: Basic Books.
2010
[2] Sabin, M. and Leone, J. IT Education 2.0. In Proceedings of the 10th ACM
Conference on SIG- Information Technology Education, 91-99, Fairfax, VA,
October 2009.
71
JCSC 27, 6 (June 2012)
[3] Hodges, C. and Repman, J. Moving Outside the LMS: Matching Web 2.0 Tools
to Instructional Purpose. EDUCAUSE Learning Initiative, ELI Briefs, September
7, 2011.
[4] Arvan, L. Dis-Integrating the LMS. EDUCAUSE Quarterly 32(2). 2009.
[5] Lane, L.M. Toolbox or Trap? Course Management Systems and Pedagogy.
EDUCAUSE Quarterly 31(2). 2008.
[6] Mott, J. Envisioning the Post-LMS Era: The Open Learning Networks.
EDUCAUSE Quarterly 33(1). 2010.
[7] Hamer, J., Luxton-Reilly, A., Purchase, H.C., and Sheard, J. Tools for
"Contributing Student Learning". ACM Inroads 2(2). June 2011.
72
LEVERAGING ONLINE/DISTANCE LEARNING
METHODOLOGIES IN FACE TO FACE INSTRUCTION*
FACULTY POSTER ABSTRACT
Susan P. Imberman, Ph.D.
College of Staten Island, City University of New York
2800 Victory Blvd.
Staten Island, NY 10314
718-982-2850
susan.imberman@csi.cuny.edu
Teaching computer science online has many challenges. Online or distance
education in the computer sciences is particularly challenging. Educators have wrestled
with the problem how to best deliver course content online and have come up with a
"mixed bag of tricks" in their approach. Most online course content is deployed using
PowerPoint slides (both with and without audio), textual readings, and video lectures.
Many online learning occurs asynchronously with content available 24/7. [Preston, J. A.
and Wilson, L. 2001] Some classes meet synchronously virtually, simulating a face to
face (f2f) environment by taking advantage of video conferencing software such as
Eluminate, Wimba, Adobe Connect, Skype, and others [Quigley, A. 2002; Becker, K.
2007; Malan, D. J. 2009]. Student to student, and student to teacher interaction is
accomplished by using blogs, wikis, discussion boards, electronic surveys and exams, all
of which are available in classroom management systems (CMS) such as Blackboard and
Moodle, or on various internet sites. Blended, hybrid, or enhanced learning incorporates
these online/distance methods into traditional face to face classes. At our institution, we
have used blended learning to enhance and extend the traditional computer science
classroom. Below we list the methods we will discuss in this presentation, along with a
short description of each. This poster will illustrate the various online techniques that can
be easily incorporated into traditional face to face environments.
DISSCUSSION BOARDS, BLOGS AND WIKIS: One of the challenges educators face
is how to provide students with interesting, interactive assignments which complement
and extend concepts taught during class time. We have found that using discussion
boards and blogs has helped accomplish this goal. Discussion boards and blogs are
similar with respect to the types of content that can be incorporated, such as text, video,
___________________________________________
*
Copyright is held by the author/owner.
73
JCSC 27, 6 (June 2012)
hyperlinks to web content, etc., but differ with respect to their physical structure. Wikis
are online documents that can be edited by users that can also incorporate text, video and
web hyperlinks. Because of this, wikis offer a great venue for collaborative learning. Web
sites such as www.wikispaces.com offer free, ad-free, wiki accounts for use in the higher
education. This poster will illustrate blogs, wikis, and discussion boards with respect to
their differences and possible uses, and how to use websites such as www.blogger.com
to set up classroom blogs and discussion boards outside of a classroom management
system.
ONLINE SURVEYS AND EXAMS: Distance learning classes make use of online
surveys and exams for assessment purposes. These can be leveraged into creating online
homework assignments and projects. Many classroom management systems (CMS) come
with the ability to implement these. Also, many textbook manufactures include test
generators with their texts, that are can be deployed using CMS. By using these exam
features educators can create "exams" that are used as homework assignments. An added
plus is that the CMS can grade these "exams" when students submit answers
electronically, thus adding student accountability, without adding to the educator's
workload.
The survey feature of either a CMS, or web sites such as SurveyMonkey
(http://www.surveymonkey.com/), can be used to facilitate the creation of interesting class
projects. These survey systems collate survey results and present the results it in a format
that can be easily manipulated in a spreadsheet so as to facilitate the analysis of the survey
results.
.
PODCASTS, FLASH VIDEO, TABLET PCs: We have used podcasts and flash in
several courses to augment classroom instruction. The prevalence of Smartboards in
classrooms, in conjunction with video capture software such as Camtasia Studio, offer
many opportunities for creating online video and/or podcasts to augment classroom
materials.
SUMMARY AND CONCLUSIONS: By creating a digital extension to traditional
classroom teaching, educators can encourage more peer to peer interaction, collaborative
learning, and extended learning opportunities. Automatically graded homework can
increase student accountability with respect to assignment completion. Wikis, blogs, and
discussion boards allow students to express their ideas on topics that extend and relate to
what is taught in class. In conclusion, the face to face learning experience can be extended
and enhanced given these various methodologies.
REFERENCES
Becker, K. 2007. Using Elluminate in CS. J. Comput. Small Coll. 23, 2 (Dec. 2007),
73-75.
74
CCSC: Northeastern Conference
Imberman, S. P., Making Nifty Assignments Niftier and Not So Nifty Assignments Nifty
with Online Technologies, Susan P. Imberman, AI Education Workshop at Association
for Advancement of Artificial Intelligence 2008, Chicago July 2008.
Malan, D. J. 2009. Virtualizing Office hours in CS 50. In Proceedings of the 14th
Annual ACM SIGCSE Conference on innovation and Technology in Computer Science
Education (Paris, France, July 06 - 09, 2009). ITiCSE '09. ACM, New York, NY,
303-307.
Preston, J. A. and Wilson, L. 2001. Offering CS1 on-line reducing campus resource
demand while improving the learning environment. In Proceedings of the
Thirty-Second SIGCSE Technical Symposium on Computer Science Education
(Charlotte, North Carolina, United States). SIGCSE '01. ACM, New York, NY,
342-346.
Quigley, A. 2002. Closing the gap: new technologies are bringing online students and
instructors together. eLearn 2002, 1 (Jan. 2002), 1.
Russell, S., and Norvig, P., 2003 Artificial Intelligence A Modern Approach,
Prentice-Hall Inc. ISBN 0-13-790395-2.
75
GRAPHICS PROGRAMMING ON ANDROID *
FACULTY POSTER ABSTRACT
Michael Werner
Department of Computer Science
Wentworth Institute of Technology
Boston, MA 02115
(617) 989-4143
wernerm@wit.edu
Graphics programming has long been a popular elective at our school combining
mostly mathematical theory with robust programming exercises. To spark interest we are
currently teaching it using the Android platform.
The course covers traditional topics including the OpenGL pipeline architecture,
matrices & analytic geometry, projecting 3D objects, fractals, rotations, translations,
interaction, lights & materials, textures, hierarchical modeling, curves and surfaces.
The Android platform is used because it is current, students are excited about it, it
supports OpenGL, it uses open source development environments and it is easy to publish
apps. However it is different than programming for a computer, the screen is smaller,
there is touch screen interaction, and the use of OpenGL is a bit different for performance
reasons.
Designing a program for an Android app is also different. The platform is complex
and exists in a number of different versions. Fortunately the Android SDK provides a
powerful application framework providing access to needed services. The graphics
programmer can extend platform classes to implement most of the required app
functionality. The main Android problem is getting a surface to draw on and handling user
interaction. After that the programming is similar to graphics programming for a
computer.
The preferred tools used for Android development are Java, the Android SDK,
Eclipse equipped with an Android plug-in and a device emulator. Students with Android
devices can transfer their apps and test them on the device. The department has a few
Android tablets so everyone can do this. Students can showcase their programs by
offering them as apps on the Android market.
The teaching approach used is also different, more like a seminar than a traditional
course. This takes advantage of the fact that some students already know a lot about
___________________________________________
*
Copyright is held by the author/owner.
76
CCSC: Northeastern Conference
Android programming and are eager to share it. We learn from each other. By the second
week of the course students already produced some interesting programs including 3D
objects that rotate when the user swipes her finger.
This is a work in progress. The course is on-going. Preliminary indications are that
students are enthusiastic with much of the classroom time given over to presentations of
their work. The actual poster presented in April will present a more complete assessment
fo this approach.
77
WHEN DO STUDENTS LEARN? INVESTIGATING FACTORS
IN INTRODUCTORY COURSES*
FACULTY POSTER ABSTRACT
Matthew Hertz
Department of Computer Science
Canisius College
Buffalo, NY 14208
(716) 888-2436
hertzm@canisius.edu
Sarah Ford
Department of Sociology
University of Massachusetts, Amherst
Amherst, MA 01003
(716) 759-4167
ford@soc.umass.edu
This work investigates which introductory topics are the most difficult to teach and
sheds some light on factors that improve student learning. Unlike past studies [1], this
uses the results of a survey of instructors of introductory computer science courses
(commonly called "CS1" and "CS2"). The survey asked about the instructional time spent
and importance placed on a range on commonly taught concepts. For each concept, the
survey also asked instructors to rate their students' level of mastery at the course's end.
Using these data, we examined how closely correlated student learning was with the
reported instructional time or importance placed on that concept. The levels of correlation
were tested using two different metrics: Spearman's r, which determines if a monotonic
correlation exists; and Pearson's r, which determines if there exists a linear correlation.
We also investigated what percentage of the variation in students' abilities can be
explained by differences in emphasis or instructional time (r2).
CORRELATION BETWEEN IMPORTANCE PLACED ON A CONCEPT AND
STUDENT LEARNING
We first examined the correlation between students' abilities on a topic and the
importance the instructor placed on that topic. In CS1, we found statistically significant
correlations for all but a few topics. The results for I/O are illustrative of this outcome.
Instructors reported high levels of student mastery when the topic was emphasized and
very little mastery when it was not. There were five topics for which we did not find
statistically significant correlations. For three of these topics, trees, graphs, and other, this
lack of correlation was due to the overwhelming number of respondents reporting that
___________________________________________
*
Copyright is held by the author/owner.
78
CCSC: Northeastern Conference
each was "unrelated" to their course. This left two topics for which we did not find a
significant correlation but that were taught by most respondents: subroutines/functions
and types. Students' mastery of these topics, as reported by our respondents, were highly
variable. We found that differences in how much subroutines/functions were emphasized
explained less that 4% of the variation in students' abilities. This highlights the difficulty
teaching this topic in CS1. This difficulty pales in comparison to that of types. Nearly all
respondents rated types as "important" or "very important", but this did not carry over into
how much students learned. Our results showed that differences in emphasis explained
less than one-half of one percent of the variation in students' abilities with types.
Unlike in CS1, the responses from CS2 instructors show clear correlations between
topic emphasis and student learning for all topics. For subroutines/functions and control
structures, only the results from Spearman's ñ were significant. This happens for
non-linear, but monotonic, relationships. Most interestingly, the topics for which
correlations are weakest are the same for CS1 and CS2. This suggests that these concepts
are truly among the most difficult to teach.
CORRELATION BETWEEN INSTRUCTIONAL TIME ON A CONCEPT AND
STUDENT LEARNING
Students' abilities and instructional time on a topic should be closely aligned – one
would expect student learning to increase relative to the time spent in class working on
the topic. This is not always the case, however, suggesting that there exist efficient, but
not widely used, ways of teaching those topics. Furthermore, we found that instructional
time spent on a topic often has a far weaker connection to student learning levels than
does instructor emphasis. This may explain why different instructors have such divergent
experiences using similar teaching methodologies. Just spending more classroom teaching
time on a concept will not improve student learning as much as an instructor placing
greater emphasis on that concept – even if the increased emphasis does not include
additional teaching time.
For CS1, there were few topics for which there were statistically significant
correlations between instructional time and student learning. Where we found significant
correlations, either the strength of the correlations were weak (e.g., testing, debugging)
or the topics were taught by a small subset of instructors (e.g., abstraction mechanisms,
recursion). Interestingly, three topics, control structures, subroutines/functions, and types,
had weakly negative correlations. For some topics, such as arrays, as little as 10% of the
variation in student ability can be explained by differences in teaching time. In CS1,
simply spending more time on a subject is not associated with increasing student learning.
If the correlations seen in CS1 were weakly significant, it is almost impossible to
conclude that time spent on a topic in CS2 has any relationship with student learning. Of
the topics in which we found statistically significant correlations, two topics, types and
arrays, have negative correlations and the other two, graphs and other, have positive
correlations. Few relationships in CS2 are strong; for 10 out of the 17 topics examined,
teaching time explains less than 3% of variation in student ability.
79
JCSC 27, 6 (June 2012)
CONCLUSIONS
While this survey was unable to identify specific approach(es) or technique(s) that
improved student learning quickly, it does highlight those course concepts where there
seem to successful teaching methods that are not in wide use. This survey also found that
students respond better to the instructor's emphasis on a topic than to the time spent on
a topic, but leaves understanding why this happens to future research. .These results
emphasize the importance of continued experimentation and diversification to help
instructors find models that match and emphasize their interests and thereby improve
student learning and success.
REFERENCES
[1] Goldman, K., Gross, P., Heeren, C., Herman G., Kaczmarczyk, L., Loui M.C.,
Zilles, C., Identifying important and difficult concepts in introductory computing
courses using a Delphi process, Proceedings of the 39th SIGCSE technical
symposium on Computer science education, 40(1), 256-260, 2008.
80
CRITICAL THINKING IN AN INTRODUCTORY
PROGRAMMING COURSE *
FACULTY POSTER ABSTRACT
Sarah Tasneem
Math and Computer Science Department
Eastern Connecticut State University
Willimantic, CT 06226
tasneems@easternct.edu
The need for an introductory Computer Science course in universities is well
established. As computing impacts all aspects of modern life, it is advantageous for
students (future generation work force) in other majors to learn more about computing.
The author discusses an introductory programming course focusing on algorithmic
problem solving approach can instill critical thinking, logical reasoning and problem
solving skills to Liberal Arts students. This course emphasizes at first on the development
of the steps of algorithm using pseudocode, instead of focusing on the complexity of the
syntax of the language itself.
Programming and Critical Thinking: NSF researchers suggest that programming
instruction should not be limited to students in CS learning. Learning to program has
benefits ranging from teaching problem solving and thinking skills, to helping students
appreciate how computers work [1]. Papert mentioned that a deep understanding of
programming, in particular the design activity of successive decomposition as a mode of
analysis, results in significant educational benefits in many domains, including those
unrelated to computers [2]. National Academy of Sciences report states that, programming
becomes a laboratory for discussing and developing valuable life skills as well as one
element of the foundation for learning about other subjects [3]. Programming is a
wonderful vehicle for teaching problem solving and critical thinking and has the ability
to nurture and develop thinking skills which may not be possible with other subjects.
Even though a computer program ultimately runs on a computer, programming is much
more a 'thinking' skill than a computer skill. One can acquire many skills and art of
programming without even sitting in front of a computer. Whatever career a student
intends to pursue she/he will need to think and solve problems; computer programming
can train one to do so. No matter how small a program is, each and every program should
___________________________________________
*
Copyright is held by the author/owner.
81
JCSC 27, 6 (June 2012)
have the basic structure with three main parts as follows: Input Data, Process Data, Print
Result. Steps of Program Development Life Cycle do not change which provides an
organized plan of breaking down the complete program development into manageable
tasks.
Advantage of using pseudo-code for beginners: Finding a solution to a given
problem is called algorithm discovery- the most challenging and creative part of the
problem solving. Computer scientists use a notation called pseudo-code (false code)
which is highly readable and has no grammatical rules and resembles statements of
programming. An apprentice in programming including Liberal Arts undergraduate
students can adopt it into their own personal way of thinking and problem solving as it
is. The advantage of introducing algorithm using pseudo-code before beginning with the
actual coding students are able to concentrate on the problem solving steps, instead of
concentrating on the complexity of the syntax of a language. For beginners, programming
language syntax can be very threatening, interest may be withdrawn if they are introduced
to the syntax at the very beginning. The goal should be capturing the essence of solution
design instead of focusing on the complexity of the programming language
implementation. "CSC 110: Introduction to Problem Solving with Computers"
serving as a basis for both beginning computer science students and a general education
course, begins by discussing CS as the study of algorithms. Laboratory experiments [4]
are designed where students acquire hands-on experience through algorithm animation
(written in pseudo-code). They observe an algorithm being executed and watch as data
values are dynamically transformed into output result. Bringing an algorithm in life
through animation can help students understand what the algorithm does and how it
works. They can investigate how the steps of a previously written algorithm work by
repeated execution. This phase benefits students on seeking solutions to problems using
critical thinking without going through the complexity of learning structured-code.
Analysis Phase: A problem can be solved in several different ways. Computer
scientists strive to design the most efficient ones under given constraints. Once they have
enough understanding about different searching and sorting algorithms, they are asked to
compare their relative performances. For example for a list of size k the average number
of comparisons needed in a sequential search can be calculated as follows: Cavg = (1 + 2
+ 3 + ... + k) / k or, Cavg = (k + 1) / 2 . From this formula one can conclude that the
average number of comparisons increases linearly with the size of the list. They also
analyze similar formula for other algorithms for performance measurement.
In Conclusion, an introduction to this technique of using pseudocode increases
student's interest to focus on problem solving. They are relieved to learn computer science
concepts and obtain hands-on experience by experimenting different algorithms
pre-written in pseudocode without going through the rigor of writing their own program.
Learning programming using computer languages is not the main goal of this introductory
course. After getting experience in program development using pseudocode many
students were highly satisfied to acquire the knowledge of writing simple programs on
their own with few input, computation and output statements. This outcome was very
82
CCSC: Northeastern Conference
much rewarding to the instructor. Course evaluation data over the past five years depicts
that 86% of the students Agree or Strongly Agree on the statement "I would rate the
overall quality of this course as high" and 87.5% of the students Agree or Strongly Agree
on the statement "My experience in this class make me want to learn more about this
subject". Students' response on critical thinking competency for past two years shows that
100% agrees yes to the statement, "I was required to think critically and use logical
reasoning" and 84% agrees on "The course helped me become a better critical thinker".
This phase benefits learner programmer not only on seeking solutions to problems
thinking critically, but also capturing the essence of designing a solution instead of going
through the complexity of learning structured-code at the very beginning. Evaluation data
demonstrates the success rate of the course in growing student's interest in the subject and
improving their critical thinking aptitude.
REFERENCES
[1] Papert, S., Mindstorms: Children, computers and powerful ideas, New York:
Basic Books, 1980.
[2] National Academy of Sciences Being fluent with information technology,
Washington, DC: Author, 1999.
[3] Soloway, E., Should We Teach Students to Program, Communications of the
ACM, 36(10), 21-24, 1993.
[5] Lambert K., and Whaley T., Invitation to Computer Science Laboratory Manual,
Thompson course Technology, 2007.
83
PROGRAMMING FOR THE HUMANITIES: USING TARGETED
GAMES*
Evelyn Stiller
Plymouth State University
17 High Street Plymouth, NH 03264
(603) 535-2531
estiller@plymouth.edu
ABSTRACT
This paper addresses an issue in a larger research context which seeks to
establish that individuals with minimal mathematical training can acquire
fundamental programming skills through a more gradual and evolutionary
teaching approach. A variety of teaching techniques will be discussed, but the
focus here is on a current impediment to success that many students exhibit,
namely a reluctance to modify a model program. The students are encouraged
to experiment with sample program by trial-and-error substitutions of values,
variables and calculations in order to achieve a desired outcome. The primary
discussion will revolve around a visual metaphor provided to the students in
the form of a game, and its influence on helping students overcome their
inhibition to experimenting with programs.
INTRODUCTION
The “Science of Animation Programming” (SAP) is the course where this study
takes place. Students are taught to create interactive animations using Adobe Flash and
ActionScript [4]. Most students taking this course have taken minimal college-level
mathematics courses, and so are weaker in their analytical abilities than traditional
computer science students.
John Anderson determined that individuals may be placed in two fundamental
categories of learners. One such category contains the field-dependent, relational/ holistic,
affective thinkers (concrete learners), while the other category contains field-independent,
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
84
CCSC: Northeastern Conference
analytic, non-affective thinkers (canonical learners) [1]. Many other researcher have found
similar differences in learning styles [8,9,13]. The goal of SAP is to reach a broader
audience by appealing to concrete learners as opposed to canonical learners for whom
much of a traditional computer science curriculum is geared.
I will refer to the application of a bricolage-like strategy in programming instruction
as the bricolage approach. The bricolage approach [7,13,14] uses student experimentation
and exploration as a central pedagogical element, and thus is a form of constructivist
teaching [16]. The bricolage approach consists of two phases [12]. In the hypothesis
formulation and testing phase, students gain familiarity with a provided program. In the
problem-solving phase, students try to adapt the given program to achieve a new behavior.
For example, students are given a sample car animation in which the car moves across the
screen horizontally at a slow pace. Students are asked to study the ActionScript and
develop a hypothesis about what determines the pace of the car, and then to test their
hypotheses by speeding the car up.
This approach has been used for a number of years with great success. The success
is determined by the low student attrition rate when compared to the high attrition rates
that traditional introductory programming courses exhibit [15, 8]. When considering
attrition rates, one must also acknowledge the more modest objectives that are set forth
in SAP as compared with a traditional introductory programming class. Students in SAP
do not gain proficiency in the use of arrays and loops, but exhibit varying degrees of
proficiency with concepts leading up to these more advanced constructs, including
variable use and definition, function use and definition, event handling, assignment
statements, dynamic object creation, movement of graphic objects and object collision.
One may argue that having a more modest outcome may have more to do with the success
of students in the course than the pedagogy. However, a traditional approach in which
syntax is used as the cornerstone for learning by definition appeals to canonical learners
and not concrete learners.
SUBSTITUTION
In this paper a new tool is introduced that targets a fundamental skill involved in the
experimentation process, namely substitution. I am defining substitution here to be related
to but distinct from mathematical substitution. In mathematical substitution an equivalent
value or expression replaces an existing expression in a formula, while in the substitution
addressed here, a compatible and generally not equivalent object, variable, value, or other
expression replaces another. The goal of substituting ActionScript expressions is to
modify a program’s behavior in some way to learn about the instructions/expressions in
question. Substitution is a concrete step in the process of program adaptation, and students
who feel less mathematically inclined show significant reservation in carrying out
substitutions. Thus, increasing students’ comfort with substituting is central to increasing
students’ success in learning to program using the bricolage approach.
I have made attempts in the past to target substitution. Illustrations of substitution
have been largely syntactic, where model ActionScript statements have been shown with
a series of sample substitutions. A few of the more analytically inclined students may
have benefitted from this approach, but the students who need assistance the most did not
85
JCSC 27, 6 (June 2012)
appear to benefit from the illustrations. So, an alternative approach is necessary to better
reach the concrete learners.
Alternative Approaches to Teaching Programming
Many alternative teaching techniques have been employed to help students learn to
program and to appeal to concrete learners. Many of these efforts entail providing students
with a means to visualize the flow of control during program execution [3,10], while other
efforts provide students engaging programming environments such as Alice [5,6] that also
function as a gentle introduction to programming. Still other tools allow students to create
programs by manipulating icons [2]. Many other efforts exist that do not use software
tools, such as pair programming and using engaging assignments or projects.
In addition to using student-directed experimentation SAP also employs games to
convey certain concepts. The course starts with students playing a deductive reasoning
game in which they drag words into a box which rates the words (yes/no) as to whether
they fulfill a rule. Students are to determine the correct rule for word acceptance. Some
sample rules are “words that contain 5 or more vowels”, “words that contain an e, but no
a”, and “every second word”. The purpose of this game is to introduce students to the
deductive reasoning process which is at the heart of experimentation.
Another game/tool pair is used to introduce the graphics coordinate system to
students. Students are first asked to answer questions about x-y coordinate values by
guiding a mouse-controlled arrow around a window that reports the x-y coordinate of the
arrow’s point. After this exploration phase, students play a game that requires the
placement of a graphic object by specifying its x-y coordinates. The game requires
students to move water drops above a flame to extinguish it within ten seconds. Success
with the game requires a familiarity with the graphics coordinate system.
A third tool is used to facilitate student experimentation with variable values that
influence the angle of motion of a graphic object. Students may specify delta-x (change
in x-coordinate value) and delta-y (change in y-coordinate value) values and determine
how these values influence speed and angle of a graphic object’s trajectory.
A fourth game has been introduced to address an observed weakness in student’s
willingness to experiment effectively with provided animations. Many students exhibit
reservation to make meaningful modifications to provided animations. A game called
Substitution has been developed to address this specific weakness by providing students
with a familiar and engaging context to make adaptations which will then make the
process of making adaptations to programs seem less intimidating. Substitution
establishes a basketball-like scenario in which there are a group of five players working
together to move a basketball to a target. There are three different types of players. Each
type of player has a specific behavior (dribble ball, pass ball, shoot ball). Students have
a series of replacement players that they may drag onto a player of the same type to
modify the attempt to hit the target with the ball. Each replacement player differs in some
way from a player of its type. For example, a dribbler may move a shorter or longer
distance, while a passer may pass the ball at a variable angle. To succeed in hitting the
86
CCSC: Northeastern Conference
target the player must make substitute players of the same type with the correct
characteristics.
The benefit of this game is threefold. First, it transforms the process of substitution
from an abstract mathematical process into a concrete and familiar process by using the
Substitution game as the basis for an analogy for adapting an ActionScript program.
Secondly, it provides a frame of reference for discussion that all students have experience
with. So, engaging in experimentation using ActionScript is no longer so unfamiliar and
intimidating, because the concrete process of substituting like-type expressions can be
discussed using an intermediary reference point, namely the basketball players, rather than
a syntactic reference point. Finally, the game gives students a concrete and
less-intimidating context to encounter the concept of typing, because successful
substitution in the game requires the substitution of like-type players. That is, only a
shooter can be substituted for another shooter and not for a passer.
The game’s analogy goes beyond classifying variables into types and can be used to
discuss the role of a variable. Sajaniemi and Kuittinen introduced an innovative teaching
technique in which they focused on the role a variable plays in a program as opposed to
its type[11]. For example, a numeric variable may function as a counter, a most-recent
value holder, or an accumulator. The research found that students learned how to employ
numeric variables more effectively when they were provided with a new conceptual
framework that supports this activity.
A sample scenario to illustrate how the game works as an analogy for program
adaptation is illustrated in figure 1. In order to be successful at playing Substitution,
students must experiment by varying the values associated with the players. For example,
a change in value for a dribbler will change the distance the dribbler will take the ball.
There is no familiar unit of measure that the various values associated with each player
type represents, so players must experiment with various values in order to succeed in the
game. This experimentation with values translates directly to the type of initial
87
JCSC 27, 6 (June 2012)
experimentation expected of students as they vary the values of variables influencing the
motion of graphic objects.
Assessing the Benefit of Playing Substitution.
In order to establish the benefits of using this game in a classroom setting, a pretest
and posttest was given. The pretest was given in conjunction with a simple animation in
which students were required to change the motion of an object to approximate a
predefined diagonal path and to reduce the size of the object gradually as it traveled along
the path. Students were then asked to play the game. Students could work in pairs to play
the game. Students were able to successfully make a basket by substituting various values
in a trial-and-error fashion. The game-play required only about ten to fifteen minutes after
a ten minute introduction. Immediately following the game students were given another
animation in which they were asked to alter a curved path of an object so that the original
object would collide with a second, stationary object.
Each semester only one section of this course is offered, so it was not possible to
have a control group to compare results. The small class size of 18 students also makes
determining statistical significance difficult. The students did demonstrate about 20%
improvement in their substitution accuracy in the posttest. However, when using a pretest
and posttest scenario, one cannot definitively isolate the source of student improvement
to the game, since in addition to playing the game, students also have increased their
experience at proposing substitution hypotheses.
CONCLUSION
Teaching mathematically less prepared students to program presents a wonderful
opportunity to introduce new pedagogical approaches. The bricolage approach has been
found to allow less analytically inclined students to acquire beginning programming
skills, and at times discover an aptitude they otherwise would have missed [12]. By
targeting concrete impediments to learning like the willingness to experiment with an
existing program in a trial-and-error fashion, targeted teaching tools can be developed.
The Substitution game has been introduced to provide students with a comfortable and
familiar setting to discuss making program modifications. Although proof of the
effectiveness of this approach is not conclusive, it certainly provides a useful metaphor
during class discussion. The bricolage approach encourages students to experiment with
programs and Substitution helps them better conceptualize this process. Through program
experimentation students engage in a learning dialog with a programming environment
that gives them important practice with analytical thinking.
REFERENCES
[1] Anderson, J., Cognitive style and multicultural populations. Journal of Teacher
Education, 39,(1), 2-9, 1988.
[2] Bagert, D.J. and Calloni, B.A., “Teaching programming concepts using an
icon-based design tool”, IEEE Transactions on Education, 42(4), 365-370,1999.
88
CCSC: Northeastern Conference
[3] Brown, M.H. ,“ A taxonomy of algorithm animation displays” in Stasko, J. T., J.
Domingue, Brown M. H., and Price B. A., (eds), Software Visualization, 35-42,
MIT press,1998.
[4] Crawford, S. and Boese, E., ActionScript: a gentle introduction to programming.
J. Comput. Small Coll. 21, (3) 156-168, 2006.
[5] Dann, W and Cooper, S, “Alice 3: Concrete to Abstract”, Communications of the
ACM, 52, (8), p27-29, 2009.
[6] Kelleher, C and Pausch, R.,” Using Storytelling to Motivate Programming”,
Communications of the ACM, 50,(7), p58-64, 2007.
[7] Levi-Strauss, C. 1962. The Savage Mind, University Of Chicago Press.
[8] McKenna, P. 2001. “Programmers: concrete women and abstract men?”
Computer Assisted Learning, 17,(4), p386-395, 2001.
[9] Rosser, S. Female Friendly Science: Applying Women’s Studies Methods and
Theories to Attract Students. Pergamon Press. 1990.
[10] Rowe, G. and Thorburn, G., “VINCE—an on-line tutorial tool for teaching
introductory programming”, British Journal of Educational Technology, 31,(4),
359-369, 2000.
[11] Sajaniemi, J. and Kuittinen, M., “An experiment on using roles of variables in
teaching introductory programming”, Computer Science Education, 15, (1)
59-82, 2005.
[12] Stiller, E,, “Teaching Programming Using Bricolage”, Journal of Computing
Sciences in Colleges, Volume 24(6), 35-42, 2009.
[13] Turkle, S. and Papert, S, “Epistemological Pluralism: Styles and Voices within
the Computer Culture”. Signs: Journal of Women in Culture and Society, 16(1),
128-157, 1990.
[14] Bricolage, http://en.wiktionary.org/wiki/bricolage, retrieved January 2008.
[15] Woszczynski, A., Guthrie, T., Shade, S., ”Personality and programming”,
Journal of Information Systems Education, 2005.
[16] Wulf, T.,”Constructivist approaches for teaching computer programming”,
Proceedings of the 6th Conference on information Technology Education. ACM,
New York, NY, 245-248, 2005.
89
ETHICS FOR NON-COMPUTER MAJORS IN A DIGITAL
WORLD*
Barbara Zimmerman
Villanova University, 800 Lancaster Ave., Villanova, PA, 19085, USA
610-519-5354
barbara.zimmerman@villanova.edu
ABSTRACT
Ethical behavior is learned throughout a lifetime. Good morals, taught first at
Mother's knee as she teaches the sharing of toys, continue into the formative
years. Religious organizations reinforce the message each week through
teaching the Ten Commandments [5], the scriptures and sermons, but ethical
discussions should not stop at the church doors.
The newly connected world of personal computing and mobile devices adds
another dimension to the world of interactive behavior. One just needs to pick
up a newspaper in any city to learn of bullying that occurs over the Internet [9]
and of posted videos causing undue hardship and sometimes even death for the
victim [1].
In the University's Computing Sciences (CS) Department a full course in ethics
is taught as part of the ABET requirement in the junior year to computer
science majors. Non-computer science majors are introduced to the subject of
ethical computer behavior in the freshman course, Computing and the Web.
This ethics introduction does not fulfill any university or ABET requirements
but the author feels strongly that it is important to expose non-majors to the
subject of computer ethics early in their university studies. This paper
addresses ethics in the non-major freshman course. While ethics is not the
main focus of the non-major course, ethics are discussed each week and a new
topic is debated. The questions have changed over the years due to student
suggestions and changes in the computer field. The techniques have also
evolved and data collected. The findings are presented in this paper.
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
90
CCSC: Northeastern Conference
THE COURSE
Computing and the Web is a non-majors course that combines lecture and labs. As
in all good courses, Computing and the Web has evolved over the years. The size of
lecture attendance has varied from 28 students to 85 students and the method of course
delivery and discussion has also had to be quite flexible. The course has been taught to
both traditional and non-traditional students. Ethical issues were first debated with teams
of students taking each side. This method worked well with smaller groups but as the
course size grew the first year students became reluctant to sharing their thoughts in front
of their peers. It takes time for students to find their voice. In smaller mentored
classrooms, students will voice their opinion more easily. Students shyness prevents them
from talking in large lecture sections [6]. Obviously a new method had to be developed
to encourage even the shyest student to share ideas and opinions.
METHODOLOGY
The discussions started with classroom debates. Again, this worked well for small
groups of students but became unwieldy as the course attendance grew. The students'
familiarity with web tools led to putting the debatable "questions" into a blog format.
Students gravitated to this venue and eagerly added their comments to the on-going
discussion.[2], [3], [8]. According to Samuel Greengard the average U.S. student 13-17
sends close to 110 text messages each day [4]. Responses to questions increased by using
students' desire to be online. Using an anonymous entry, even the quietest students felt
free to voice opinions. Blogging vs. online discussion was used because students found
it easier to comment on others' entries and blogging aided the professor in answering each
individual response personally. Blackboard, a standard at the university, was used and
allowed grades to be recorded automatically.
The topics chosen were open ended. There are no "right" or "wrong" answers, just
a way of having students see what others thought and be able to formulate their own
opinions of things.
When topics were brought to students also has changed over the years. For the
several years through fall of 2007 the debates happened in the last two weeks of each
semester. Student participation was poor. A questionnaire at the end of the semester
revealed that students were reluctant to volunteer for various reasons. As seen in Table
1, the method changed beginning with spring semester 2008. Topics were introduced
throughout the semester and were presented on line.
Table I. Results of fall 2007 survey "Why didn't you want to debate?"
Last two weeks of semester are busy
80%
My grades are good enough. I do not need any bonus points
70%
I do not like to speak in front of my peers
40%
The preparation takes too long
50%
Would you participate if the discussion was on line?
100%
91
JCSC 27, 6 (June 2012)
NOTE: Respondents can choose more than one method
NUMBER OF RESPONSES
Not surprisingly, the amount of entries varied with how much time during lectures
was devoted to looking at the ethics' discussions. A new topic was presented periodically
and some of the entries were posted and commented on by the professor and the students.
The amount of participation has varied over the years, certainly dependent upon the
grading but more importantly dependent upon the amount of class time devoted to the
discussion of the topic. An increase of 55 % can be directly attributable to class time
discussion. Lectures sessions occur twice per week. At the first lecture, the topic is
presented and then at the second lecture, some of the responses are quoted anonymously,
which takes between 5 and 10 minutes of the 50 minute class time. Without classroom
presentations, responses on non-presented topics dropped down to 15% of students. With
the professor talking about the topic and answering each individual response with a
comment, the participation increased.
GRADING
Grading has changed and is still changing, from "Here are some topics; answer if
you feel like it" with absolutely no grade incentive, to mandatory, "You must participate
or get a zero as part of the final grade point average". The best approach was found to be
a bonus point for entries on five or more topics. The rules for the entries are that they
must be at least several sentences, they need no research into the topic, but must reflect
the students' opinions on the item of the week. Grading is a 1 for participation. A total
of 5 points throughout the semester will raise the final grade by 1 point. The increase of
1 point makes a difference to a person with an 89 (B+) who finally receives a 90 (A-) due
to participation in the discussions.
TOPICS
The professor stressed at the beginning of the year that no "research" is needed to
answer the questions. The professor is just looking for student opinions and feelings on
whatever topics are presented and wants to know what the question means to each person
and their reaction to the question being asked.
There are no definitive answers to these questions, just open ended opinions.
Students feel freer to show their feelings knowing they are not being judged for opinions
expressed. A sample of two topics is shown below and the full set is available in appendix
A.
Plagiarism
The web is a wonderful resource for information on any topic. Students can be
tempted to cheat on their papers by going to the internet and cutting and pasting
from various publications rather than paraphrasing and documenting their sources.
Does such plagiarism harm the student who has performed it?
92
CCSC: Northeastern Conference
Computer games
Many games are very violent. Does the violence harm the user or allow the user to
work out aggression is an acceptable manner? Games can be addictive - is this a
problem?
The questions chosen, like the course itself, has changed over the years. The newest
topics came from student suggestions in Fall 2009 and are somewhat related.
Facebook
Some people say that Facebook "steals your soul". What does that mean to you? Is
it true? Can you be truly you on a social web site? Can you resist accessing
Facebook to see who has been in touch with you?
Social networking
Explore what the world would be like if everyone knows everything about everyone
else. What are the ethics and dangers of social networking websites?
RESPONSES
Students' responses have shown that ethical questions are really important to them.
The responses themselves varied from several sentences to full documentation with
citations. Responses can get passionate. A response from several years ago to the gaming
question came from a student who works as a manager in a computer game store.
"My problem lies with the parents. Despite the fact that it is illegal and against
company policy to sell games to minors and that we are required to not only card but
to also tell the potential buyer about the game, I still get parents that buy this stuff
for their kids. I had a guy buy Halo 3 for his 6 year old this weekend, even though
I warned him in great detail about the content. I mean what am I supposed to do
against parents that want a cheap babysitter for their kids, and don't care what they
have to do to get one so long as the kid shuts up in a corner?"
RESULTS
Results were kept on two types of non-major students participating in the ethical
discussions. Most results are from traditional undergraduate non-majors. One semester
course of non-traditional (evening) students was also given the topics to discuss. The
results of these two groups indicate better participation percentages among the
non-traditional students. Participation showed that 86 Undergraduates had 3.77 entries /
student while the 15 evening non-traditional students had 6.8 entries / student. Details are
available from the author upon request. The author is not certain what led to this
difference. Perhaps non-traditional students had more time before each class to create
entries or perhaps they were more serious about their participation. The non-traditional
venue was a 3 ½ hour evening session once per week.
Exit surveys were conducted for 2009 and spring 2011. Traditional students were
given exit surveys that indicated that topics presented made students consider items that
93
JCSC 27, 6 (June 2012)
they had not thought about previously. These are seen in Table 2. The table indicates that
student attitude remained consistently positive.
Table 2. Undergraduate traditional students survey questions and average response scores,
86 students Fall 2009, 55 students Spring 2011
(5=Strongly agree, to 1=Strongly disagree)
No.
Question
Fall 09
Num=86
Spring 11
Num=55
1.
Blogs were presented to make the student think
about questions to which there is neither a right nor
a wrong answer. The questions presented made me
aware of issues I might not have considered in the
past.
3.96
3.91
2.
In previous years the same questions were
presented in a debate format Answering Blogging
is better than face to face debates
3.62
3.80
3.
The professor should keep blogging in future
offerings of this course.
4.01
4.44
4.
Assuming that blogging remains part of the course,
the professor should change the volunteer nature of
blogging participation into a graded activity.
2.99
2.51
5.
I like having one topic presented each week instead
of all topics presented the last week of the course
since it gives more time to focus on each topic.
4.07
3.96
A finding is that many more students read the peers' response than the submitted
answers, indicating more interest in their peers' opinions than in gaining the bonus point
offered by active participation. Table 3 shows these results. For the professor, this
exciting result shows that the topics really are on the minds of students today and that they
think about issues presented.
Table 3. Fall 2009 Number of posts submitted and read by 86 undergraduate students,
compiled by WebCt. The second column is the number of posts submitted by students.
The third column is the number of students reading what peers wrote.
BLOGGING QUESTION
Number of
students
responding
Number of
students reading
peer responses
Plagiarism is easy on the WWW - Does it
harm the student?
8
44
Censorship - Web's Freedom of speech vs.
protection of the young
7
33
94
CCSC: Northeastern Conference
Always on call - - Topic Dropped for Fall
2009
N/A
N/A
Privacy - Should employers / school have
access to your e-mail?
9
38
Privacy vs. Government Oversight - Cell
phone, Easy Pass, our movements can be
tracked. Should the government be allowed?
6
31
Open Web, but is information true - Topic
Dropped for Fall 2009
N/A
N/A
Disappearance of Newspapers - Taken over
by the Internet, TV, Radio. Do we lose
anything?
12
40
Copyright - Should we be allowed to
download music without a "royalty"
14
57
Computer Games - Violence
14
61
Medical Universal Database - Data may save
your life but will you be denied a job because
of medical condition?
2
14
New technology makes me spend money
3
27
Flat world means jobs can be done anywhere
1
13
Education in the US vs. Asia
34
7
Facebook steals your soul
25
76
Social networks reveal too much of yourself
7
39
N/A: Not applicable
FUTURE STUDIES
The professor plans to work with the faculty of the CS majors' course on ethics to
include the use of blogging as one of the methods to generate student discussions of
related topics. Data will be collected and this study expanded.
CONCLUSIONS
Ethics education continues throughout a person's lifetime. The added dimension of
the Internet and the ubiquitous nature of hand held devices has made a discussion in a
computer course, even more relevant. The experience in a non-major group of students
has shown that they are excited about participation and will enter into thoughtful
95
JCSC 27, 6 (June 2012)
discussion on topics that are relevant to them. The use of online technology to solicit
participation has been very successful. Students have read others' responses even when
they do not participate in writing a response themselves. It is important to allow the
students to suggest their own topics as their world evolves quickly and only they know
the items of importance to them.
Computer ethics will remain an integral part of the course for non-computer majors.
REFERENCES
[1] "Clementi case defendant turns down plea deal", The Philadelphia Inquirer South
Jersey edition, Oct. 21, 2011, 37.
[2] Department of education and training from western Australia, "Blogs in
education",
http://www.det.wa.edu.au/education/cmis/eval/curriculum/ict/weblogs/, retrieved
Feb. 8, 2009.
[3] Deubel, P., "Moderating and ethics for the classroom instructional blog", 2007,
http://www.thejounal.com/thenewsletters/k12techtrends/archives/?aid=20257&re
cipidalpha, retrieved April 8, 2009.
[4] Greengard, S., "Living in a digital world", Communications of the ACM, 54, (10),
17-19, 2011.
[5] The Holy Bible, King James Version, Deuteronomy5:6-21, Philadelphia, PA,
1955.
[6] Jessen, R., Ramette, C., Balshem, M., "Practices for engaging student learning:
classroom observations", The Journal of General Education, 48 (2), 82-89.
1999.
[7] Maag, C., "When the bullies turned faceless", The New York Times, Dec 16,
2007.
[8] Paulus, T., Payne, R., Jahns, L., "Am I making sense here?: What blogging
reveals about undergraduate student understanding", Journal of Interactive
Online Learning,
8( 1), 2009.
[9] Smith, S., "Gay student in alleged webcam bullying commits suicide", 2010,
http://newsinfo.inquirer.net/breakingnews/infotech/view/20101001-295328,
retrieved Oct. 23, 2011.
APPENDIX A.
FULL SET OF THE ETHICS USED
Plagiarism
The web is a wonderful resource for information on any topic. Students can be
tempted to cheat on their papers by going to the internet and cutting and pasting from
96
CCSC: Northeastern Conference
various publications rather than paraphrasing and documenting their sources. Does such
plagiarism harm the student who has performed it?
Freedom of speech
Freedom of Speech is an integral part of modern western culture. Opinions have
been voiced in public discussions and debates. Currently the Web provides the forum for
public discussion. However, no one owns the web and all opinions may be expressed.
Should information on the web be censored?
365 x 24 x 7 - No down time
Instant messaging, e-mail and cell phones mean that we are available 365 x 24 x 7.
We can always be on call with no down time. The WWW has been called the "World
Wide Waste" of time.
Privacy of E-mail
Employers and schools have access to all of your e-mail and know every site you
have visited on the internet. Since employers are paying for your computer and your
time, do they have this right or is it an invasion of privacy?
Privacy vs. government oversight
Privacy: The government can access all phone messages and e-mails. Our electronic
highway pass speeds us through tolls, but it also can be used to track our movements.
Charge cards make life easier, but can profile our buying habits. Is all of this ease of use
worth the loss of privacy (Abelson, H, Ledeen, K and Lewis, H., 2008). Is Big Brother
truly watching us? Do we care?
Are printed newspapers needed?
Newspapers are failing all over the world. Do we need printed newspapers? Can
we can get enough information from the Web and TV?
Downloading music and games, good or bad?
Downloading Music and Copyright
Copyright - should we be allowed to download music and games or should we have
to pay a "royalty" each time we access them? Shouldn't the artist or author be paid?
Computer games
Many games are very violent. Does the violence harm the user or allow the user to
work out aggression is an acceptable manner? Games can be addictive - is this a
problem?
Universal medical database, a good or bad idea?
If you go to a hospital, this data may save your life. If data is available, can it be
used to deny you medical insurance or a job?
New technology makes me spend more money
97
JCSC 27, 6 (June 2012)
My TV and DVD set are great, so why should I have to replace my DVD player each
time a new technology arrives?
The world is flat vs. job opportunities
The world is "flat"; the playing field of the world is level (Friedman, TL, 2007). Due
to wide bandwidth and fiber cables connecting the whole world, jobs can be done
anywhere. Outsourcing lowers the cost of work done but takes local jobs away. Please
discuss.
Education in Asia
Students in China and India attend seven days per week and have very competitive
entrance exams for all technical schools. These developing countries may be outeducating western countries. Should we be tougher in our educational systems to compete
in the 21st century?
Facebook
Some people say that Facebook "steals your soul". What does that mean to you? Is
it true? Can you be truly you on a social web site? Can you resist accessing Facebook to
see who has been in touch with you?
Social networking
Explore what the world would be like if everyone knows everything about everyone
else. What are the ethics and dangers of social networking websites?
98
AND, OR, NOT: TEACHING LOGIC IN CS0*
Lisa N. Michaud
Merrimack College
North Andover, Massachusetts
(978) 837-3404
michaudl@merrimack.edu
ABSTRACT
The use of logical expressions is at the heart of much of what we do as
Computer Scientists. This paper addresses the centrality of Boolean
expressions as a repeating theme in an introductory Computer Science course
that serves both non-majors and Information Technology majors, and is also
a gateway to the Computer Science major. Booleans are the key to unlocking
how to express specificity to a computer; not only are they a central component
to writing computer programs, but they also play a key role in the effective use
of many information systems such as databases, spreadsheets, library catalogs,
and Google, all of which have high relevance to a diverse audience.
INTRODUCTION
Computers are unfailingly logical, even if they often appear not to be. One of the
key messages in our CS0 course is that computers do not speak human languages, despite
the invention of higher-level programming languages and user-friendly graphical
interfaces. We must still meet them partway in an intermediate form of expression that
discards the ambiguity of human communication for the precision of the machine, and a
large part of this precision is based on specificity communicated through Boolean
expressions. Unfortunately, the correct use of Boolean operators is a skill that many
beginners struggle with [1] and the connection between the linguistic names of the
operators and students' understanding of their functions can be fragile [7].
The course described in this paper is the result of ten years of pedagogical evolution
across three different institutions. Its topics touch on bits and bytes, logical gates, and the
basics of computer architecture, operating systems, programming, information systems,
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
99
JCSC 27, 6 (June 2012)
and the Web. It satisfies a core distribution requirement under a STEM designation,
which requires that students be exposed to the fundamental mathematics and science
underlying the topic. It also serves as the first course of our Information Technology
major and a gateway course for recruiting freshmen into our Computer Science major.
Like many of our colleagues in any field, I relish this opportunity to share with others the
aspects of my chosen academic pursuit that can inform their own. Many other treatments
of CS0 have focused on the universal applicability of algorithmic thinking as learned
through programming (c.f. [2, 3, 4, 5]). It can also be argued that logical thinking is as
central to empowering rational thought and argument as algorithmic thinking is to
general problem-solving [1].
To achieve mastery of these logical thinking skills, students in this course explore
Boolean expressions through units on logical gates and circuits, programming basics, and
the construction of queries on both databases and search engines in a room dominated by
majors in the liberal arts and business. There is no prerequisite knowledge for this course,
but there is a strong goal to produce students with a deeper understanding of the machine
and how it reasons, and a desire to use that understanding effectively as empowered users
and thinkers.
COURSE FORMAT
The course meets twice a week in two-hour sessions, divided equally between
lecture and lab. The nature of the course's topics is a broad-sweeping survey from the
physical interior through the software toward the interfaces between machines, with most
subjects taking about a week to cover. Students are assessed in a coarse-grained fashion
through the twice-weekly lab submissions, and more precisely through graded weekly
theoretical homework assignments, and exams. Although some of the labs focus on “user
skills,” a far stronger emphasis lies on coming away with a basic understanding of the
field as a science and the ways in which this science can shape our thought.
For complete information on the course, please see the course website at:
http://www.merrimack.edu/lmichaud/courses/csc1510
CIRCUITS
We start the course at the cellular level, beginning with an understanding of the bit
and the byte, so from the very start we encounter a piece of data that can represent yes/no,
high/low, or true/false. This lays the foundation for the repeating theme of true/false
expressions that unites the course's other topics.
The first time the concepts of AND, OR, and NOT are introduced is during our unit
on digital circuits, when the logical gates bearing those names are presented as a way of
looking at the values of individual bits and making decisions based on those values. At
this time, we go over Booleans in multiple forms, from truth tables, to Boolean algebra,
to combinatoric circuits that combine the functions of multiple gates.
I use the Digital Works freeware circuit emulator program to empower the students
to build their own circuits and experiment with their behaviors. To provide a meaningful
100
CCSC: Northeastern Conference
context for this unit, I show the students how to create a simple adder circuit using just
these tiny, physical units that operate on single bits. This small example echoes one piece
of the functionality of the whole machine, and gives a glimpse into the purpose of these
tiny gates and why we must understand them. Insignificant they may seen, but together
they can turn electricity into a primitive calculator.
A
0
0
1
1
AND
B
0
1
0
1
X
0
0
0
1
(A·B)+(D·C )
Although we do also cover the gates NAND, NOR, and XOR in this part of the
course, I focus primarily on the core three, since the others could be constructed from
them. By the end of this unit, my learning goals for the students are centered on: (1)
Knowing the behavior of AND, OR, and NOT through the truth tables for each; and (2)
Understanding how we can create larger expressions by combining their behavior. These
goals are repeated alongside the elements of AND, OR, and NOT throughout the rest of
the course.
PROGRAMMING
After the students have mastered the nature of the physical machine, we progress to
learning how to communicate our desires to it. We talk about basic programming
concepts using Scratch, MIT's introductory environment for learning to program [6]. As
we cover the control structures available, we learn the IF, IF/ELSE, and
REPEAT-UNTIL constructs, all of which rely on Boolean expressions.
Since Scratch variable values do not explicitly include the Boolean type and there
are few value-returning functions, almost all Boolean expressions in Scratch involve
comparative operators. These are fairly easy for students to grasp:
Boolean expression pieces have a unique elongated hexagonal shape in Scratch's
graphically-based, click-and-drag environment. Complex
expressions using AND, OR, and NOT contain hexagonal
holes to remind the students that what goes in each
sub-expression is another Boolean expression:
101
JCSC 27, 6 (June 2012)
At this time, we review the behavior of AND,
OR, and NOT, and reinforce how they work in
Scratch the same way they work in circuits, and
how we can build expressions from smaller
expressions in the same way we did using Boolean
algebra and gates. In the first class, therefore,
students who have never programmed before are
writing conditional branching using simple Boolean
expressions to respond to the result of a flip of a
coin.
Soon after, they are building complex expressions checking for numbers that occur
with certain ranges:
Because we have already spent a week on the functionality of the three core Boolean
operators, the leap from simple expressions to complex ones is an easy one to make.
DATABASES
Subsequent to learning how to create our own tools through writing computer
programs, we delve into the effective use of existing computational tools for exploring
data. In earlier iterations of this course, this included an extensive unit on spreadsheets,
focusing on the use of functions, formulas, and data visualization, and in that unit I
covered the conditional function IF() and the functions AND() and OR(), continuing to
build on our understanding of these Boolean elements. In order to make room for other
content, this unit has been reduced to a focus on the data visualization aspect and the
effective communication of numeric data. I still, however, spend significant time on the
construction of database queries using the language SQL and on the use of Boolean
expressions in query selection criteria:
SELECT name, animal, breed
FROM pets
WHERE owner = "Barbara" AND NOT animal="rabbit";
Because we construct the SQL directly on the command line using MySQL clients,
AND, OR, and NOT explicitly resurface here. Although how they function within their
context has changed slightly - now specifying qualities that must be true for a record to
be returned from the query - their core meaning is the same as in the previous units, and
reinforces the way in which they combine logical statements. The textual nature of SQL
queries allows us to build the expressions in a parallel fashion to the Boolean algebra in
the earlier section; and it has been my experience that the explicit construction of the
Boolean expressions directly with their operators is more accessible to a non-major
audience than a GUI-based environment such as Microsoft Access, whose criteria
interface makes the distinction between AND and OR harder to grasp.
102
CCSC: Northeastern Conference
WEB QUERIES
In a new unit that has developed as the result of a long collaboration with a research
librarian at my institution, the component of the course that starts with the fundamentals
of networking incorporates another kind of query as the students are taught how to
leverage the information available on the web with something more powerful than simple
Google keyword searching. We combine advanced Google searches and specialized
article database research with the final installment of AND, OR, and NOT as powerful
tools to restrict results returned in a search to only those relevant to our intentions while
not excluding results that may involve related terms:
Although we motivate the use of the Boolean operators with an animated video on
how they work in this context, by this final unit in the semester, students might see
Booleans as old friends; they are certainly not strangers.
CONCLUSION
Homework assignments and exams across the curriculum assess the students'
mastery of AND, OR, and NOT using tasks such as: Evaluate the output of Boolean
circuits given input values to the circuit; Evaluate the value of a Scratch Boolean
expression given the values of the variables; Create Scratch Boolean expressions for
specific purposes; Indicate how a program fragment using conditional branching or
logic-controlled repetition would execute; Interpret or write SQL queries; and Give
examples of web queries that would use Booleans to narrow or expand results.
Performance on these tasks indicates that most students in the course finish the semester
with a strong grasp of the use of AND, OR, and NOT. Other course content included
exercises on compression, understanding the fetch/execute cycle, learning about CPU and
RAM management, programming, and the basics of TCP/IP communication and secure
web connections. In the Fall 2010 semester, 72% of the students in my sections finished
the semester with As or Bs.
Other educators (cf. [5]) have also noted the efficacy of learning a concept in one
context and then reinforcing it by "re-coding" in another context to reinforce the
abstraction through a kind of spiral learning. This level of comfort with Booleans would
probably not be in evidence if it were offered in a single unit and not reinforced in
multiple ways. This is not to say that the students all embrace Booleans with enthusiasm;
certainly, the second (and sometimes third) time they see AND, OR, and NOT is
inevitably greeted by groans - but these groans evince familiarity. In a curriculum
inspired by the liberal arts where other general education requirements include Philosophy
and there is a strong emphasis placed on argument and reason, an emphasis on logic in
a science/mathematics course provides connecting tissue between what might otherwise
103
JCSC 27, 6 (June 2012)
seem diverse areas of thought. Finally, for users of technology who (even if they never
write another program) will continue to craft queries to search catalogs, databases, and
the Web, these elements have real and lasting relevance persisting beyond the semester,
which is an ideal goal for any content in a general education course.
REFERENCES
[1] Almstrum, V., Limitations in the Understanding of Mathematical Logic by
Novice Computer Science Students, PhD thesis, University of Texas at Austin,
Austin, TX, 1994.
[2] Anewalt, K., Making CS0 fun: an active learning approach using toys, games and
Alice, Journal of Computing Sciences in Colleges, 23, 98-105, 2008.
[3] Brady, A., Cutter, P., Schultz, K., Benefits of a CS0 course in liberal arts
colleges, Journal of Computing in Small Colleges , 20, (1), 90-97, 2004.
[4] Cliburn, D., A CS0 course for the liberal arts, SIGCSE Bulletin, 38, (1), 77-81,
2006.
[5] Gudmundsen, D., Olivieri, L., Sarawagi, N., Using visual logic©: three different
approaches in different courses - general education, CS0, and CS1, Journal of
Computing Sciences in Colleges, 26, (6), 23-29, 2011.
[6] MIT Media Lab, Scratch: Imagine, Program, Share, scratch.mit.edu, retrieved
November 13, 2011.
[7] VanDeGrift, T., Bouvier, D., Chen, T., Lewandowski, G., McCartney, R., Beth
Simon, B., Commonsense computing (episode 6): logic is harder than pie,
Proceedings of the 10th Koli Calling International Conference on Computing
Education Research (Koli Calling '10), ACM, New York, NY, USA, 76-85,
2010.
104
HANDS-ON COMPUTING WITH ARDUINO*
TUTORIAL PRESENTATION
John Vaughn
Dept. of Mathematics and Computer Science
Hobart and William Smith Colleges
Geneva, NY 14456
315-781-3906
vaughn@hws.edu
This tutorial demonstrates an effective way to introduce students to computer
hardware projects while requiring only a very modest background in computer
architecture, electronics, and programming. Often a single term of Java or C++
programming and some instruction in very basic circuit theory allows students to design,
build, and implement their own embedded projects including mobile robots, kinetic
games, alarm clocks, weather monitors, wireless networks, and biological sensors.
Designs and code from student projects are shared through a number of outlets such as
github, SourceForge, YouTube, and Arduino Playground.
OVERVIEW
Arduino is the collective name for a small, single board computer used in numerous
Make Magazine and Maker Faire projects including mobile robots, wearable computers,
LED displays, human interface prototyping, environmental sensors, wireless networks,
and more. This tutorial illustrates the open source hardware and software tools available
for prototyping using Arduino, briefly shows how to create simple Arduino applications,
illustrates how Arduino shields enhance functionality, and demonstrates some advanced
topics such as networking, Wire library, and I2C sensors. The material is chosen to
illuminate connections with topics found in many traditional computing courses.
TUTORIAL AGENDA
1. What is Arduino?
2. Setting up the IDE
3. Connecting the Arduino board
4. Compiling, downloading programs
5. Blink, a new "Hello World"
___________________________________________
*
Copyright is held by the author/owner.
105
JCSC 27, 6 (June 2012)
6. Shake, rattle and roll: essential servo theory and control
7. Going analog, Sharp sensors, PIR
8. Synthesis: looking around for a friend
9. Arduino as enabler for the personal computer
10. Data collection and storage
11. Networking using Zigbee
MATERIALS
Participants will have access to all tutorial presentation slides along with source code
for projects, project designs, and links to resources for further exploration. The presenter
will have a small number of Arduino boards available to illustrate various shields and
software used in student projects.
REFERENCES/SOURCES
[1] http://www.arduino.cc/playground/Projects/ArduinoUsers, retrieved December
27, 2012.
[2] Margolis, M., Arduino Cookbook, Sebastapol, CA: O'Reilly
106
COLLABORATION TECHNIQUES FACILITATE STUDENT
LEARNING*
PANEL DISCUSSION
Carolee Stewart-Gardiner, Kean University, Union, NJ 07083 cstewart@kean.edu
Mary V. Connolly, Saint Mary's College, Notre Dame, IN 46556
connolly@saintmarys.edu
Margaret Menzin, Simmons College, Boston, MA 02115 menzin@simmons.edu
David Arnow, Brooklyn College, Brooklyn, NY 11210 arnow@acm.org
Jeffrey A. Stone, Penn State University, Schuylkill Haven, PA 17972 stonej@psu.edu
Collaboration is a significant tool that many CS faculty have used to encourage and
assist student growth. But there are serious problems with collaboration in a classroom
setting. This panel will discuss the following questions, and share some best practices that
have helped with student collaboration. 1.)What are the skills and attitudes students need
to learn from team participation? 2.) What can professors do to teach our students the
value of real collaboration for more effective student learning? 3.) What can we as
faculty, and what can collaboration tools, do to enable collaboration readiness? The panel
will address concerns that collaboration brings out good aspects and difficulties in a
classroom setting. The panel will share their experiences with enabling effective student
collaboration, especially, ways we can separate grading from project work, enough to
facilitate the team-work process, but not so separate that students see the team projects
as irrelevant.
Carolee Stewart-Gardiner (moderator) - How do we facilitate students learning WITH
each other? a) Many students think collaborative team work is a way to do less work, by
dividing up the assignment. b) The students often do not read each other's work, and
often the parts do not fit together well. c.) Many students think they can lean on a partner,
so they do not have to work. d.) Many students say their team quarrels too much over
what needs to be done, and waste time. e) What forms of communications are necessary
for collaboration readiness? f.) Many students say they do not want to work in a team,
because they do not trust the partner to do the work, correctly. How can we help students
learn how to facilitate each other, without doing the work for each other? g.) Many
students say they do not want to work in teams because some partners do not do their
___________________________________________
*
Copyright is held by the author/owner.
107
JCSC 27, 6 (June 2012)
share of the work, and they will have to do all the work, or their grade will suffer. How
do we encourage real collaboration? We propose a Desired Skills and Attitudes list that
students should learn using collaboration.
Mary Connolly - Saint Mary's uses collaborative learning in a variety of courses. Our
experience shows that students should be able to take responsibility for their own learning
before they are ready to work in collaboration. Collaboration must be fostered in early
courses as students make the transition from HS to college. Students also need to look
ahead, to prepare for collaborative work they can expect in the work place. Inviting recent
alumnae to talk to students about the work environment helps students see the importance
of team work. Educating students for successful team work is a critical part of the
curriculum. Before students are ready to tackle a long team project, they need to learn
how to work routinely as a team. Many of our courses do weekly in-class activities in
teams. Usually these involve reading before class followed by an in-class activity.
Students are responsible for learning the material in such a way that every team member
masters the material. Each team assesses their learning and their group work. The
instructor serves as a resource. Recently, we see less resistance to collaborative learning.
Our senior CS courses are organized around collaborative learning. Individual assessment
tools, group projects, and success in the work place after graduation all indicate to us that
this is an effective approach.
Margaret Menzin - Two methods we use to encourage collaboration are practicing
collaboration in labs, and providing students at the start of a project with a grading rubric
which rewards collaboration. Students practice collaboration before major projects are
assigned, by collaborating on ungraded labs. In lab I walk around the teams and comment
"Now get everyone to understand/contribute". It helps if lab seating is arranged in pods,
rather than in rows. Before I assign a (graded) project, I hand out the form on which
students will be asked to evaluate all members of their team (incl themselves) at the end
of the project. My class introduction highlights the 'team spirit' matter. I inform students
that I first grade the project as a whole, and then adjust their individual grades up or down
depending on team evaluations. I find the emphasis on team spirit improves cooperation
considerably (though there are still dysfunctional teams) The team evaluation form lists
the skills which are needed for completion of the project and has room for free-form
comments. Depending on the project, it includes a sentence saying that no student is
expected to contribute equally on all parts. Each skill is worth 5 or 10 points, and "team
spirit" is always worth 10 points. Examples of team evaluation forms with grading rubrics
will be provided to panel attendees.
David Arnow - In my department collaborative work is only rarely fostered, and viewed
by some with skepticism. In the software development class students have no experience
with teamwork. In 2011, I changed my approach to team development in 3 critical ways:
1.)Team composition is determined early, for academic team homogeneity, and ethnic and
gender balance. 2.) Teams work on projects that start small, and over the term increase
in complexity. 3.) Teamwork is graded RELATIVE to the average performance of the
108
CCSC: Northeastern Conference
team-members in their individual work. The above arrangement seems to solve many of
the common problems associated with collaboration. Academic similarity decreased
project take-over by one student, and increased collective trust and teammate confidence.
Gender and ethnic distributions protected all students from being marginalized in teams.
Starting with smaller projects allowed the teams to get used to the idea of team-work and
to gain a comfort level with their teammates in a low-stakes, and less pressured context.
The grading scheme measured team effectiveness as "added value", and created a level
playing field for the weaker and stronger students as far as teamwork was concerned.
Students took the team projects more seriously. Details on the above measures and why
they are crucial in my environment will be discussed with specific outcomes.
Jeffrey A. Stone - The Information Sciences and Technology (IST) program at my
campus is a team-oriented computing degree where students routinely collaborate on large
projects. We have learned that by integrating team-based projects early in the program,
students gradually become more comfortable with the teams and adapt their practices
based on their own experience, classroom activities, instructor feedback, and the "best
practices" discussed in class. Many of these team projects involve community partners.
Community-based projects further emphasize the importance of collaboration, promote
student engagement, and provide fertile ground for students to learn professionalism.
These projects also help students to learn the value of communication, task scheduling,
and managing clients. IST faculty prepare students for these projects through small,
team-building class exercises It is important for faculty to convey expectations for equity,
professionalism, communication, and deliverables early in the process. Joint discussions
between students, faculty, and external clients reinforce these expectations, and generate
a sense of ownership among the student team. My presentation will include examples of
class activities and team-building exercises (for attendees) that we have used to assist
students in these types of projects.
109
MOBILE APPLICATION DEVELOPMENT IN COMPUTING
CURRICULA*
PANEL DISCUSSION
Stoney Jackson, Ph.D.
Associate Prof. of CS and IT - Western New England University
hjackson@wne.edu
1215 Wilbraham Rd.
Springfield, MA 01119
Heidi Ellis, Ph.D.
Chair of CS & IT
Western New England University
Stan Kurkovsky, Ph.D.
Prof. @ Dept. of CS
Central Connecticut State University,
CT
Lori Postner, Ph.D.
Associate Prof. - Dept. of Math, CS &
IT
Nassau Community College, NY
Eni Mustafaraj, Ph.D.
Visiting Assistant Prof. - CS Dept.
Wellesley College, Wellesley, MA
Mobile application development is a hot topic that has great appeal to computing
students. Harnessing this popularity is important to our programs to help attract new
majors, retain those we have and to generally motivate learning. Many institutions are
considering offering a course on mobile application development. Some already have.
It is time to begin a discussion about developing mobile applications in our curricula.
Where does it belong? Does it belong? What are some of the challenges and risks in
creating a mobile application development course and how do we mitigate them? What
other potential offerings are there? Can it be used to attract non-majors into the major?
The panelists below present four experiences in teaching a course in mobile
application development. They will share their experiences and help start the discussion
about mobile application development in our curricula. In the first half of the session,
each panelist will present their experience including: an overview of their course; its
audience, position in the curriculum, and pre-requisites; the platform, language, and
development environment used; positives about the course; and roadblocks and negatives
___________________________________________
*
Copyright is held by the author/owner.
110
CCSC: Northeastern Conference
about the course. This explanation will provide the foundation for the second half of the
session, which will involve audience discussion of the questions identified above.
Heidi Ellis, Ph.D. - Chair of CS & IT - Western New England University
Industry Partners: In addition to being attractive to students, mobile applications
have the benefit of relatively easy deployment and broad accessibility to a range of users.
It is not surprising that many businesses are strongly focusing on mobile apps to reach
their customers and to support their business goals. However, mobile application
development faces the challenge of developing for a rapidly evolving technology resulting
in problems of version control, backwards and forward compatibility, maintenance, and
more.
The Mobile Application Development course offered at Western New England
University focuses on the development and maintenance of real-world mobile
applications. The use of real-world applications allows students to become self-directed
learners within a professional environment while understanding development for mobile
devices under real world constraints and requirements. Students developed or enhanced
two main applications. The WNE Mobile application is aimed at WNE students, and
provides students with access to course schedules, library, professor information, and
more. In addition, Financial Partners Inc. provided an application for supporting loan
initiation for farm credit bureau representatives working with agricultural business folks
in the field. This application was developed from requirements defined by FPI and with
direct input and oversight from FPI.
Stan Kurkovsky, Ph.D. - Prof. @ Dept. of CS - Central Connecticut State University,
CT
Mobile Games: Computer games gained a wide acceptance as an engaging and
motivating tool in the CS curriculum. However, designing and implementing a playable
game is a very challenging task and is best implemented in advanced courses where
students already have a sufficient experience in software development and exposure to
other CS topics. Mobile games offer an advantage of being simpler by nature and thus
easier to program. This makes it more feasible to lower-level students to develop playable
games as a part of their classroom experience.
Mobile applications are often easy for students to relate to, because mobile
technology plays an increasingly important role in the lives of today¹'s students. For many
of them, their mobile phone is replacing a desktop computer as their primary computing
device. Mobile applications and games offer instant gratification in the sense that students
can download them to their mobile phones almost immediately and show them off to their
friends. In our approach, we strive to make connections to advanced CS topics as early
in the curriculum as possible. By exposing students to a wide range of advanced CS topics
early in their academic career, our approach aims to show students that CS can be much
more exciting than coding and that there are so many areas in which programming plays
a supplementary role.
111
JCSC 27, 6 (June 2012)
Lori Postner, Ph.D. - Associate Prof. - Dept. of Math, CS & IT - Nassau Community
College, NY
Retention: One challenge of teaching in a community college is retaining students
through graduation. Many students take Computer Science I and II and then transfer to
a four-year institution. In an effort to encourage students to complete their CS degree at
Nassau Community College, we created a mobile application development course as a
2nd year elective. From an educational point of view, developing mobile applications
provides students with a new perspective on program design and efficiency. It provides
a context for discussing topics such as threads, real time applications, databases, and user
interface design. From a motivational perspective, students are thoroughly engaged. The
ability to put a program they created on their phone or table and show it to their friends
makes students want to go above and beyond the basics.
The Mobile Application Development course at NCC was offered for the first time
Fall 2011. The energy and enthusiasm of the students in the course is unparalleled in any
other course I've taught. The students have become part of the learning process. They
research ideas and contribute solutions to the class. Not only are they learning an
emerging technology, they are able to witness, first hand, the endless possibilities that CS
as a discipline provides. Although it is too early to know how the course will affect our
retention efforts, it certainly looks promising.
Eni Mustafaraj, Ph.D. - Visiting Assistant Prof. - CS Dept. - Wellesley College,
Wellesley, MA
Attracting students to programming: The generation of current students grew up
with iPods and Facebook. Mobile devices and access to the Internet are the most natural
aspect of their everyday life. With the widespread adoption of smartphones and tablets,
which are very powerful generic computing devices, it is only natural to think of how to
leverage their appeal into attracting more students (especially minorities) into
programming and Computer Science. However, developing mobile applications with the
current technologies requires that students have already completed at least two CS courses
in programming. Can we make programming mobile apps attractive and easy for
non-programmers? It turns out that we can, with the new visual programming
environment, App Inventor for Android, that uses the blocks-language technology
underlying another popular platform, Scratch. With App Inventor it is simple to create
functional apps in a matter of minutes. This is made possible by a built-in library of
powerful components that simplify the interface design and behavior programming
through event-handlers. In fact, because it is so easy to build interesting apps, very soon
students embark in very ambitious projects. App Inventor has been recently open-sourced
and this creates new opportunities for educators and hobbyists to develop new libraries
that will simplify access to more sophisticated features of the Android SDK. This means
that App Inventor can be used both as a platform for non-programmers, and as an
open-source project in which advanced CS students can make their contribution, with the
goal to make programming more accessible to everyone.
112
ALSO “YOUR” JOB TO LEARN!
HELPING STUDENTS TO REFLECT ON THEIR LEARNING
PROGRESS*
Stella Kakavouli, Panagiotis Metaxas
Computer Science Department
Wellesley College
Wellesley, MA 02481
781 283 3120 or 781 283 3054
skakavou@wellesley.edu and pmetaxas@wellesley.edu
ABSTRACT
Most of the time, the pedagogical analysis on student learning is focused on the
efforts of the teacher. There is no doubt that teacher actions can have a
profound positive effect on student learning. In this paper, we discuss what
students can do to increase their learning outcome. In particular, we describe
an instrument that facilitates students' reflection of their own learning.
Although the use of reflection on learning is not novel, its use in CS education
has not been explored extensively. Our system was developed as a result of an
experiment that we performed in a CS2 course, successfully giving students
opportunities to take control of their own learning process. One of the
attractive features of our system is that it is relatively easy for the instructor to
set up and monitor the students' progress. In our evaluation of the system, we
found that it can increase significantly the students' programming confidence
at the end of the course. Even though this paper studies the effectiveness of
introducing the “reflection questionnaires” instrument in a CS2-type course,
it can be applied to most other courses in a curriculum. We provide the
material we used in our experiment so educators can adopt them.
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
113
JCSC 27, 6 (June 2012)
INTRODUCTION
By three methods we may learn wisdom:
First, by reflection, which is noblest;
second by imitation, which is easiest; and
third by experience, which is the bitterest.
The quote above, attributed to Confucius, served as our inspirational motto for the
work we describe below. Most of the time, Computer Science Educators in a
programming course, focus on what they can do in order to improve the learning
experience of their students. We design our lectures to provide a preview of the
information our students need to master in order to be prepared for what lies ahead (that's
the imitation part). We create laboratory exercises and other hands-on activities where the
students can practice what they learned in the lectures (the experience part). In a
programming course, one can argue, attending a lecture is the easiest for students, while
writing, compiling, running and debugging a program during labs (and homework
problems) is the bitterest. But how about the first part that Confucius is referring to,
reflection?
Background
Educational researchers in the past have been primarily concerned about how to
design well-tuned course and lab materials, (too many to list here without bias, but easily
found throughout the SIGCSE publications), and how to help students with different
learning styles learn in an introductory computing course (e.g., [1,6]). However, every
student can benefit from monitoring his or her learning progress through reflection.
Although the use of reflection on learning is not novel, its use in CS education has not
been explored extensively.
While psychologists know the benefits of learning by reflection for a long time (e.g.,
[5]), not much work has been done in specializing its benefits in introductory Computer
Science courses. An important contribution is the work of [2], which was further
developed into a system that facilitates student reflection [4]. Another approach, which
requires students to file an experience report that contains a reflective part is described
in [7]. While these approaches are significant, they require a bit of teacher preparation and
involvement, and they do not appear to be widely used by the Community.
In this paper we describe a system of reflective questionnaires we designed and
implemented using Google Documents during the recent offerings of a typical CS-2 Data
Structures course. Briefly, our system works as follows: After each of the 8 programming
assignments, we required our students to complete a short ``Homework Assessment''
questionnaire that helps them reflect on their learning process. Summaries of the answers
of some of the questions were shared with the whole class at the time the homework was
due, providing extra incentive for them to complete it. We also gave a shorter version of
the questionnaire after each of the 3 midterm exams and a different, evaluative,
questionnaire after the final project. At the end of the semester, and before the project
questionnaire, we emailed back to our students their own responses to the 11 reflection
questionnaires they completed during the year. As largely a result of this process, we saw
114
CCSC: Northeastern Conference
significant increase in confidence in their programming abilities at the end of the course.
One of the important characteristics of our system is that it is very easy to create and
maintain and can be deployed, even in large classes.
THE NEED FOR REFLECTION
Like many teachers, we often tell our students that in order to learn, it is not enough
for us to teach; they also need to want to learn. But, while we, teachers, do a lot to support
our teaching, including carefully preparing lectures, review sessions, lab material,
homework assignments, etc., we leave the second part up to them. After all, what can a
teacher do about a student that does not want to learn? This, however, is not the right
question. We are rather concerned about the student who wants to learn, but has not
discovered the importance of monitoring and reflecting on his own learning.
The benefits of teaching in a one-on-one basis are well known. With carefully
chosen questions, the teacher facilitates learning through student reflection. The student
is invited to provide answers to the questions, effectively discovering knowledge through
a reflective examination of her own answers.
Unfortunately, despite its effectiveness, this method does not scale up to be used in
a classroom setting. Instead, in such a setting teachers usually employ the lecture teaching
style. The teacher can still come up with good questions in the spirit of the Socratic
method, but the questions are aimed at no particular student -- they are aimed at the class
as a whole. This is quite tricky to do consistently and does not guarantee that every
student will engage in reflectively examining his own learning progress. Lecturing,
therefore, has its limitations. It is not as effective, but it is a very efficient teaching method
as it can be applied in a large auditorium. The cost is, however, that the reflective part of
the student learning is weakened, sometimes even lost.
A couple years ago, the report entitled “How People Learn: Brain, Mind, Experience,
and School” [3], published in 2005 by the National Research Council, caught our
attention. This report synthesizes the recent research literature on learning and focuses on
three fundamental and well established principles of learning. The authors argue
convincingly that the following three principles are particularly important for teachers to
understand and incorporate in their teaching:
1. Students come to the classroom with preconceptions about how the world works. If
their initial understanding is not engaged, they may fail to grasp the new concepts
and information, or they may learn them for purposes of a test but revert to their
preconceptions outside the classroom.
2. To develop competence in an area of inquiry, students must (a) have a deep
foundation of factual knowledge, (b) understand facts and ideas in the context of a
conceptual framework, and (c) organize knowledge in ways that facilitate retrieval
and application.
3. A “metacognitive” approach to instruction can help students learn to take control of
their own learning by defining learning goals and monitoring their progress in
achieving them.
115
JCSC 27, 6 (June 2012)
It was the third principle that caught our attention, since we felt that it was an area that
was not adequately incorporated in our teaching. As a result of our early discussions, we
decided to design and employ the system we describe in this section. We wanted to
produce a simple system that includes an instrument that would be reasonably easy to
adopt. For us, the teachers, it should be easy to deploy and for the students easy to follow.
In addition, we wanted something that contains both qualitative and quantitative
components so that we can measure its success relatively easily.
Educational Context
We are teaching a typical CS-2 class at a 4-year Liberal Arts College. Our classes
have usually between 18 and 25 students, though the instrument we describe can be
adapted easily for much larger classes. In our CS-2 course we are using Java, which is
also the language used in our CS-1 course. Our students come to class mostly, but not
exclusively, from our introductory CS-1 course. A few students come to our CS-2 having
scored a 5 in the AP course, and a few others from another introductory course aimed at
students who want to major in the Sciences. This class is using MATLAB as its
programming language and the students are encouraged to learn some Java programming
on their own. In previous years we had seen two trends that we wanted to reverse. First,
despite our strong encouragement, our students were not likely to collaborate in
homework assignments, and we are strong believers that collaborating in a
pair-programming style [8] can positively enhance their experience.
Second, our students were leaving CS-2 with mostly the same level of confidence
in their programming abilities as when they entered. They definitely had more experience
with programming, but they did not feel that they had become substantially better
programmers than when they entered -- even though we, as teachers, believed they were.
In previous years, we used an entry questionnaire that was asking about their
familiarity with an array of concepts and Java keywords that we expected they had learned
in the past. We thought that knowing where our students stand, would help us adjust the
course to better cater to their needs. Even though the entry questionnaire was useful in this
respect, we found it to be disheartening to our students. The reason is that it emphasized
their non-familiarity with several concepts. After tampering with it, we found that the
following two questions were enough to provide us with the information we needed,
without being discouraging to the students.
•
How comfortable are you that you can write a short stand-alone program from
scratch?
•
How comfortable are you that you can write the code for a small class (with basic
constructors, instance vars, getter/setter methods)?
In their responses, they could select one of the following four answers: I am an expert; I
am very comfortable; I am somewhat comfortable; I am not at all comfortable. Their
responses from the last semester are shown in Figure 1. One would hope that students
coming in a CS-2 course would feel at least very comfortable in writing a short program
and a basic class. However, half of our students would not feel very comfortable. It is
116
CCSC: Northeastern Conference
clear that these answers reveal low programming confidence for the majority of our
students.
Perceptions of competence are important, however. So, we were very happy at the
end of the semester, when our students felt that they had made great progress on their
confidence level as programmers. As one can see in Figure 2, less than 10% of the
students felt that their confidence in programming had remained the same (or decreased),
while more than half felt that it had greatly increased.
While the course remained greatly unchanged from previous offerings, (same lecture
and lab material covered, same set of slides, same textbook, same requirements and same
instructor team), we also found the average final grade to increase in comparison to
previous semesters. So, both their performance and their perception of programming
abilities had improved.
We partially attribute these changes to the introduced instrument that helped the
students reflect on their learning. We describe the details of the instrument next.
Figure 1 Responses of an incoming
CS-2 class on perceived level of comfort
in writing a stand-alone program from
scratch (top) and a small class (bottom).
Figure 2 Perceived changes to the level
of confidence as programmer, from the
beginning to the end of the semester.
The x-axis indicates the number of
students.
Details of Implementation
As mentioned, we introduced a sequence of questionnaires, aiming to help students
monitor their learning progress during the semester. As an incentive, completing the
questionnaires would give students a small credit, which was incorporated in the usual
``class participation'' credit we always had.
117
JCSC 27, 6 (June 2012)
The questionnaires were given along with each of the 8 homework sets, while a
smaller version of the questionnaire was given along with each of the 3 midterm exams.
A sample questionnaire associated with a homework, requires less than 5 min. to
complete, and has the following questions:
1.
2.
3.
4.
5.
6.
How challenging did you find this homework?
“What did you learn by doing this homework?”
Time you spent in: Thinking; Programming; Testing, Documenting; Total
“What do you wish you knew before starting the homework set?”
“What would you like to explore further?”
Did you collaborate? If you collaborated with another student, was that helpful?
The first question allows selecting the level of difficulty from five choices (Very easy;
Easy; It was okay; Difficult; Very difficult). The questions about time spent (numbered
3 above) allow selecting among several time period options including ``Other.'' The three
quoted questions (numbered 2, 4, 5) are designed to help students set goals and reflect on
their own learning progress, which is the essence of the meta-cognitive approach we are
employing. In particular, each student's answers to question number 2 (“What did you
learn by doing this homework?”) document her progress in learning throughout the
semester. This is important since, at the end of the semester, all the experience is clumped
into a fuzzy memory of topics, and one forgets what challenges one had encountered on
the second or third week of the course.
Question number 4 (“What you wish you knew before starting the homework?”) was
intended to put a context in their learning, by revealing what they could have done better
before starting. We hoped that this encourages them to consider doing so for the next
assignment. Question number 5 (“What would you like to explore further?”) was
providing a data point for their changing ambitions during the semester. Since one of our
goals was to encourage collaboration among students, we included the last questions
(numbered 6 above) to gather their thoughts on collaboration as the semester progressed.
We shared the answers to some of the questions with the whole class. In particular,
the day the homework was due, we would display the graphically summarized responses
for questions 1, 3 and 6. Students were eager to know how difficult the rest of the class
found the homework and how much time others spent on it. We were also eager to share
with the class the overwhelmingly positive comments from the students who collaborated.
We observed that while there was not much collaboration recorded during the first
homework, this changed in the following weeks as the level of difficulty increased and
the comments from those collaborating revealed a largely positive experience.
We used Google Documents (http://docs.google.com) to implement our
questionnaires and process the answers. This tool makes it easy to create new
questionnaires, share them, summarize the answers, collect them on spreadsheets and
present them graphically. A sample questionnaire can be found at http://bit.ly/nlMVrV.
Towards the end of the semester, and before the beginning of the final project, we
collected into a document and sent each student her own responses from all the
questionnaires during the semester. We did so by personal email. This is something we
had announced at the beginning of the semester so students were expecting it. We believe
sharing this document is an important part of our instrument. In this document, each
118
CCSC: Northeastern Conference
student can review her progress and reflect on her semester-long learning in the course.
It also offers her a reminder, in her own words, about where she was standing at the
beginning of the course and compare it to where she is now. Lastly, it offers a reminder
of her collaboration experiences just in time as she chooses a project partner (notice that
working in pairs in the final project is a requirement.)
As we mentioned, we also had a shorter version of the questionnaire that we used
together with each exam. Since no collaboration was permitted in the exams, the last
question (experience on collaboration) was not included, while a few others were adapted.
In addition to the time it took to complete the exam, and its perceived level of difficulty,
we were asking about their perceived level of fairness of the exam (since exams are
primarily designed to evaluate their knowledge). We were not asking them to set goals,
as in the homework questionnaires, but we were asking them about what they needed to
review or learn on their own, giving them (and us) an indication on how closely they
followed the course.
Below are the questions of
http://bit.ly/oHCABc ):
1.
2.
3.
4.
5.
the
sample questionnaire (available at
How many hours did you spend working on this exam?
“What did you learn by doing this exam?”
How fair do you consider this exam to be?
How easy/difficult do you consider this exam to be?
“Did you have to refresh your memory or learn something new in order to do this
exam? If so, what?”
The results of the exam questionnaires were also included in the document we sent to the
students, mainly for completeness of their learning record.
We estimate that it takes about half hour to create the questionnaires, in the
beginning of the semester. It also takes a few minutes per student to create the documents
with the answers and send the emails towards the end of the semester. Overall, the
instructor's time commitment for implementing this instrument is minimal. On the
students' part, the time commitment is not big either. Our students reported that it took
them less than five minutes to complete each of the questionnaires, while our records
indicate that 95% of all questionnaires were indeed completed.
CONCLUSIONS
In this paper we describe a system designed to help students learn through reflection
in a CS-2 programming course, though it can be easily adapted in other programming
courses. The development of our instrument was inspired by educational research
indicating that student reflection has positive effect on their learning by setting learning
goals and monitoring them. Even though it is the student's job to do so, an instructor can
facilitate the process by utilizing an instrument, like the one we describe here.
Our instrument consists of a sequence of questionnaires associated with each
homework set and each midterm exam. In addition to the usual questions that inform the
teacher about the perceived level of difficulty and time spent on each assignment, the
questionnaires include questions which encourage students to reflect on their learning, set
119
JCSC 27, 6 (June 2012)
their own goals and monitor their progress towards achieving them, over the course of the
semester.
An important aspect of our instrument is that the students receive a record of their
own responses towards the end the semester. This helps them realize their progress, which
results in increased confidence in their programming abilities. One important
characteristic of our system is that it can be implemented and set up with relative ease,
making it possible to be adopted by other instructors. It is also ``scalable'' as it can be used
in large classes without significant increase in teacher effort.
In our instrument we also included specific questions about collaboration, showing
how one can augment the instrument so that it achieves some extra objectives without
losing focus. In the final questionnaire, three fourths of the students indicated that they
had a great experience collaborating in the final project while no one found collaboration
less than helpful. We believe that student reflection is a very powerful though
underutilized educational principle, and we hope that other faculty will make use of our
system. In particular, it would be very interesting to have a controlled evaluation of our
system in a two-section class.
REFERENCES
[1] J. Allert. Learning style and factors contributing to success in an introductory
computer science course. IEEE Intl Conf on Advanced Learning Technologies,
0:385--389, 2004.
[2] A. Fekete, J. Kay, J. Kingston, and K. Wimalaratne. Supporting reflection in
introductory computer science. SIGCSE Bull., 32:144--148, March 2000.
[3] Center for Studies on Behavior and Development. How Students Learn: History,
Mathematics, and Science in the Classroom. Nat. Res. Cent.,
http://bit.ly/prH62Y, 2005.
[4] J. Kay, L. Li, and A. Fekete. Learner reflection in student self-assessment. In
Proc of the 9th Australasian Conf on Computing Education - V. 66, ACE '07, p
89-95, 2007.
[5] M. Lawson. Being executive about metacognition. Cognitive Strategies and
Educational Performance, E. Kirby (ed), 1984.
[6] L. Thomas, M. Ratcliffe, J. Woodbury, and E. Jarman. Learning styles and
performance in the introductory programming sequence. SIGCSE Bull.,
34:33--37, February 2002.
[7] T. VanDeGrift, T. Caruso, N. Hill, and B. Simon. Experience report: getting
novice programmers to think about improving their software development
process. In SIGCSE '11, p. 493-498.
[8] L. A. Williams and R. R. Kessler. All I really need to know about pair
programming I learned in kindergarten. CACM, 43:108--114, May 2000.
120
EMPHASIZING ETHICS AND PRIVACY PRESERVATION IN AN
UNDERGRADUATE DATA MINING COURSE*
Trudy Howles
Computer Science Department, Rochester Institute of Technology
102 Lomb Memorial Drive
Rochester NY 14623
585-485-4937
tmh@cs.rit.edu
ABSTRACT
In recent years, many universities have begun to integrate data mining into
undergraduate elective offerings, and data management and data mining have
evolved into important academic disciplines. Although many universities now
offer undergraduate-level courses in data mining and several excellent texts are
available, few courses or books focus on other critical data mining concerns
such as ethics, security and privacy issues. This paper describes an initial
course offering in which a privacy preserving data mining module focusing
specifically on protecting privacy and the identity of the data owner was
infused into an undergraduate data mining course.
INTRODUCTION
Each time a person travels, visits a web site, uses a credit card or makes a cell phone
call, a record of the event is most likely collected and stored [2, 5, 6]. Data mining is the
practice of looking for patterns in data to find previously unknown patterns - for example
the data mentioned above. Often times, data mining results are used for marketing
purposes, and consumers are happy to receive coupons or advertisements targeted to
interests and previous spending habits.
When releasing or publishing statistics or the results of data analysis, are names or
other identifying or sensitive features anonymized to protect individuals' privacy?
Clearly, these are important issues that must be emphasized in any data mining course.
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
121
JCSC 27, 6 (June 2012)
Another more difficult, yet equally important issue is data aggregation, commonly known
as the inference problem. Sweeney [16] described the inference or aggregation problem
as combining data that may define only the "shadow" of a person or organization,
combining with other data, and determining a specific identity. Most concerning is that
often times, the "other data" may be easily accessible data contained in public records
including tax logs, real estate transactions or police reports. Sweeney's experiments used
1990 U.S. Census summary data. She found that 87% (216 million of 248 million) of the
population in the United States had reported characteristics that likely made them unique
based only on a postal zip code, gender and date of birth [15]. In short: data mining must
ensure that attempts to identify individuals, either for malicious reasons or due to
dangerous curiosity, are not successful - or at least not easy.
This paper addresses the domain of privacy preserving data mining (PPDM)
involved with protecting data so that regardless of its use, privacy is ensured if the data
changes hands or is combined with other data sets. In other words, mine the data but limit
the ability to determine and disclose anything about the individual the data describes.
Consistent with Ahluwalia and Gangopadhyay's [1] and Vaidya, Clifton & Zhu's [18]
narrowing of the PPDM domain, the techniques are most critical when the data is
distributed or shared.
Background
Data mining is a relatively new academic discipline; Computing Curricula 2001
recommended data mining as an information management elective [12]. In 2006, the
ACM SIGKDD Curriculum Committee proposed a curriculum model [14], and many
universities have reported new data mining courses in the undergraduate curriculum.
Course offerings have had several focuses; some include hands-on applications [9],
research strategies and applications [4, 11, 13] ethics [8] and strategies and advanced
topics [10]. Data mining principles have also been taught outside the CS discipline [7].
It was difficult to find explicit evidence of ethics or privacy activities in most
undergraduate data mining courses, and most current textbooks provide shallow treatment
of privacy, security or ethical issues [3, 17, 20].
Project Goals
To introduce PPDM, the lecture materials started with a module on ethics. Although
ethics were always considered a critical component of the course, the material was
expanded to include coverage of ethical issues when combining data sets to emphasize
the inference problem.
Students were provided examples in which data was anonymized using simple
techniques such as data rotations, random selection, additive or multiplicative
modification, binning, or generalization. Students were also provided examples where
identities could be traced back to specific individuals in the way the results or rules were
presented. Certainly, the in-class discussion was not an exhaustive look at techniques, but
it did provide students with enough background to creatively think about other methods
they could employ. The capstone project for the PPDM module was a research-based
122
CCSC: Northeastern Conference
approach using known techniques, with an evaluative component using Weka. Weka is
an open-source data mining package that was developed at the University of Waikato in
New Zealand. Weka was selected because it is free and easy to acquire, and Weka's
implementation in Java allows for easy analysis of the code to fully understand the
operation, and routines can easily be modified to fit specific needs, or experiment with
"what if" scenarios.
METHODOLOGY
Students were provided with an artificial but realistic data set representing donation
data. There were 7500 instances consisting of 26 attributes representing donation
amounts to various charities, store loyalty card memberships, and coded demographic and
preferences (magazine subscriptions, clubs and organization membership). Donors were
classified into six donation levels representing the likelihood they would donate again in
the future. The final goal was to identify the sensitive data attributes, somehow
anonymize the data, and evaluate the anonymization efforts. The assignment had few
restrictions as described below; students were encouraged to "think outside the box" and
experiment with different approaches and techniques. Students were allowed to work
individually or with another student in the class with most students electing to work with
a partner. Project solutions had to work with the provided donation data set and be
generalizable to other data sets.
The first step was to clean the data to identify and handle data errors; some attributes
were incomplete or contained inconsistent values. Students had already been exposed to
a data cleaning module in class as well as a homework assignment. Some teams also
spent time determining how, or if, to reduce the dimensionality.
The next step was the design and implementation of the preprocessor software. The
preprocessor had to take a standard Weka-ready data file and anonymize the data based
on specific privacy tags. Weka-ready files must be in a specific format - .arff format.
Files in .arff format include specific @tag parameters to identify the data's attributes; all
data is comma separated. Detailed information on .arff file formats may be found in [19].
Preprocessors had to also support at least one additional tag introduced for this
assignment: @secure <attribute_name>. This tag was used to identify the attributes
identified as sensitive that could easily lead to the identification of an individual. The
goal was to anonymize the data enough so that the data owner's identity and actual data
values would not be disclosed, but the utility of the data would not be drastically impacted
during the process. Utility is defined as the usefulness or accuracy of the data after
anonymization methods have been applied to the original data. The students quickly
realized that designing the policies for handling the data while not heavily impacting the
results was not an easy problem.
The requirement to use Weka was intended to provide students with a tool to help
in the evaluation process. Students ran their classification models using the original data
and compared the results with the results using their anonymized data to see how much
their modifications impacted the utility of the data. Classification was chosen over
123
JCSC 27, 6 (June 2012)
clustering because of the limited work on perturbation approaches when using clustering
algorithms [18].
Projects were ultimately graded on several criteria including the amount of effort and
creativity, with the analysis of the results being the biggest component. Students were
required to discuss how they cleaned the data, designed the preprocessor, anonymized the
data, and evaluated their changes. They were also required to include a reflective
component to determine if modifications could be generalized to other data sets, and
overhead cost projections.
RESULTS
Several student teams took unique approaches to tackling the project. One team's
approach was to use binning and randomization to anonymize the sensitive data attributes.
They binned the data values (partitioned the data into ranges; for example for values
ranging from 1-100, set bins of width 10, resulting in values from 1-10, 11-20, 21-30, and
so on). In each instance, they swapped the sensitive values with another value from a bin
+/- one bin away. They randomized both the number of sensitive attributes that would be
perturbed, and whether the value would be reassigned from the bin above or below, or not
at all. They balanced the weights so they could control whether a value would be more
likely be selected from the bin above or below to account for bins with very different
membership levels (i.e. one with 2000 and one with 50 values), that were adjacent to each
other. This was to prevent moving too many elements into the smaller grouping which
would significantly distort the data. Students documented that this approach was expected
to work well because the random changes introduce enough doubt about the actual values
that anyone should have difficulties connecting the data to an individual. Since a random
number of elements were changed a random amount, recreating the original data seemed
very unlikely. However, they acknowledged that although their approach allowed for
many opportunities for data attributes to be changed within an instance, the modifications
may have been too minimal to secure the original data.
Several teams researched and implemented versions of Sweeny's Datafly algorithm
for achieving k-anonymity [15]. The k-anonymity algorithm identifies quasi-identifiers,
a set of attributes that could be combined to make a near-unique key, and ensures that at
least k instances match the quasi-identifier. As k increases, the number of instances with
the same quasi-identifiers also increases. This reduces the chance that an individual could
be identified, but also means that the data is probably perturbed much more to satisfy
k-anonymity, often reducing the utility of the data.
One student team's implementation of the Datafly algorithm continued to run until
there were < k instances that did not meet k-anonymity, at which time those instances
were suppressed entirely. They suggested modifications that would allow for a manual
anonymization of instances not satisfying k-anonymity in cases where it was important
to retain all instances in the data set.
Another team implemented k-anonymity and looked at different approaches for
generalizing the data based on groupings of values in the quasi-identifiers. Instead of
trying to determine a single set of rules for generalizing the quasi-identifiers, they built
124
CCSC: Northeastern Conference
separate rules for the instances in groups in which the values were not similar. They
suggested a preemptive measure in the data cleaning phase to analyze and identify
important patterns or suspected extreme values and consider their impact on the
algorithm's results. This may be possible with a relatively small 7500-instance data set,
but may result in an unrealistic amount of effort or computation time, especially with
much larger data sets.
One interesting outcome was that most teams made specific comments regarding the
efficiency of their algorithms. One team's preprocessor read in the raw data to create an
initial 30/70 random split of the data to use as the training and test sets. They ran several
filters to process the quasi-identifiers and perturb the data; each ran in linear time. After
filtering, their implementation of the Datafly algorithm executed; this ran on the order of
O(n2). They also cited the creation of many expensive Weka objects for each instance,
resulting in a relatively high processing and memory overhead. Overall, their
implementation was slow with extremely large datasets, with execution time dependent
on the value of k and the number of attributes tagged as secure. Future enhancements
included more efficient memory management, and multithreading portions of the
algorithm execution.
Another interesting observation was the exposure to scalability problems; solutions
that looked promising on paper did not work when processing large files or in algorithms
where many iterations were necessary, as was the case in this project. Student teams
commented on these issues, and made insightful comments regarding processing times
with a "real world" data set that may contain an excess of several hundred thousand
entries. The project provided an opportunity for students to apply multithreading and
other efficiency speed up techniques, and the need to use more efficient data structures
and methods.
CONCLUSIONS
It should be emphasized that the data mining course was open to all students who
had taken at least a full year of programming and a statistics course, so sophomore to
senior-level students were in the class. There was no observed difference in the ability
to complete the project, and grades were not skewed based on year level. Certainly, some
project submissions were much better than others.
Trying something new and unique is always somewhat risky, and certainly, lessons
were learned. Several teams tended to over-simplify the problem, thinking that a blind
modification of the data was a sufficient anonymization technique. They underestimated
the difficulty in retaining a high utility of the data, and in designing a preprocessor that
would work for a variety of generalized data sets. Most teams admitted that they probably
did not do an adequate job evaluating their results. Indeed, evaluation is difficult given
the uncertainty of patterns that may be exposed in the anonymized data, and the ever
increasing persistence of individuals to exploit weak data guards and systems. Clearly,
this was an issue with the entire project, and one that remains a key research issue today
[1, 16].
125
JCSC 27, 6 (June 2012)
Student feedback indicated that students expressed an interested in doing the "right"
thing when handling data. Further, they recognized the responsibility of the data miner
to be respectful and aware of the ethical implications of data mining. The intentional
emphasis on privacy and safety helped students recognize the ethical and practical issues
in both in how they use the data and how they release the results. The next offering will
focus on the research and current methods to evaluate the ability to reverse engineer
anonymized or obfuscated results, and incorporate different projects and data sets.
REFERENCES
[1] Ahluwalia, M. V. and Gangopadhyay, A. Privacy preserving data mining:
Taxonomy of existing techniques. In Computer Security, Privacy, and Politics:
Current Issues, Challenges, and Solutions. Ramesh Subraminian, Ed. IRM
Press, Hershey, Pa., 2008.
[2] Bart, P. Data can't disguise demo divide, 2011,
http://www.variety.com/article/VR1118034094?refCatId=1009, retrieved August
7, 2011.
[3] Bramer, Max. Principles of Data Mining. Springer-Verlag, London, 2007.
[4] Chen, P., Chen, I., and Verma, R. Designing an undergraduate data mining
course by matching teaching strategies with student learning styles. Journal of
Computing Sciences in Colleges, 26,4, 49-56, 2011.
[5] Grant, I. Extent of personal data collection is underestimated, 2009,
http://www.variety.com/article/VR1118034094?refCatId=1009, retrieved August
7, 2011.
[6] Gray, S. Browser beware: Washington weighs online consumer privacy, 2011,
http://www.time.com/time/nation/article/0,8599,2059237,00.html, retrieved
August 7, 2011.
[7] Jafar, M. J., Anderson, R. and Abdullat, A. A. Data mining methods course for
computer information systems students. Information Systems Education Journal,
6, 48, 2008.
[8] Lawler, J., and Molluzzo, J. C. A study of data mining and information ethics in
information systems curricula. In Proceedings of ISECON, Columbus Ohio,
2005.
[9] Lopez, D., and Ludwig, L. Data mining at the undergraduate level. In
Proceedings of the Midwest Instruction and Computing Symposium, Cedar Falls,
IA, 2001.
[10] Musicant, D. R. A data mining course for computer science: Primary sources
and implementations. In Proceedings of ACM SIGCSE, Houston, Tx., March
2006, 538-542, 2006.
126
CCSC: Northeastern Conference
[11] Rahal, I. Undergraduate research experiences in data mining. In Proceedings of
ACM SIGCSE, Portland, Or., March 2008, 461-465, 2008.
[12] Roberts, E., and Engel, G. (Eds.). Computing Curricula 2001: Final report of
the joint ACM/IEEE-CS task force on computer science education. IEEE
Computer Society Press: Los Alamitos, CA, 2001.
[13] Schmidt, C. Lessons learned in the design of an undergraduate data mining
course. Journal of Computing Sciences in Colleges, 26,5, (May 2011), 189-195,
2011.
[14] Soumen, C., Ester, M., Fayyad, U., Gehrke, J., Han, J., Shinichi Morishita, S.,
Piatetsky-Shapiro, G. and Wang, W. Data Mining Curriculum: A Proposal
(Version 1.0), 2006, Published by the Intensive Working Group of the ACM
SIGKDD Curriculum Committee www.sigkdd.org/curriculum/CURMay06.pdf,
retrieved June 2, 2011.
[15] Sweeney, L. k-Anonymity: A model for protecting privacy. International
Journal on Uncertainty, Fuzziness and Knowledge-based Systems, 10, 5,
557-570, 2002.
[16] Sweeney, L. Medical Informatics: Datafly System, 2009,
http://latanyasweeney.org/work/datafly.html, retrieved June 2, 2011.
[17] Tan, P., Steinbach, M., and Kumar, V. Introduction to Data Mining. Pearson
Education, Inc., Boston, 2006.
[18] Vaidya, J., Clifton, C. W., and Zhu, Y.M. Privacy Preserving Data Mining.
Springer, New York, 2006.
[19] Weka 3: Data Mining Software in Java. n.d., www.cs.waikato.ac.nz/ml/weka/,
retrieved August 18, 2011.
[20] Witten, I. H., and Frank, E. Data Mining: Practical Machine Learning Tools
and Techniques. Second Edition. Morgan Kaufman Publishers, San Francisco,
2005.
127
TEACHING MOBILE COMPUTING USING CABANA*
Paul E. Dickson
Hampshire College
School of Cognitive Science
893 West St.
Amherst, MA 01002, USA
(413) 559-5861
pdickson@hampshire.edu
ABSTRACT
Mobile computing is a growing market and an area of increasing interest to
students. To answer our student demand we decided to develop a mobile
computing course but one with a focus on interface and application design
rather than implementation. The course is designed for a student audience
ranging from novice programmers to experts. Using Cabana as our platform,
we were able to achieve this end while also enabling our students to build
functioning mobile applications. Cabana enables rapid interface design and
application development without the learning curve of more traditional mobile
application building. In this paper we describe our project-based curriculum
and discuss its successes and failures.
INTRODUCTION
The design of our mobile computing course at Hampshire College was largely
influenced by the makeup of our student body and the backgrounds of the students likely
to take such a course. We do not have predefined majors, and we have only two computer
science professors. As a result our students who focus on computer science have a varied
background in the field since they take many computer science courses at other campuses.
Because of this we cannot offer a more traditional mobile computing course that expects
students to be further along in their computer science education and able to rapidly pick
up a new environment. In this paper we include no grading rubrics because Hampshire
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
128
CCSC: Northeastern Conference
does not have grades, and notes on how we compiled our written evaluations would likely
not prove useful to other educators.
We therefore decided to focus our mobile application design course on interface
building and general application design, taking an application from the design board
through usability testing. This skill set is useful for any level of computer scientist. This
also enabled our more advanced students to do more ambitious projects without inhibiting
our more general education and lower-level computer science students. We facilitated the
development of the applications and their revision by running the course similarly to a
studio arts course, with half of all class time (one day a week) spent having the class
critique everyone's work.
In order to focus on design, we decided to use Cabana [1] to build our mobile
applications. Cabana (then in beta testing) was developed by Department of Behavior and
Logic (DOBL) and provides an environment that can create web-based mobile
applications or device-based applications for iOS or Android [3].
RELATED WORK
With the growing interest in mobile application development, the number of mobile
computing courses offered has rapidly increased and papers have been written on the
subject. The focus of many of these papers is quite reasonably on specific platforms and
how to integrate them into a given campus environment. Rogers [10] and Ivanov [6]
focused on developing for Apple's iOS and describe the rigors of getting courses that use
iOS up and running on a college campus. They both discuss setting up the agreement with
Apple to be able to develop on device for free and on the difficulties of developing
courses for a moving target like the mercurial iPhone SDK. They also describe the
necessity of learning Xcode, Objective-C, and Cocoa prior to iOS development, which
was similar to our own experience [2].
Other papers focused on the environment used for mobile application courses [4, 5].
Fenwick et al. [4] argued that Android is the better platform because of Apple's making
iOS a closed platform. Goadrich and Rogers [5] made more of an even argument about
which platform is better. When they presented their paper, it became clear that the Mac
user preferred iOS and the non-Mac user preferred Android, making their point that
operating system preference had as much influence as anything else. Blackberry also has
educational programs for schools and courses that use their hardware [9].
One theme common to these papers is that there is a learning curve for developing
on whatever platform is chosen. The courses tend to be aimed at upper-level students who
can more easily pick up a new environment and/or programming language. Kurkovsky
[7] reinforced the point that this material is best suited for upper-level students when he
described how developing mobile applications can help students gain experience working
on computer networking, database management, etc., which are all higher-level concepts.
The entry point to mobile development does not have to be at a high level. Google's
App Inventor [11] is designed to make mobile development accessible to a CS1-level
audience. It uses a block programming interface and is easily learned. Unfortunately, this
129
JCSC 27, 6 (June 2012)
block language that makes it so accessible to new programmers can be frustrating to
upper-level students who are comfortable writing code.
We chose to use Cabana [1, 3] because it provides an easy interface for newer
programmers to learn while allowing advanced programmers to write more complex
programs. It uses a wiring diagram approach for programming [3] but also allows
developers to create their own modules that can be wired in. These custom modules can
be written in JavaScript and can be as complex as the programmer desires. Cabana gave
us the best combination of features to make our mobile application course accessible to
multiple levels of students and that it would enable us to focus on design and testing
rather than on learning SDKs for development. Cabana does not give the level of control
of application development found with SDKs but enables the development of many
complex applications.
One other option was to develop mobile applications that were web-based, and the
Google Web Toolkit makes this quite feasible. Loveland [8] used this toolkit to enable
students to build mobile applications in a human-computer interaction course in a manner
similar to what we decided to do with our course. The advantage we see in Cabana is that
it can work for web development or for on-device development for iOS or Android.
COURSE ORGANIZATION
The goal of this course is to teach mobile application development with an emphasis
on design and usability. To this end the course was built around a series of application
design projects. Each application was built over a series of homework assignments and
design was facilitated through class discussions of student work. The course was divided
into two major sections; the first was devoted to learning Cabana while the second related
to building a single large application. An exact breakdown of material can be found at the
course syllabus webpage
http://helios.hampshire.edu/~pedcs/classes/cs227Spring11/syllabus.html. The course did
not have a textbook.
Learning Cabana
The first section of the course contained 2 of the 3 course projects. The first of these
projects was related to implementing an old joke and was covered in 2 homework
assignments while the second involved the building of a Tamagotchi (a virtual pet) and
was covered in the next 3 homework assignments.
The old joke assignment relates to the joke that has floated around the Internet for
years that involves a website that says that with the number of surveillance cameras in the
world, all it needs is your name and date of birth to return a picture of you. After you put
in your information and hit submit, it waits for a little while as if it is searching a database
before returning a picture of a monkey, saying that it found your picture. This project
taught students how to build a multi-screen application and import images into Cabana.
It also gave them opportunities to start adding logic to their applications in order to make
the joke work better. The second homework assignment had students adding to the
130
CCSC: Northeastern Conference
complexity of the application based on newly learned Cabana programming and gave
them an opportunity to make changes based on class comments about their application.
The Tamagotchi project functioned similarly. The 3 homework assignments covered
3 weeks and included 2 sessions in which students were able to give feedback on each
other's designs. It also gave them an opportunity to implement more complex features in
Cabana like flow components and persistent memory. This project was originally intended
to run for only 2 assignments but students asked for it to be extended to 3 so that they
could finish implementing changes based on feedback and have applications they could
be proud of.
For both of these projects, students were given freedom regarding the exact details
of the applications. As long as they followed the basic premise of the assignment and the
work covered the features talked about in class, their work was accepted. This freedom
seemed to inspire many of the students to push their boundaries and put in extra effort.
Application Design
The meat of the course came in the second section and was covered by the third and
largest project. This project was to build an application of the student's choosing and to
take it through all parts of the development process. They worked on this project for over
half the semester and it covered 8 individual homework assignments.
The first assignment for students was to turn in 3 solid ideas for mobile applications
that they would like to build. They were then required to discuss these ideas in class along
with the pros and cons of each.
This was followed by a discussion of application context and application architecture
design. For the assignment students had to pick which of their ideas they wanted to create
and then describe the context for that application including usage location, intended
audience, how it would be used, etc. They were also required to sketch the intended
architecture of their application and include some sketches of what might appear on
screen.
With context in mind, the course then moved on to paper prototyping and principles
of interface design. The assignment for this was to build a physical paper prototype of
their application for testing.
This led to discussions of what makes good applications. Students were also taught
principles of simplifying interfaces for greater usability. The assignment here was to build
a vertical slice of their application: a completely working section that showed all
functionality.
With vertical slices in hand, students were then taught about developing strategies
for their application marketing and how to promote their applications. The focus was on
how they could make their applications more likely to be used. The assignment was to
finish implementing their application.
The course then moved on to usability testing. For the assignment students were
required to usability test their applications.
131
JCSC 27, 6 (June 2012)
The usability testing results led to discussion of interface design in general. This
discussion and the testing results were used in the next assignment when students where
asked to revise their applications.
In the final week every application was presented and critiqued by the class. The
final assignment was to implement any last suggestions and to pull together all of the
information from the application creation process. It was a basic wrap-up of the course
material.
Lecture Overview
The course was run in the mold of a studio art course, with one lecture a week
devoted to critique of student work. Each of the 11 students presented material and had
it critiqued for approximately 10 minutes of the 120-minute class. The length of
presentation is not crucial and would have been shorter if there had been more students.
This had a number of effects on the course and student production. To begin with it forced
students to present orally every week and in doing so taught them how to present their
ideas effectively. A couple of students mentioned that they had more public speaking
experience from this course than from some that listed public speaking as a core part of
the curriculum. This skill is generally overlooked in computer science courses.
The public speaking also led to a higher quality of work from many of the students.
Fear of embarrassment during presentations convinced students to make a greater effort
than they might have otherwise.
Improvement in application design was the greatest benefit of these presentations.
Weekly feedback on their designs caused students to think more about the perceptions of
people other than themselves when it came to functionality and layout. Everyone who
writes software at times has focused solely on design from their own perspective and
failed to consider how others would react to it. For many of the students this was their
first exposure to this aspect of software development. The outside influences greatly
improved student applications.
Advanced work
The design of this course made it possible for some students do more advanced
work. Several students were frustrated that Cabana did not give the same level of device
control they were used to from working with device SDKs. The course design enabled us
to let these students develop applications using the SDKs while the rest of the course
focused on Cabana. These students had to handle difficulties on their own and did so
successfully.
The net effect was that these advanced students did more advanced work and there
was no negative effect on the rest of the class. Both groups learned how to develop
applications. Having students working on such divergent platforms was not difficult for
us to grade because we give written evaluations. In a more standard grading system the
same course could be listed with two separate course numbers, the higher one given to
those students working with the device SDKs.
132
CCSC: Northeastern Conference
USING CABANA
Cabana proved to be a good environment for the course but was not a perfect
solution. Cabana was in beta testing for the entire duration of the course and this caused
certain features to disappear during the semester or to start to work differently. Also,
certain bugs appeared that students were unable to identify as bugs since they did not
know whether they or the software had made a mistake since they were just learning it.
On top of this the documentation for Cabana was very limited.
Despite these setbacks Cabana was a very good piece of software for developing
mobile applications for the course. Students found it easy to learn and to use. Prototyping
in Cabana proved extremely easy and student were able to rapidly develop and change
applications. At the end of the semester only one student failed to have a working
application and that was because some part of the back end of Cabana was changed in the
last week of the class, causing code that had worked previously to stop working.
CONCLUSIONS
We built a mobile application design course using Cabana that was successful for
students with a variety of levels of programming experience. Cabana made it possible to
focus on application design instead of just implementation, enabling our students to see
development from a different angle. We were able to hold a lot of class critiques that gave
students feedback on their designs and presentations and greatly improved their skill set.
These critiques would not have been possible if we had been required to teach an SDK.
On top of this, students were really pleased with the course and felt that they learned
a lot. Many of them started looking at application design in new ways and it carried over
to code they were writing for other classes. Their successful completion of mobile
applications demonstrated their understanding of the course material. This Cabana-based
mobile application curriculum is one that can work successfully at many institutions that
also have students with varied programming backgrounds.
ACKNOWLEDGMENTS
We would like to thank DOBL for allowing us to use Cabana for this course and for
providing timely feedback and development of requested features.
REFERENCES
[1] Department of Behavior and Logic Inc., Cabana - Create mobile apps with
Cabana!, https://www.cabanaapp.com/landing/, retrieved November 15, 2011.
[2] Dickson, P. E., Experiences building a college video game design course, J.
Comput. Small Coll. 25, (6), 104-110, 2010.
133
JCSC 27, 6 (June 2012)
[3] Dickson, P. E., Cabana: A Cross-platform Mobile Development System, SIGCSE
'12: Proceedings of the 43nd Technical Symposium on Computer Science
Education, ?-?, 2012.
[4] Fenwick, Jr., J. B., Kurtz, B. L., Hollingsworth, J., Teaching mobile computing
and developing software to support computer science education, SIGCSE '11:
Proceedings of the 42nd Technical Symposium on Computer Science Education,
589-594, 2011.
[5] Goadrich, M. H., Rogers, M. P., Smart smartphone development: iOS versus
android, SIGCSE '11: Proceedings of the 42nd Technical Symposium on
Computer Science Education, 607-612, 2011.
[6] Ivanov, L., The I-phone/I-pad course: a small college perspective, J. Comput. Sci.
Coll. 26 (6), 142-148, 2011.
[7] Kurkovsky, S., Engaging students through mobile game development, SIGCSE
Bull. 41 (1), 44-48, 2009.
[8] Loveland, S., Human computer interaction that reaches beyond desktop
applications, SIGCSE '11: Proceedings of the 42nd Technical Symposium on
Computer Science Education, 595-600, 2011.
[9] Mahmoud, Q. H., Ngo, T., Niazi, R., Popowicz, P., Sydoryshyn, R., Wilks, M.,
Dietz, D., An academic kit for integrating mobile devices into the CS curriculum,
SIGCSE Bull. 41 (3), 40-44, 2009.
[10] Rogers, M. P., Wrong number: avoiding the hidden perils in iPhone
development, J. Comput. Small Coll. 25 (5), 300-305, 2010.
[11] Wolber, D., App inventor and real-world motivation, SIGCSE '11: Proceedings
of the 42nd Technical Symposium on Computer Science Education, 601-606,
2011.
134
USING A PIC32 MICROCONTROLLER AND SIMULATOR TO
TEACH COMPUTER ORGANIZATION*
Robert A. Ravenscroft, Jr.
Department of Mathematics and Computer Science
Rhode Island College
600 Mount Pleasant Avenue
Providence, RI 02908
401 456-9745
rravenscroft@ric.edu
ABSTRACT
Our computer organization course focuses on the architecture of computer
systems, interaction between components of a computer, and assembly
language programming. The MIPS simulators MARS and SPIM have been
used for assembly language programming as well as to demonstrate interface
techniques with memory mapped input/output devices. Unfortunately, the
memory mapped input/output capabilities of MARS and SPIM are limited.
Instead of MARS or SPIM, a Microchip Technologies PIC32 MX
microcontroller and simulator are being used. This versatile chip permits
students to see code that controls actual I/O devices. The simulator allows
programming in C or MIPS, and provides tools to view output logic and to
stimulate input to the chip.
INTRODUCTION
Our school has a two course computer organization and architecture sequence. The
first course focuses on digital logic and circuits and basic assembly language instructions.
The second course focuses on architecture, the interaction of computer components, and
more advanced assembly language techniques.
Typically the MIPS assembly language [1] is used in these courses. MIPS is the
instruction set for a modern 32-bit reduced instruction set computer (RISC). Students
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
135
JCSC 27, 6 (June 2012)
execute their MIPS programs on the MARS [10] and SPIM [3] simulators. MIPS
programming topics progress from the basics of assembly language, to data manipulation,
to decision and looping control structures, and finally to memory mapped I/O
programming.
The MARS and SPIM simulators have proven to be effective tools for teaching
MIPS programming. They allow students to monitor CPU register usage and the contents
of memory as programs are executed. Several years of course usage has shown both
simulators to be effective tools for MIPS programming.
MARS and SPIM have been less effective when it comes to programming exercises
involving memory mapped input/output (I/O). Both tools provide a very basic memory
mapped character I/O capability with keyboard input and console output. Each I/O
channel has a memory mapped data register and a memory mapped control register. The
control registers feature a ready bit and an interrupt enable bit, allowing I/O to be
processed by software polling or by device generated interrupts. Unfortunately, student
success on assignments involving I/O was less than 60%. Additional guidance was
helpful, but with the very basic I/O capabilities of the simulators the assignments became
"cook book" exercises that did little to improve learning.
Student test results revealed another problem area for students that MARS and SPIM
are not able to address. Students were having trouble understanding and explaining
vectored interrupts and priority interrupts
Dealing with these issues required finding a tool that would satisfy several
objectives.
1.
2.
3.
4.
The tool should engage the students in hands on learning.
The tool should support the MIPS assembly language.
The tool should provide memory mapped I/O.
The tool should provide vectored interrupts and priority interrupts.
These objectives were met with a Microchip Technology PIC32 MX microcontroller unit
(MCU) [4] and Microchip's MPLAB integrated development environment (IDE) [8].
MPLAB provides a compiler and assembler, tools to program and debug PIC32 chips, and
simulation software. The simulator includes tools to interact with and monitor the chip
and its I/O ports.
The PIC32 was discovered while doing a web search for information about MIPS
processors and MIPS simulators that could be used in the computer organization course.
This chip, which was released in 2007, is a powerful MCU that features a 32 bit MIPS
core, flash memory for storing program instructions, RAM for program data, as well as
a variety of input/output controllers. It is meant to be embedded in devices such as cell
phones, MP3 players, game consoles, and other digital electronic devices. MCUs serve
as an engine to implement a digital device and are not usually meant to be used as a
standalone computer.
A search of the web, the ACM Digital Library, and Microchip's web site yielded
substantial information on the PIC32 as well as Microchip's PIC family of MCUs. They
are widely used in Computer and Electrical Engineering courses. Sarkar and Craig [11]
reported the use of non-MIPS PIC microcontrollers to teach architecture and hardware
136
CCSC: Northeastern Conference
concepts. Valentine [12] used non-MIPS PICs to build real world projects in computer
organization courses. Unfortunately, no results were found regarding the use of the PIC32
or MPLAB to teach I/O techniques.
The remainder of this paper discusses the PIC32 hardware and MPLAB software,
the usage of both of these tools in a computer organization course, and the outcomes
achieved with usage of these tools.
PIC32 MX HARDWARE AND SOFTWARE
The PIC32 has a MIPS32® M4K® Core [9] that implements the MIPS instruction
set. The PIC32 MCUs provide a number of I/O devices. Among them are general purpose
I/O ports, timers, a 16-bit parallel port, universal asynchronous receiver transmitters
(UARTs), SPI and I2C serial bus interfaces, analog to digital converters, and a real time
clock and calendar. Individual PIC32 chips are available at modest cost. However, they
are packaged in plastic thin quad flat packs with as many as 100 pins of width 0.2mm at
a pitch of 0.4mm. They are not an ideal size for prototyping.
Fortunately, Microchip sells a variety of PIC32
Starter Kits that can be used for experimentation or
development. These kits provide power to the PIC32,
three light emitting diodes (LEDs) connected to an output
port, three pushbutton switches connected to an input port,
a connector that breaks out all PIC32 pins, and a USB
interface for downloading and debugging programs. On
this starter kit, the PIC32 is located in the center of the
board. The PIC32 package size is 12mm x 12mm. The
leads increase the size in each direction by 2mm. The
small size is a testament to its usage as an embeddable
device. The LEDs and switches are along the right edge.
Microchip and other vendors sell breakout boards for the Starter Kits that connect
the various I/O controllers to real world devices such as RS-232 serial ports, liquid crystal
display character displays, serial flash memory, audio and video, secure data cards, light
emitting diodes, and pushbutton switches. Access is provided to all of the PIC32 pins,
allowing special interface circuits to be built.
The PIC32 can be programmed with Microchip's freely available MPLAB IDE [8].
The IDE supports both C and MIPS assembly programming. The included version of the
C compiler is feature limited but is more than powerful enough for course usage. Besides
the usual features that would be expected in a programming IDE, MPLAB provides the
ability to download and debug machine code. It also provides SIM, the MPLAB
simulator. This extremely useful tool simulates the execution of PIC programs without
the need of a PIC32 chip. Provided with the simulator are several tools that animate the
behavior of the system. The most useful are a Watch tool to monitor the value of data and
control registers, a Logic Analyzer to animate the values on I/O ports, and a Stimulus tool
to simulate inputs to data pins. The Logic Analyzer is able to export transition data for the
I/O ports to a text file.
137
JCSC 27, 6 (June 2012)
All I/O devices in the PIC32 are memory mapped. Data and control registers for the
I/O devices are called special function registers (SFRs). SFRs can be accessed from
assembly code with MIPS load and store instructions. Within C code, MPLAB provides
a variety of access methods to the SFRs. Header files define symbolic names and C bit
fields that allow SFRs to be accessed as variables. Macros are also available for common
control settings.
Programming the PIC32 is straightforward. Microchip publishes a family data sheet
[5], a reference manual [6], and a Starter Kit user's guide [7]. A useful textbook by Lucio
Di Jasio [2] leads the reader through a series of programs that use many of the I/O devices
on the chip. Microchip also has available numerous code libraries along with their
documentation.
CLASSROOM DEMONSTRATIONS
The PIC32 Starter Kit was initially obtained to use for classroom demonstrations.
The intent was to show students a real world MCU that was actually programmed with
the same MIPS assembly code that they were using with MARS and SPIM. It also
provided an opportunity to impress the idea of a MCU as an embedded device and to
discuss the architecture and capabilities of the device. Over several offerings of the
course, a series of demonstrations has been developed to teach the concepts related to I/O
devices and I/O programming.
On the Starter Kit, the three LEDs are connected to bits 0, 1, and 2 of the Port D I/O
port module. The pushbutton switches are connected to bits 6, 7, and 13 of Port D. Data
register PORTD is used to access the I/O module. Control register TRISD is used to set
each bit of PORTD to input or output.
The first demonstration uses PORTD to turn the LEDs on and off in a controlled
pattern. A series of C program is presented to the class to illustrate various concepts
related to I/O devices. Among these concepts are memory mapped I/O, the use of control
and data registers, and bit manipulation techniques. The disassembly window of MPLAB
is used to look "under the hood" at how MIPS assembly code interacts with the SFRs for
the port module.
The second demonstration is used to introduce polled input versus interrupt driven
input. A timer is used to control the time period that the LEDs cycle on and off. This is
initially done by polling a timer value. A second version of the program uses timer
generated interrupts to turn the LEDs on and off.
The third demonstration moves into more advanced interrupt processing issues. The
program lights each of the LEDs when a corresponding pushbutton switch is pressed. The
initial version polls the three input sources on PORTD. The second version uses timer
interrupts to poll PORTD. The third version uses change notification interrupts generated
by pressing and releasing the switches. The fourth version adds a timer interrupt to blink
one of the LEDs. This last version illustrates multiple interrupts, priority interrupts, and
vectored interrupts.
138
CCSC: Northeastern Conference
STUDENT ASSIGNMENTS AND LABS
After PIC32 programming experience was gained writing demonstrations for the
Starter Kit, the next goal became the development of student labs and assignments. It
would have been nice to obtain PIC32 Starter Kits for the class to use, but that was not
a feasible option. Fortunately, MPLAB SIM is more than capable, with one limitation.
MPLAB runs on Microsoft Windows. Because some students do not have access to a
Windows machine, this is a problem. Microchip is currently developing a cross platform
Java based NetBeans version of MPLAB. However, it is still in development and does not
have a full feature set of simulation tools. In particular, the Logic Analyzer is not yet
available. As a result, the majority of effort has been directed towards in-class lab
assignments.
As the class labs have been developed, the class demonstrations have been
simplified to provide an overview of what the program does and the techniques used to
implement the program. Students are provided with modified programs that are designed
to run on MPLAB SIM. The modifications mostly deal with timing issues that arise from
the slower simulation speeds. For the programs that use input, they involve defining a
stimulus workbook to simulate button transitions and other events. Interrupt handlers are
modified to pull logic lines high for display on the Logic Analyzer.
Students are expected to download and run the simulations before class and in some
cases export timing data from the Logic Analyzer window. They bring their laptops to
class and work together in teams. While this encourages the students to engage each other
and discuss the programs, it also provides a computing platform for the few students who
do not have a Windows laptop. The lab reports are then completed as a take home
assignment.
The labs let the
students interact with the
code that was used in class.
The disassembly window
lets them view the
underlying MIPS code.
This affords the
opportunity to see that the
I/O device SFRs are
accessed and modified as memory locations. The disassembly window is also useful in
explaining timing delays that appear in the Logic Analyzer. Students can look at the MIPS
code and count instructions. For example, this output shows an LED on bit RD0 that is
controlled by an active low switch on bit RD6. Bit RD15 traces the interrupt handler. The
students can measure the delay between the switch going low and the LED being turned
on. They find that the delay is mostly caused by the interrupt routine saving registers.
RESULTS AND CONCLUSION
The PIC32 is proving to be a versatile tool in the teaching of computer architecture.
Along with MPLAB, it provides the opportunity to use an industry standard platform as
139
JCSC 27, 6 (June 2012)
a learning tool. Students see demonstrations that work on an actual device. MPLAB SIM
provides a tool that meets the objectives set out in the introduction.
Results from using the PIC32 and MPLAB have been mostly positive. Students are
more engaged. This has been evidenced by a close to 100% submission rate on
assignments versus the poor results on the interrupt processing MIPS programs. More
impressive has been the improved test results. Since introducing the PIC32 for class
demonstrations exam results have improved. They have continued to improve with the
introduction of labs and assignments. It is hard to make a precise comparison due to a
class size that averages about 12 a year and the need to vary exam questions from year to
year. But questions related to polling and interrupts, vectored interrupts, and priority
interrupts have generally cut the rate of "mostly wrong" answers at least in half. The one
area that has shown some improvement but still remains a problem is memory mapped
I/O versus isolated I/O. The students mostly understand memory mapped I/O but are still
having difficulty with isolated I/O.
While the objective was to use the PIC32 to teach hardware level I/O, it has other
capabilities that might be of use in a computer organization class. Serial and parallel I/O
is possible. It has user programmable direct memory access. Programs can control the
instruction caching and the cache pre-fetch. These and other capabilities could be the
foundation for class labs or demonstrations.
There are several other benefits to using the PIC32 platform in the classroom. To
this point in their academic career, our students have almost exclusively worked with
Java. MPLAB gives them exposure to C and how an imperative language works. They
also get an opportunity to see what system programming is about. Working with bit masks
and data and control registers, they also get more experience with the binary
representation that underlies almost all digital data. Finally, they get a firsthand look at
microcontroller technology, which is a rapidly growing area in the computer industry.
REFERENCES
[1] Britton, R. L., MIPS Assembly Language Programming, Upper Saddle River, NJ:
Pearson Education, Inc., 2004.
[2] Di Jasio, L., Programming 32-bit Microcontrollers in C Exploring the PIC32,
Burlington, MA: Newnes, 2008.
[3] Larus, J., SPIM a MIPS32 simulator, pages.cs.wisc.edu/~larus/spim.html,
January, 2011.
[4] Microchip Technologies Inc., 32-bit PIC® MCUs,
www.microchip.com/en_US/family/32bit, retrieved 20 November, 2011.
[5] Microchip Technologies Inc., PIC32MX5XX/6XX/7XX data sheet,
ww1.microchip.com/downloads/en/DeviceDoc/61156G.pdf, 9 May, 2011.
[6] Microchip Technologies Inc., PIC32 family reference manual,
www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2612,
retrieved 20 November, 2011.
140
CCSC: Northeastern Conference
[7] Microchip Technologies Inc., PIC32 starter kit user's guide,
ww1.microchip.com/downloads/en/DeviceDoc/61159B.pdf, December 2010
[8] Microchip Technologies Inc., MPLAB IDE user's guide with MPLAB editor and
MPLAB SIM simulator,
ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_User_Guide_51519c.pd
f, January 2009.
[9] MIPS Technologies, Inc., MIPS32® M4K® Core,
mips.com/products/cores/32-64-bit-cores/mips32-m4k/, retrieved 20 November,
2011.
[10] Missouri State University, MARS (MIPS assembler and runtime simulator) an
IDE for MIPS assembly language programming,
courses.missouristate.edu/KenVollmar/MARS/index.htm, 6 January, 2011.
[11] Sarkar, N. I., Craig, T. M., Illustrating computer hardware concepts using
PIC-based projects, SIGSCE `04 Proceedings of the 35th SIGSCE Technical
Symposium on Computer Science Education, 270-274, New York, NY: ACM,
2004.
[12] Valentine, D., Using PIC processors in computer organization, Journal of
Computing Sciences in Colleges, 24, (1), 116-122, 2008.
141
THE DEVELOPMENT OF A COURSE COVERING SCRIPTING
LANGUAGES AND THEIR APPLICATIONS*
Charles N. Stevenson
Computer Science Department
Salem State University
Salem, MA 01970
978-542-6616
cstevenson@salemstate.edu
ABSTRACT
Our newly developed course introduces students to the design and use of
scripting languages for web development and rapid prototyping. The course
also seeks to improve student understanding of language design and
construction by exposing them to the different language paradigms found in the
three languages Perl, JavaScript, and Python. The course includes lectures and
assignments on topics common to these scripting languages such as regular
expressions and web protocols. Since the introduction of the course, increasing
numbers of students are now using a scripting language for their senior project,
rather than a compiled language such a Java or C++. Students are able to make
faster progress in their senior projects because the use of these languages
enables them to spend more effort on problem solving and less effort on getting
their programs to work. Their successful experiences in prototyping
applications mirror many current industrial practices.
MOTIVATION AND GOALS
A newly developed course at my university introduces students to the design and use
of scripting languages, which are considerably different from the compiled languages to
which students are initially exposed. The goals of the course are to introduce students to
the ideas of rapid prototyping, improve their web development skills, and, most
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
142
CCSC: Northeastern Conference
importantly, to improve their understanding of language design and construction by
exposing them to several different language paradigms in one course.
The course covers the essential elements of four scripting languages plus a collection
of topics that are common to these languages, such as web protocols and regular
expressions. The three languages Perl, JavaScript, and Python form the core of the course.
The course begins with a concise introduction to html and PHP because of the close
relationship between Perl and PHP and the widespread use of scripting languages for web
development.
The features and libraries offered by the four languages are continually compared
during the course. In order to improve student understanding of object-oriented methods,
the course provides an extensive comparison of the construction and use of objects in
Perl, a procedural language, JavaScript, which uses objects but lacks classes, and Python,
a true object-oriented language.
The students report strong course outcomes, with several students from both course
offerings expressing their belief that learning Perl and especially Python helped them
understand the other languages that they have studied, most notably Java. The course has
also enabled a number of senior capstone projects, including an application developed for
a non-profit organization that promotes tourism on Boston's North Shore, written
primarily in JavaScript.
Scripting Language Overview
Michael Scott traces the origins of scripting languages to two sources, the first
source being command interpreters, such as the Unix sh and csh shells, and to tools for
text processing, such as sed and awk found in Unix [1]. From these origins came IBM's
“Restructured Extended Executor,” or Rexx, and Larry Wall's “Practical Extraction and
Report Language,” or Perl. As is well-known, Rasmus Lerdorff began by writing scripts
in Perl for his home page, which has since evolved into PHP, currently the most popular
language for embedded server-side scripting. The growth of the world-wide web in the
1990's caused scripting languages such as Perl to come into a much greater prominence.
Scripting languages are also widely used for “gluing” together components and
system level functions to write the top-level structure of a system, as anticipated by John
Ousterhoust, in his classic 1998 paper. [2]. Ousterhoust estimated that programs could be
developed five to ten times faster in a scripting language than a traditional language, but
would run ten to twenty times slower. Video games designed for the consumer market
often follow a development path which utilizes a graphics engine written in C or C++,
with the high-level logic of the game written in Python, such as The Age of Empires
series of games developed by Ensemble Studios. In order to facilitate their rapid
development, scripting languages are frequently used for the rapid prototyping of
engineering, financial, and scientific applications, with the core computational code
written in C, C++, or even FORTRAN.
The design of more conventional languages emphasizes efficiency, maintainability,
portability, and the static detection of errors [1]. In contrast, scripting languages often
emphasize flexibility, local customization (the Prototype library in JavaScript), and
143
JCSC 27, 6 (June 2012)
dynamic checking. Intrinsic types often include patterns, lists, and files. These languages
often facilitate an economy of expression and offer simple scoping rules, easy access to
system functions, and dynamic typing.
Course Goals
Students come to the course after two semesters of instruction in software design and
programming, which utilizes the Java programming language. Consequently, students can
be expected to understand basic control structures, file handling procedures, testing, and
object-oriented methodology, including classes, objects, inheritance, and polymorphism.
The scripting course is designed to introduce students to new and different language
concepts and constructions in contrast to those which they were previously exposed
during the introductory Java courses. Students are also able to improve their web
programming skills and are introduced to rapid prototyping concepts, usually the one and
only time in their educational program. The course is also designed to help students to
develop a richer understanding of language design by comparing and contrasting the
different paradigms used by the four different languages presented in the class, with a
particular focus on the construction and use of objects.
Course Design and Deployment
The most recent offering of the course began with a summary of the main features
of html 4 and the document object model. The course quickly moved to PHP 5 and tools
for server-side development, including text editors and file transfer utilities. Surprisingly,
this was the portion of the course that gave students the most difficulty. The process of
developing PHP code on their local machine for deployment and then testing the code on
the department server was new and often confusing to students. For many students, this
course was their first experience developing code outside of an Integrated Development
Environment (IDE).
The most important features of Perl 5 are covered in depth, including the use of
key-value pairs (called hashes in Perl), the use of packages to compartmentalize code into
namespaces, and the use of references (or pointers) to reduce the overhead of passing
arrays or hashes to functions (called subroutines)[3]. Basic procedures for writing
effective and readable code in Perl are also covered, such as the basic technique of
developing a user-defined function by first writing a subroutine defining the function and
then invoking it.
The use of the standard Perl debugger is introduced in the closed laboratory portion
of the course and students are strongly encouraged to use it. This is usually their first
experience with a debugger that mandates the use of commands and line numbers, rather
than a gui-based debuggers, such as in Microsoft's Visual Studio.
144
CCSC: Northeastern Conference
Objects in Perl and JavaScript
While Perl 5 is not an object-oriented language, students are shown that it is possible
to program in an object-oriented style by combining the bless operator with references,
usually to a hash, and packages [3]. The bless operator associates the reference to the hash
with the package. Methods to mimic constructors can also be written. Perl 5 uses a special
syntax to invoke a function call where the reference is passed as the initial argument to
the function.
Students are also shown that a kind of object inheritance can be accomplished in Perl
by using the @ISA array, which essentially lists the parent classes from which a class
inherits methods and attributes [3].
JavaScript enables object-oriented, functional, and imperative programming
styles[4]. The language follows the Self language in providing objects without classes.
Once students understand the basics of JavaScript, the course then develops a detailed
comparison of the implementation of object-oriented programming concepts provided by
the two languages.
In JavaScript, an object is simply a set of key-value pairs, similar in concept to a
Perl-style hash. Functions are also objects in JavaScript, and a method is a function that
is referenced by the property of an object.
A constructor in JavaScript is a function whose purpose is to assign values to the
properties of a newly created object. Associated with every constructor is a prototype
function, such that when a programmer attempts to use a property or a method of an
object that is not specified in the object, the JavaScript interpreter looks in the
corresponding prototype for the property or method. In essence, an object inherits from
the constructor's prototype everything that is not overwritten. A comparison of the
different inheritance mechanisms is provided in the course.
The first time the course was taught, only JavaScript and Python were covered, and
students struggled with object construction in JavaScript. In the second offering, the
discussion of objects in JavaScript was improved by the prior explanation of object in Perl
5. This explanation helped students understand JavaScript objects by bridging the gap
between their prior understanding of classes and object in Java and the construction of
objects in JavaScript as key-value pairs.
Objects in Python
The implementation of object features in Python forms a stark contrast with the
implementation of object-oriented methods in both Perl and JavaScript because Python
is an explicitly object-oriented language with class declarations that are executable
code[5]. Its easy syntax, similar to English, makes it a highly approachable language.
With Perl and JavaScript as background, the course is able to quickly launch into Python's
unique features, such as its class methods, generators, and iterators. Python provides a
much more familiar ground for the students, with its suite of object-oriented features
including classes, constructors, and inheritance through classes.
145
JCSC 27, 6 (June 2012)
As the course moves from objects in Perl through JavaScript objects to objects in
Python, students see that a true object-oriented language enables economy and clarity of
expression.
Common Topics
Lectures and laboratory assignments on topics common to two or more scripting
languages were used throughout the course. These common topics included an overview
of languages and scripting languages, regular expressions, web protocols, different web
servers, the use of extensive libraries, the testing and verification of code, including unit
testing in JavaScript and Python, design patterns, XML processing, and, as previously
discussed, the use of object-oriented techniques in the different languages.
The use of regular expressions to describe string patterns is covered in the course,
and then students are shown that PHP, Perl, and JavaScript all provide similar or identical
implementations of these pattern matching methods, and that in Python the use of regular
expressions is identical in concept but is different in implementation details.
Unit testing in JavaScript and Python is covered in a similar manner to the
explanation of regular expressions, noting that two libraries in the two languages
implement the same idea differently.
The use of the Singleton design pattern in JavaScript for reducing the number of
global variables on a web page is explained in the course. Students are then shown that
many of the organizational benefits of this design pattern in JavaScript are accomplished
with packages in Perl and namespaces in Python.
In a similar way to the Singleton pattern, the iterator pattern is discussed during the
course, and students are shown that this pattern is intrinsic to JavaScript and Python.
Considerable attention is given to the important languages of iterators and generators in
Python. The use of the Factory pattern to make objects in JavaScript and Python is also
demonstrated.
Course Assignments
Students are asked to use Perl's facility for handling regular expressions to develop
text analysis code for analyzing the complexity of a document using the Flesch-Kincaid
formula, which uses the number of words, syllables, and sentences in a document. The
number of syllables can be determined by counting the number of vowels in a word and
then adjusting for the many special cases found in the English language. Students found
this to be a rewarding assignment because of its difficulty and the use of regular
expressions in developing the solution. The Perl code is integrated into a web site that
would allow users to browse for files to analyze using the Flesch-Kincaid formula.
Students also developed a simple AJAX application, using JavaScript and PHP, to
retrieve stock-price information from the web and to display it on the host machine.
Again, students were challenged by and enjoyed this laboratory assignment. Students also
enjoy using Python the Turtle graphics package to draw various fractal shapes because of
146
CCSC: Northeastern Conference
the immediate visual feedback that it provides. Students were also introduced to the use
of Lindenmayer systems to characterize fractal shapes.
Outcomes
The offering of the course directly led to one of the most effective and visible senior
projects ever done in our computer science department. A senior used JavaScript and the
Aptana Titanium IDE to develop a mobile application that runs on the iPhone and the
Android platform. The application was developed in conjunction with a nonprofit
organization that promotes economic tourism in thirteen communities on Boston's north
shore. It is likely that the non-profit will deploy the application, supporting the
University's strategic goal of increasing its community engagement.
Continued Development of the Course
The first time that the course was offered it only covered JavaScript and Python. In
the second offering it was expanded to include both PHP and Perl. Despite the inclusion
of this additional material, the second offering covered almost as much material in
JavaScript and Python as the first offering. This was accomplished by carefully exploiting
the many similarities between the languages and the introduction of the common topics
lectures, where topics common to several, of the languages were covered in one class
period.
The introduction of software tools and techniques that are different from a standard
IDE caused the most difficulty in the course. At the next offering, alternate tools will be
introduced more slowly, perhaps by beginning with a text editor for Perl and then moving
to PHP.
CONCLUSIONS
Students often developed a stronger understanding of object-oriented methods by
taking the scripting language course than they previously had from their introductory
programming classes. The course was a successful vehicle for introducing theoretical
concepts such as regular expressions for text processing and Lindenmayer systems for
characterizing shapes. A large number of senior projects, including a robotic simulation
written in Python for the Panda3D graphics and gaming system and the previously
discussed mobile application written in JavaScript, were a direct result of the class.
Our students struggle to master the complexity of the current Java programming
environment. By teaching them to use tools that are easier for them to understand,
specifically Perl and Python, the scripting course enables them to make dramatic progress
in their understanding of language concepts and in their senior projects. Since the
introduction of the course, many students are now using a scripting language for their
senior project, rather than a more complex language such as Java or C++. Students find
that these languages offer simpler and more approachable features than some compiled
languages. As a direct result, students are able to make faster and more substantial
progress in their senior projects because these languages enable them to spend more effort
147
JCSC 27, 6 (June 2012)
on solving the problem and less effort on simply getting their programs to work. Their
successful experiences in prototyping applications using scripting languages are consistent
with many current practices in industry or research laboratories where scripting languages
are used for rapid development or writing high-level control code.
REFERENCES
[1] Scott, Michael L, Programming Language Pragmatics, Third Ed. Burlington,
MA: Elsevier, 2009.
[2] Ousterhout. J. K. Scripting: Higher-level programming for the 21st century, IEEE
Computer, 31(3):23-20, 1998.
[3] Schwartz, R. L., Phoenix, T., D Foy, B. Intermediate Perl, Sebastopol, CA:
O'Reilly, 2006.
[5] Stefanov, S., Object-Oriented JavaScript: Create Scalable, Reusable
High-quality JavaScript Applications and Libraries, Birmingham, UK: Packt,
2008.
[6] Summerfield, M., Programming in Python 3: A Complete Introduction to the
Python Language, Boston: Addison-Wesley, 2009.
148
HYBRID CLOUD TUTORIAL: FROM PLANNING TO
CLASSROOM*
TUTORIAL PRESENTATION
David G. Rilett and Charlie Wiseman
Departmant of Computer Science and Networking
Wentworth Institute of Technology
Contact: David G. Rilett, 110 Hull Street, Newtonville, MA 02460.
Email: rilettd@wit.edu Phone: 617-965-0772
High availability systems and cloud computing are currently topics of interest for
computer science and networking departments. Cloud computing systems in particular
are slowly working their way into undergraduate programs both as a network architecture
to consider and as a tool to enhance student learning. Before these technologies can be
brought into the classroom effectively, a solid understanding of their planning,
implementation, and testing must be developed. There are many types of cloud systems
including public, private, and hybrid clouds. This tutorial will focus on the latter as
hybrid cloud systems provide the benefits of private cloud management and the flexibility
and availability of public clouds.
The goal of this tutorial is to show how to set up and utilize a hybrid cloud based on
open source and freely available software. First, the network and systems architecture
will be discussed, including the hardware configuration of two reasonably equipped
servers, two disk arrays, and several switches. Next, we will cover the installation of the
core operating systems and the hypervisor software, and the creation of the virtual
machines and associated virtual storage. Finally, we will show how virtual machine client
software images can be configured to connect to the local cloud in order to augment
classroom or on-line instruction.
Illustrations, from the initial whiteboard sketches to the final network diagram with
implementation details will be shared. There will be detailed walk throughs of the
installation process and a live demo of the finished cluster in real time. Handouts will
include all diagrams and resources used as well as links to all relevant software covered.
Participants may choose to preinstall Oracle VirtualBox for the tutorial.
___________________________________________
*
Copyright is held by the author/owner.
149
JCSC 27, 6 (June 2012)
BIOGRAPHIES:
David G. Rilett has a Master's degree in software engineering and is an experienced
UNIX systems administrator. He is a tenured assistant professor at the Wentworth
Institute of Technology in Boston, Massachusetts. He has previously published and
presented at CCSCNE.
Charlie Wiseman has an earned PhD in computer science from Washington
University in St. Louis, Missouri and has published many papers on networking and
virtual networks. He is an assistant professor at the Wentworth Institute of Technology
in Boston, Massachusetts.
RESOURCES:
IBVM: http://lbvm.sourceforge.net/about/
VirtualBox: https://www.virtualbox.org/
XEN Hypervisor: http://xen.org/
XENSERVER:
http://www.freexenserver.com/landing/Q2XSFree_Google/?gclid=CLy-ybKO7KwCF
Qpx5QodTCGRMA
ESXi: http://www.vmware.com/products/vsphere-hypervisor/overview.html
CentOS: http://www.centos.org/
150
MEASURING THE IMPACT OF COMPUTATIONAL THINKING
WORKSHOPS ON HIGH SCHOOL TEACHERS*
Patricia Morreale
Department of Computer Science
Kean University
Union, NJ 07083
pmorreal@kean.edu
Catherine Goski
Department of Mathematics
Kean University
Union, NJ 07083
cgoski@kean.edu
Luis Jimenez
Department of Computer Science
Kean University
Union, NJ 07083
jimluis@kean.edu
ABSTRACT
Computational thinking knowledge is used to develop solutions for
computational problems, such as those found in mathematics and computer
science. Over the past several years, workshops on computational thinking and
computer science tools have been provided to high school teachers, most
recently as part of Google's Computer Science for High School (CS4HS)
initiative. The lasting impact of these workshops on the high school teachers
and their students after the teacher returns to the classroom is not well known.
The computational thinking knowledge and tools of high school teachers in a
regional area of the U.S. was assessed during two workshops, one held several
months after the other, to determine the utility and benefit, if any, of the
workshops for the teachers and their students. The results of this research
contribute to understanding the perception of computational thinking and
computer science among high school teachers, as well as to the identification
of the best tools and resources which high school teachers are most likely to
use and which can be used to implement computational thinking in core
curriculum standards, including mathematics.
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
151
JCSC 27, 6 (June 2012)
INTRODUCTION
Exposure to computational thinking and computer science in high school is not
always part of the high school experience in the U.S. This is due in part to today's
classroom teachers not being formally trained in computational thinking and the limited
exposure teachers have to computational thinking materials available for use with their
students. While using computers may be part of the learning experience for students,
problem solving and an understanding of computational thinking is not widely held
among the teaching population in high schools [1, 2]. Efforts to increase high school
student awareness of computer science have been focusing on high school teachers [3, 4],
with a large effort sponsored by Google as part of the Computer Science for High School
initiative, which has as a goal the promotion of computer science and computational
thinking in high schools (www.cs4hs.com).
Computational thinking techniques are used by teachers to assist students in
understanding problems. Strategies such as problem decomposition, which break a large
problem into smaller pieces to make it easier to solve, and the use of manipulatives, such
as dominos, to teach fractions, or blocks, for adding, are examples of techniques that
allow students to develop initial computational thinking skills. However, these initial
skills are not further developed to be strong enough to solve computing problems,
particularly programming problems. Weakness in computational thinking skills is one
contributor to decreasing student interest in computer science and other applied
problem-solving fields. Under the CS4HS initiative, many high school teachers are being
exposed to computational tools and techniques through workshops, which provide
materials and experiences which can later be used in their classrooms. This permits a
greater number of high school students to be exposed to computational thinking,
particularly in mathematics. With increased awareness and strength in computational
thinking in high school, graduating students may be better equipped to be successful in
computer science and consider it as a major in college or university [5]. The research
work presented here assesses the impact of two CS4HS workshops to determine what
computational thinking knowledge and tools the teachers found most helpful later in their
classrooms.
METHODOLOGY
The first computational thinking workshop used in this comparative study was held
during the summer of 2011, with the second workshop held during the fall of 2011, after
the high school academic year was well underway. Approximately forty teachers
registered for the two-day summer workshop and twenty for the one-day fall workshop.
Half the fall registrants had attended the summer workshop, providing an opportunity to
measure the impact of the first workshop on the repeat attendees and their classrooms.
Both workshops provided sessions on a range of different topics, including:
•
152
Curriculum materials for teaching computational thinking in high school math and
CS classes. These materials included building Google Sites, to share student and
peer work; a case study on Android programming with high school students; Easy
Java simulations; Scratch, Alice, Geogebra, and CS Unplugged resources.
CCSC: Northeastern Conference
• Examples of university projects, internships, and post-graduation plans to show
what CS majors do, including robotics, student research posters, and virtual reality
classes.
•
Broader understanding of computer science topics, careers, and importance
locally and nationally, with video resources, guest speakers, and post-graduation
placement of university graduates.
As in many states in the USA, mathematics is required in the New Jersey high
school curriculum, while computer science is not. Therefore computational thinking was
emphasized during the two workshops through both mathematics and computer science
curriculum topics.
During the workshops, peer high school teachers and university faculty illustrated
to the high school teacher attendees how students can develop computational thinking and
problem-solving skills. Before and after the workshops, the high school teachers attending
took surveys. The results have been analyzed to determine if there was any change in
teacher perceptions regarding computational thinking and computing after exposure to the
workshop curriculum. In addition, attendees at the fall workshop who had attended the
summer workshop were asked if they had included workshop materials in their classroom.
SURVEY RESULTS
The high school teachers completed a pre-survey before each workshop and a
post-survey at the conclusion of the workshop. The variety of topics presented during the
workshop had both training and education objectives, and exposed the teachers to new
and different materials, with the goal of improving and modifying their teaching methods
and perception about computational thinking.
The pre-survey consisted only of multiple-choice questions and the post-survey
included both multiple-choice questions and open questions. The surveys were used to
analyze the effectiveness of the workshops and measure changes in teacher perceptions.
The surveys were tabulated and summarized in order to identify quantitative
improvement, if any, brought about through the workshop. The questions were chosen
in order to identify the level of understanding about computational thinking among the
educators.
For example, at the summer workshop, the high school teachers were asked for their
understanding of computational thinking and how it has been implemented in their
schools. The teachers were asked: What do you think "computational thinking" is?
On the pre-survey the majority (75%) of the educators responded the correct answer "A
way of thinking and problem solving", which indicates a significant level of
understanding; the post-survey showed a difference between the pre- and post-survey, an
increase of 14.65% among the educators providing the correct answer. This shows an
improvement, becoming a total of 89.65%, for an overall very high level of
understanding.
The educators were then asked Why do you think "computational thinking" is
important? Although 64.10%, of the attenders choose the right answer, which was "It
enhances the problem-solving techniques I already teach", 35.88% choose other answers,
153
JCSC 27, 6 (June 2012)
which means that a comprehension gap existed among educators. After workshop
exposure to the new methodologies and resources, there was a positive increase of the
22.1% as measured by the post-survey evaluation, about why computational thinking is
important.
IMPACT OF WORKSHOPS ON HIGH SCHOOL TEACHERS
The repeat attendees at the fall workshop were surveyed with a post-workshop
questionnaire which asked what, if any, workshop concepts from the summer workshop
they had used in their classrooms (Table 1). Of the eight distinct workshop sessions given
over the two events, four were identified as being immediately useful by the high school
teachers attending.
Table 1. CS4HS summer workshop sessions ranked by use in high school
classrooms
Most-used workshop session:
Computer Science Careers
Next most-used workshop sessions:
Using Google Sites with Students
CS in the NJ State Core Curriculum
Algorithmic Thinking Unplugged
The remaining sessions, while very good overall, had barriers to immediate
adoption, such as lack of funding for the equipment needed for the robotics, or a learning
curve associated with the Easy Java Simulations or other software. The repeat-attendees
were also asked about changes and implementations they had made to their classrooms
(Table 2).
Table 2. Summary responses of CS4HS impact on selected high school
classrooms
What changes have you made in the classroom or in your classroom instruction
following your participation in the summer workshop?
Homework and assignments only accessed on-line
Curriculum based on core mathematics standards
Use of algorithmic thinking
Planning to use Android or Eclipse
154
CCSC: Northeastern Conference
Used some Google material and algorithmic approaches
Added computational games
Collaborating with colleagues using Google sites
What have you done to implement computational thinking in your courses?
Problem-solving techniques
Used Algorithmic Thinking Unplugged Exercises with students
Although an objective of both workshops was to expose teachers to computational
thinking and to help the educators implement new tools to their curriculum, the most
popular workshop sessions, measured by later use in the classroom, were sessions which
did not require new equipment or resources.
HIGH UTILITY WORKSHOP SESSIONS
The workshop session most frequently cited for utility and reuse was the
presentation on Computer Science Careers. This workshop offering was developed using
information from the university computer science department's alumni and recent
graduate surveys, as well as information developed by NCWIT as part of the Counselors
for Computing (C4C) project [6]. The alumni and recent graduate surveys identified local
and national employers where the graduates worked, as well as their job titles. Using this
regional information as a background, the computer science careers presentation was
prepared identifying the range of industries, including telecommunications firms,
pharmaceutical companies, and broadcast networks, employing CS and IT graduates and
their varied daily occupations, such as web site designer, database administrator, network
manager, and quality assurance tester, to the audience. The C4C project has developed
listings of technology jobs by congressional districts, which were used to further localize
the information delivered. Additionally, starting salaries for the job titles have been
identified, which are broken down into hourly pay rates, a denominator which is very
effective with high school students. The teachers found this to be very useful information
for sharing with their students and administrators, as they had not been as aware of all the
opportunities for CS and IT graduates in their community.
In addition to career topics, the attendees had also listened to a presentation
Algorithmic Thinking: Unplugged based on CS Unplugged [7], that discussed ways to
implement computational thinking with simple classroom activities, needing no more than
a pencil and paper. This is important, as at some high schools, teachers do not have
access to tools such as Lego MindStorms for robotics instruction. The tools presented in
the Unplugged talk at the workshop included binary numbers, image representation, count
the dots, and card flip magic, among others. This presentation highlighted that it is
possible to promote computational thinking within a traditional academic curriculum.
This was important to the teachers, as not all had realized the utility of computational
thinking skills to computer science and the ease of implementation of these skills in the
155
JCSC 27, 6 (June 2012)
classroom for their students. The Algorithmic Thinking: Unplugged workshop
presentation was very engaging, and included dividing the teachers into small groups to
work on activities together, later sharing their efforts back with the larger group. This
presentation strongly followed the model many of the teachers used in their classroom of
small group collaboration, which contributed to the future utility and overall impact of the
presentation.
The session on Using Google Sites with Students was very well received, as some
teachers had not known the ease with which they could develop websites and other
materials with Google sites, and provide access to their students. Computer Science in
the New Jersey State Core Curriculum was also popular, as the teachers are well
acquainted with the NJ State Core Curriculum standards. While they were now aware of
employers and job titles in field of computer science, many teachers had primary
responsibilities for math classes, not computer science. Opportunities to include
computational thinking in the math curriculum were outlined, which provided teachers
with new ideas for presenting familiar topics.
NEXT STEPS
Many workshop attendees are already integrating computational thinking into their
curriculum, sharing their new knowledge with colleagues and beginning to teach their
students new skills with the tools and resources given through the workshop such as
career information, algorithmic thinking and Google sites. According to the post-surveys,
some of the next steps that many of the teachers will take in order to implement
computational thinking in their curriculum include: "Review curriculum", which will
implement the new materials given through the workshop, as well as new ideas to teach
computational thinking: "rethink how I present my content", "discuss Google website with
my principal", "develop more lessons for my classes", "think, plan", and "modify lessons
plans to include these materials". These thoughts reflect a positive attitude toward the
ways the teachers can add computational thinking material to their lesson plans.
CONCLUSION
The workshop sessions helped the high school teachers improve their understanding
of computational thinking and share their thoughts about how to best integrate
computational thinking to their curriculum. With the workshops, the attendees were
exposed to new concepts and resources, which will help the teachers and their students
to become computational thinkers, as well as assist in the implementation of
computational thinking in the classrooms. As a result, their students will be exposed to
new and reinforcing approaches in problem solving. Ideally, the students will also
develop skills which will support their success in college and future careers in computer
science.
The significance of the CS4HS workshops, as measured by the high utility of the
material which repeat attendees were able to immediately use on their return to the
classroom, is an important measure of the success of this approach on increasing the
awareness of current high school teachers about computational thinking and computer
156
CCSC: Northeastern Conference
science. Further work in this area will concentrate on materials which teachers can
implement into their curriculum with ease, as well as providing teachers with current
information on careers in computer science and information technology in their immediate
vicinity, with local employers.
REFERENCES
[1] Margolis, J., Estrella, R., Goode, J., Holme, J., and Nao, K. Stuck in the Shallow
End: Education, Race, and Computing. The MIT Press, Cambridge, MA, 2008.
[2] Cooper, S., Pérez, L. and Rainey, D. "K-12 Computational Learning".
Communications of the ACM, Volume 53, Number 11, November 2010, p. 29-30.
[3] Morreale, P. and Joiner, D. "Reaching Future Computer Scientists",
Communications of the ACM, April 2011, Volume 54, Number 4, pp. 121-124.
[4] Morreale, P. and Joiner, D. "Changing Perceptions of Computer Science and
Computational thinking Among High School Teachers", Journal of Computing
Sciences in Colleges, Volume 26, Number 6, June 2011, pp. 71-77.
[5] Vesgo, J. "Enrollments and Degree Production in US CS Departments Drop
Further in 2006-2007", Computing Research News, Volume 20, Number 2,
March 2008, p.4.
[6] Counselors for Computing, National Center for Women and Information
Technology, 2011,
[7] http://www.ncwit.org/c4c
[8] Bell, T., Witten, I., and Fellows, M. Computer Science Unplugged, December
2006, http://csunplugged.org/
157
THE ROAD TO SUCCESSFUL ACADEMIC SERVICE
LEARNING PROJECTS:
MAKING THE RIGHT CHOICES*
Richard A. Scorce
Computer Science, Math & Science Division
College of Professional Studies
St. John's University
Queens, NY 11439
718 990-7566
scorcer@stjohns.edu
ABSTRACT
This paper provides several thoughts and suggestions regarding the appropriate
choices that need to be made in creating and managing an Academic Service
Learning project through to a successful implementation. Success is defined
as having a satisfied user who has received the designated deliverables of high
quality on a timely basis and students who have gained by the experience.
Choice is the key word here and appropriate matches must be made regarding:
• which non-profit can be supported by what type of project?
• which technologies will be utilized versus those available?
• which tasks will actually be included?
• what will be the timeframe? A semester or less? A full academic year?
• how does the instructor select the most promising students?
•
who are the users who will be involved; at what levels and what will their
responsibilities be?
Making the correct choices will enhance the project's chance of success but not
considering all of the choices that need to be made or making the wrong
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
158
CCSC: Northeastern Conference
choices can doom the project to failure hurting the reputation of the school,
negatively impacting the non-profit and confusing the student volunteers.
INTRODUCTION, BACKGROUND AND OBJECTIVE
Academic Service Learning (ASL) can be defined as a student simultaneously
devoting time to a service related activity, usually at a non-profit organization, while
enrolled in a related college level course. Administration and management of the activity,
called a project in this paper, typically falls to the course instructor who would set the
project's objectives, define the deliverables, create the time frame and document the
responsibilities of all participants. Service learning projects usually run for the duration
of an entire semester or even two full semesters and must be carefully defined and
managed since there will be significant interaction with the selected organization and the
project will have an impact upon its operations. [2]
ASL projects can be very beneficial all around, or to use an extended catch phrase,
is "Win-Win-Win" for the three major parties involved. First of all the non-profit or the
organization realizing the benefit of the effort, will receive some sort of an Information
Technology product such as a new database, a new transaction entry system, reporting
system, etc. The non-profits will not have the IT resources, the technologies or financial
resources to implement an IT project on their own. Secondly, students gain experience by
interacting with users just as they will after graduation and can apply class principles,
such as database design, to building a real world database. Thirdly, the school, including
the instructor, gain recognition and build good will [7] by providing resources and guiding
the project through to a successful implementation.
THE NON-PROFIT AND THE ACADEMIC SERVICE LEARNING PROJECT
The non-profit organization is metropolitan New York based and provides
immigration services to neighborhood Latinos, Irish citizens and Irish immigrants.
Immigration services may include counseling, assistance in acquiring green cards and/or
citizenship as well as helping to resolve immigration issues with the federal government.
It is privately funded but also receives assistance from a foreign government, New York
City and New York State. Its IT resources are limited to a modest contract with an IT
service organization which provides basic software, hardware, networking and support
services.
Operations are currently conducted by utilizing numerous unrelated Excel
spreadsheets including one major one which includes both client and transactional
information. The input for such spreadsheets is manually gathered on input forms and a
variety of unrelated reports are produced from the spreadsheets as the sole type of output.
There is no simple way to determine if a client is receiving multiple services or if a donor
is supporting multiple programs which provide multiple services. Also, it is difficult to
immediately determine which services are being utilized and if they are meeting the
funding criteria of the donors/governmental organizations.
A centralized database has been designed to hold client and transaction information
as it is generated at the receptionist's desk. It also contains program and services
159
JCSC 27, 6 (June 2012)
information including regulatory reporting requirements and funding information. All
related reporting and inquiries can be made utilizing the single source database. Thus the
non-profit can determine which clients are utilizing which services and can identify the
related program. Clients utilizing multiple services can also be identified and duplicate
entry of client information will be eliminated. Transactions can also be studied and
analyzed by date, client, service, and program or funding entity.
DISCUSSION - THE CHIOCES THAT NEED TO BE MADE
The Non-Profit and the Candidate Project The school's Academic Service Learning office should be helpful in making the
match, or choosing, a non-profit organization that will be the beneficiary of the ASL
project. [9] When selecting a non-profit several questions must be asked regarding
the choice:
•
Is there a valid need for the school's ASL assistance and how great is the need?
•
Is the size of the non-profit suitable for rendering assistance? Too large and the
non-profit will most likely have sufficient IT resources and, too small, the
non-profit may become overly dependent upon the school over the long term
for continuing assistance.
• Is the non-profit truly desirous of assistance? Are they eager for the help? Is
there a champion or sponsor of the project at a sufficiently high level within
the organization?
Regarding the choice of the candidate project:
• The match must be made of the non-profit's needs to the school's abilities to
satisfy those needs. We are also seeking a close correspondence between the
non-profit's IT needs and the course content. For example a Database Design
course's students and instructor should easily be able to support the creation of
a database for the non-profit, but could a Software Engineering or Systems
Analysis classes' students support such an effort?
•
The size of the project must be carefully chosen or designed. [5] If the project
is too large it will not be completed on time and it will most likely be complex
which increases the chances of failure. Too small a project may not be worth
the effort.
• It should be focused on a specific function. For example a database or an
on-line transaction data entry system, or a redesign of a local network.
Resources The pool of human resources may include the students, instructor, the users from the
non-profit and possible resources from the school's IT department and also the
non-profit's IT vendor. The choices to be made here include:
160
CCSC: Northeastern Conference
•
choosing people from the school's IT staff who have the appropriate technical
skills, time, devotion and freedom to be involved in the project
• choosing whether to ask for assistance from the non-profit's IT vendor. This
type of involvement should be kept to a minimum because it may be expensive
and may cause some ongoing issues after project completion.
Non-human resources must also be considered. [9] To what extent do we employ
development tools, testing software, project management software, etc. The
suggestion is to keep things simple and utilize the bare minimum resources that are
free to the user (non-profit), user friendly, and already extensively proven to be
reliable in industry. Remember, we want to assist the non-profit by implementing
a focused, easy to develop and easy to use system that they can rely upon
independently for many years to come without excessive dependence upon the
school.
Technology •
New cutting (or bleeding?) edge vs. proven and mature technology regarding
operating systems, programming languages, database management systems and
network operating systems?
• Older, current or newly released versions of the above?
• Older, current or new hardware?
• Fitting to the non-profit's current hardware and software operating
environments or redesigning or replacing them?
Most often it is prudent to try to install the new product or service with minimal
changes to the user's technical and office operating environments. This increases the
chances of success while reducing the impact of the project to a minimum on the
part of the user. [5]
Tasks/Deliverables This area of choices and match making may, in fact, be the most important one. First
of all, the scope of the project must be well defined and remain static over the course
of the effort. For example, are we simply converting the Excel spreadsheets to a
database management system or are we also redesigning the daily data transaction
entry system? The scope of the effort, that is, what are we actually creating and
delivering versus what are we not touching, not doing and perhaps handling in a
future project? [7] Once the scope is defined which specifies the major functions
of the project then the tasks and deliverables can be documented within a project
plan. Tasks appearing in a project plan should:
• have a clear and meaningful name
• include a description
• include what will be delivered upon the conclusion of the task
161
JCSC 27, 6 (June 2012)
• be assigned to a specific person(s)
• have a begin and end date
• include any dependencies
A final few considerations regarding the project plan and the tasks contained therein
include:
• take care to include all relevant tasks in the plan
• the durations assigned to the tasks for an individual are often too short and
optimistic and do not take into account the percentage of a person's weekly
schedule that he/she may be available to work on the project.
• task dependencies are often not taken into account
•
the task deliverable must be well defined to the extent that the assigned person
is aware of what she needs to "put on the table" at task completion time.
Timeframe The choices regarding the timeframe of the effort are, perhaps, rather clear cut and
include:
• Less than a full semester
• Full semester
• Two semesters or an academic year
The recommendation here would be to go with the full semester whenever possible
and to even take steps to shape the scope of the project in order to fit it within one
semester. [4] The single semester timeframe is recommended so that the project may
employ one small set of volunteer students throughout without worrying about
re-staffing with new students for the second semester. A sixteen week semester
should be short enough for keeping everyone focused and involved with the effort
and yet long enough to successfully complete the tasks laid out in the project plan.
We also need to address choices relating to people selection and most experienced
software project managers will advise us that the success of a project significantly
depends upon those people assigned to it. So let's take a look at three categories of
human resources and how might we choose the best people for the job at hand.
Students We need to match, select, or choose students who:
• have excellent grades in classes related to the project's technology
• are mature enough to meet commitments in a timely manner
•
162
are good communicators who will be easily to carry on discussions with users.
CCSC: Northeastern Conference
•
know enough about the technology to make a contribution yet are receptive to
advice, direction and new technologies
• willingly have volunteered for the effort and have not been pushed into it by
peers or the instructor
For a semester long project, typically three to four volunteer students will suffice.
[7]
User Obviously the school or the school's representative does not choose the User who
will be the main contact/liaison person for the non-profit. But we do have a
responsibility to relate to the non-profit's management staff what kind of time
commitments are involved, what user oriented decisions need to be made and what
kind of business knowledge and experience are necessary. Optimally, a first line
supervisor or second line lower level manager makes for an excellent User
contact/liaison. They tend to know the operating details of the business area which
will benefit from the project; they typically can roll up their sleeves and get involved
in the details of the task and are the people who can easily see and realize the
benefits of the project. They are also usually the most eager of all the users to
participate in the project.
Some choices that need to be made in recommending a user contact/liaison:
• Which staff level? Clerical, supervisory or managerial?
• Extent of business knowledge needed in the affected area?
• Degree of overall computer knowledge required?
• Degree of eagerness to participate in the project?
• Amount of time available to devote to the project?
Project Manager The college or university is committing to the development and possibly the
maintenance, of a production level application for a non-profit and so it is important
that the institution is well represented and that it has the best Project Manager in
place.
We need to make the match of the Project Manager to the project and some of the
choices in making the match include selecting a Project Manager with the
appropriate experience levels, including:
• software project management
• technical acumen
• liaison and planning skills
• user related business knowledge
• leadership abilities
163
JCSC 27, 6 (June 2012)
• maturity, dependability and track record
• prior ASL experience
The Project Manager may, in fact, be the class Instructor, User Liaison/Contact
person or an IT staff member from the college or university. When we review the
broad skills set required and dedication to the project, the Class Instructor is most
often chosen as the Project Manager. [3]
CONCLUSION
It may be tempting, in light of the fact that an institution is committing to guiding
an IT project to conclusion for the benefit of a non-profit, to simply forge ahead in an
eager and well meaning manner. After all, are we not giving of our time, people,
resources, experience and talents in a noble effort to assist a non-profit organization which
would not otherwise be able to conduct such a project?
But, temporarily placing our enthusiasm aside, we must keep in mind several
important thoughts, including:
• that the non-profit has expectations and is dependent upon the institution
• the students' expectations need to be managed and met
• the project should pertain to the associated class
• regardless who may be the beneficiary and who may be leading the effort, it
remains a software development project and should be managed as such
Essentially, a successful project outcome comes down to thinking about all of the
choices and matches that need to be made; making the correct choices and leading the
effort to the best of one's abilities for the sake of the non-profit, the school and the
students involved.
REFERENCES
[1] Almstrum, V. Condly, S, Johnson, A. Klappholz, D., Modesitt, K., and Owen, C.,
A Framework for Success in Real Projects for Real Clients Courses, in Ellis, H.,
Demurjian, S., & Naveda, F., (eds) (2008). Software Engineering: Effective
Teaching and Learning Approaches and Practices. Hershey, PA: IGI Global.
[2] Carter, Mary. A Profile of Service Learning Programs in South Carolina and their
Responsiveness to the National Priorities. Ann Arbor, Michigan: Bell & Howell
Company, 2009.
[3] EPICS Program, Purdue University, http://epics.ecn.purdue.edu/, 2008.
[4] Gibson, J. Paul and O'Kelly, Jackie, Software Engineering as a model of
Understanding for Learning and Problem Solving, ICER, Seattle, Washington,
October 1-2, 2005.
[5] Hatcher, Julie and Robert Bringle. "Reflection in Service Learning: Making
Meaning of Experience," Educational Horizons (1999): 179-185.
164
CCSC: Northeastern Conference
[6] Murray, M. and Guimaraes, M., Expanding the Database Curriculum, Journal of
Computing in Small Colleges 23, (3), 69-75, 2008.
[7] Olsen, Anne, L., A Service Learning Project for a Software Engineering Course,
The Journal of Computing Sciences in Colleges, 24, (2), 130-136, 2008.
[8] Patterson, D. et al. Spinning Interdisciplinary Service Learning Webs: A
Secondary Approach. Baltimore: Maryland Student Service Alliance, 2005.
[9] Silcox, Harry. A How to Guide to Reflection: Adding Cognitive Learning to
Community Service Programs, Philadelphia: Brighton Press Inc., 2003.
[10] www.servicelearning.org
[11] www.wikipedia.org/wiki/Service_learning
165
ADDING MICRO LABS TO AID PROFESSIONAL
DEVELOPMENT IN INFORMATION TECHNOLOGY CLASS
CURRICULUM*
Michael Jonas
Computer Information Systems Department
University of New Hampshire at Manchester
Manchester, NH 030301
857 389-2692
Michael.Jonas@unh.edu
ABSTRACT
Students in Computer Information Systems are exposed to a set of technologies
early in their development. However, focus on higher level topics cause them
not to apply many of these skills consistently enough to be adequately prepared
for the work force. One such skill set often overlooked is versatility in
operating system use. Depending on departmental preferences and student
personal experience, extensive exposure to build a solid foundation in modern
operating systems can be lacking, which is especially troubling for Information
Technology professionals who are confronted with various platforms in the
workplace. Using micro labs interspersed through normal class curriculum will
aim to increase exposure to achieve a level of familiarity with operating
systems. We specifically focus on giving students weekly hands on experience
with Linux in a Windows centric environment.
INTRODUCTION
The Computer Information Systems (CIS) department at the University of New
Hampshire at Manchester (UNHM) has approximately 70 majors currently enrolled. The
program requires 60 credit hours of course work in the major to receive a bachelors
degree. The basic curriculum is outlined in the table below.
___________________________________________
*
Copyright © 2012 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires
a fee and/or specific permission.
166
CCSC: Northeastern Conference
Table 1: CIS Curriculum as of fall 2010
(Note that CIS electives can be chosen from a list of both CIS and computer related
Engineering Technology courses.)
UNHM is a non-residential commuter college, one of six colleges of the University
of New Hampshire (UNH), with a more diverse student population when compared to
students from the main campus. The large majority of UNHM students attend school
full-time while working, approximately 20 or more hours per week. Full time student, on
average, carry a course load of 16 credit hours, i.e. four courses.
A survey from three mid to upper level CIS courses, comprising about half the
majors, showed that most students use some form of a Windows based platform as their
personal computer choice with a small number using Macintosh. Only a handful of
students had a Linux boot on their system, either run as a virtual machine or in dual boot
mode. Although students get exposure to other platforms throughout their coursework,
the Operating Systems Applications course is the only one that specifically exposes
students to various operating system environments and is taken in the first year of the
degree program. Considering that on average, students take more than four years to
graduate; once they enter their senior level courses, a long time may have passed since
they had in depth exposure to multiple operating system environments.
An assumption is made that students become sufficiently skilled in the various
operating system environments through exposure during course work while pursuing their
degree. However, as this is somewhat ad-hoc, the exposure ends up being limited and
students learn what they need to achieve success in each course but do not attain sufficient
experience to become well versed in the technical skills needed to be competent beyond
a rudimentary level. The results can be debilitating to students in higher level courses,
especially Capstone, where a vast array of Information Technology (IT) skills are
required. More importantly, lacking these essential skills in the workforce will affect job
performance after graduation.
167
JCSC 27, 6 (June 2012)
Motivation
In previous work with our CIS Capstone course [1, 2], we immersed students in a
research environment with a focus on speech technology. The goal was to engage students
in STEM disciplines by exposing them to the rigors of speech recognition, giving them
the opportunity to work on solving real world problems, gaining invaluable experience
along the way. Students learned to decompose problems, find solutions, self organize and
establish leadership roles based on their skills and interests. This gave a unique
opportunity to observe and guide the learning process that students used in a challenging
environment compared to that of a traditional external project oriented Capstone course
where only milestones and end goals are seen.
Students in the Capstone course were juniors and seniors and had taken the core CIS
curriculum as prerequisites, yet struggled with basic tasks such as uploading files from
one system to another, navigating a directory tree structure, locating executables, moving
and copying files, all without the aide of a graphical interface. The expectation was that
these rudimentary tasks should be simple and easy to achieve, so it came as a surprise that
many students struggled completing them successfully.
Many students were aware of the fact that they should understand these fundamental
tasks better, but could not pinpoint what the primary issue was other than lack of
experience applying what they had learned in their freshman course work. It was
encouraging to see that students understood that this lack in skills posed a bigger problem
to them than simply completing the task at hand. This is what motivates the rest of this
paper.
The goal of our planned approach is to strengthen student skills in fundamental
operating system concepts vital to IT professionals. We do so by introducing the idea of
micro labs into the normal class curriculum. For our pilot program we added this to our
introductory networking course, Networking Concepts, a course that traditionally has a
high degree of hands on work to begin with.
APPROACH
As UNH Manchester is a commuter college, most classes meet in a single three hour
block (two hours and fifty minutes to be precise) one day during the week. In order to
utilize class time optimally, dividing it up into lecture and lab work can create a vibrant
learning environment. For the Networking Concepts course, labs are an integral part of
learning about the fundamentals of network software and architecture, so classes are
organized into a seventy-five minute lecture followed by a ninety minute lab with a short
break in between.
The CIS department's computer lab has twenty laptops with Windows XP as the base
configuration. Weekly networking labs focus on using Windows utilities and resources
to guide students through the fundamental concepts applied to modern networks [3]. As
the labs are Windows based, students see little cross platform exposure. Although many
networking commands in Windows have similar corresponding commands in Linux, this
is not true in all cases.
168
CCSC: Northeastern Conference
Additional computing resources are available in the form of servers hosting various
departmental web pages where students are able to organize class projects. As servers are
implemented using virtual machines on a powerful host hardware platform, an additional
Linux server was created solely for the purpose of enabling students to access and gain
experience with UNIX. In order to insure a seamless transition between Windows, which
students are comfortable with, and UNIX, which they are not, a set of twenty minute
micro labs were introduced each week during lab time in the Networking Concepts course
as a refresher of basic UNIX commands. (Note that we will refer to the general term
UNIX as opposed to focusing on a specific release of Linux, though for the lab we used
Fedora.)
Micro Labs
As labs follow weekly lectures on networking topics, the first month of labs covered
fundamental hardware configurations, wiring of computers and switches together, and
student's exploration of various network settings on the lab's Windows based laptop
computers. This provided ample time to ramp up student's knowledge with UNIX before
more closely integrating micro labs with the network subject material covered during
class lectures.
As part of each ninety minute lab, students would spend the initial twenty minutes
working on the Linux server, logged on via Putty.exe, a secure shell client, getting
exposure to fundamentals of the UNIX operating system. Most tasks focused primarily
on students performing simple operations and navigating through the file system
becoming familiar with basic concepts of the UNIX directory tree and file manipulation
commands such as ls, cp, mv, rm, cat, and more to name a few. Time was also spent
getting students familiar with the vi editor, as it exists on any modern UNIX distribution.
One of the first tasks involved students learning to create their own user accounts.
Though simply executing useradd with appropriate options will create an account,
students were also shown how to create it directly by exploring what that command
specifically added and modified to system files within the /etc directory. It's not
necessarily critical to understand such a simple command, but the process of
demonstrating the underlying structure of UNIX and its system of files is important for
students to feel comfortable with. Our approach in the twenty minute micro labs was to
introduce students to basic UNIX commands and slowly widen the scope of what they
were exposed to. The hope was that through repetition, students would become both
familiar and comfortable with the environment.
As the course progressed, exercises in using vi, creating csh based scripts, and
exposure to more complex commands such as ps, sed, awk, grep, tr, sort and
uniq gave students ample experience with a variety of UNIX commands. The aim, of
course, was not to make UNIX the focal point of the class, but an extension to the
networking labs. To this end, labs were slowly integrated with micro labs and instead of
leading off with a twenty minute session on UNIX; students were tasked to repeat part of
their networking lab work, which was specified for Windows, within the UNIX
environment. As there isn't always a one-to-one correspondence between the various
network commands, students were forced to explore the environment and discover for
169
JCSC 27, 6 (June 2012)
themselves not only what the equivalent commands were, but how to find them. This
forced them to better understand the UNIX binary directory hierarchy of /sbin, /bin,
/usr/bin and at times /usr/local/bin.
An interesting Windows utility is the net command which captures many properties
of networking under a single operation with many different options. This is not the case
within UNIX and requires a disparate, unrelated set of commands to accomplish many of
the same things. Although the concept of micro labs is not meant to tie specifically to
networking, this demonstrates the importance of keeping students up to date with more
than just one operating system environment, regardless of their personal preference or
internal departmental and instructor choices.
Micro labs could be used to give students familiarity with other important skill sets
and not focus solely on operating systems. For instance, they could be used to expose
students to network security threats and tools if the curriculum does not adequately
accommodate this. The point of micro labs is to fill gaps in knowledge to ensure a well
rounded student, something the general curriculum may be unable to do with time and
subject constraints. (Note the author believes an in-depth knowledge of operating systems,
and specifically UNIX, is an important skill that leads to a better understanding of
complex systems in context of modern decentralized client-server based IT education [4].)
RESULTS
The idea of micro labs was born from observations of a Capstone course which
demonstrated a lack of basic student IT skills, specifically with the UNIX operating
system environment. Feedback from the Capstone class suggested that many students felt
ill prepared to deal with the vast file based data management issues required for speech
related topics pursued during the course. Though it doesn't necessarily matter if the focus
is with either the Windows or UNIX environments, since Capstone relied on a set of
Linux servers, students felt that missing that fundamental skill set significantly impacted
their performance on the project.
To insure that the Capstone experience wasn't unique, a first step was to take a
student survey in three courses during the fall semester to determine operating system use
and competence. Since first day informational quizzes are the norm for any of the author's
classes, simply adding a few questions regarding operating system preferences required
little effort. Of the 36 unique students registered in three mid to upper level courses in CIS
(30 of which were majors, plus 2 Business and 4 Engineering Technology majors), only
8 ran a Linux variant on their personal systems and only 4 of them were CIS majors. A
handful of other students said they were comfortable with a UNIX environment even
though they didn't use it regularly. The remaining students mostly used a variant of
Windows with a small subset using Mac OS. (Note that even though the Mac OS is UNIX
based, only 2 students claimed comfort with the underlying operating system.)
Midway through the semester, at the request of the author, course progress was
evaluated by an external consultant as part of UNH's Teaching Excellence program via
the Mid-course Assessment Process (MAP). With MAP, the consultant takes thirty
minutes to get feedback from students both individually and in groups, assuring
170
CCSC: Northeastern Conference
anonymity in their responses, and crafts a summary report for the instructor. Feedback
suggested students were happy with the overall progress of the course and especially
interested in the micro lab work being done.
The general labs themselves allowed for some evaluation on the success of micro
labs as they slowly integrated the UNIX environment within the work. Since students
were asked to repeat Windows based networking commands towards the latter part of the
semester by logging onto the Linux server and redoing the steps, it gave a good indication
of how much of UNIX they had learned. In Capstone, these tasks were surprisingly
problematic, but with a similar student body, towards the end of the Networking Concepts
class, students were able to do them with little problem; a promising sign of the
effectiveness of micro labs.
CONCLUSIONS
Looking at the CIS curriculum and specifically at the Operating Systems
Applications course designed to introduce students to different operating system
environments, it is clear that students are adequately exposed to current technology and
practices. However, with learning, initial exposure has less impact if not consistently
reinforced through continuous use. A single course that teaches students basic operating
system commands with UNIX has little impact if not strengthened within the curriculum
by constant exposure to that environment.
Practical realities dictated by time constraints forces courses to focus more on one
type of environment than another. Many core courses focus on higher level systems such
as databases, web authoring, source control, group management and thus have less time
to insure that students are exposed to fundamental aspects of operating systems in use
today. The result can be atrophy in skills that are critical to success for students in the IT
field once they enter the work force.
By injecting micro labs into various core curriculum courses, the aim is to revitalize
basic student skill sets that they learned at the start of the program to insure they are
comfortable using the variety of systems they will face once employed. For this work, we
focused on the UNIX environment, specifically Linux. We felt our students were lacking
in ability both due to their personal preference of the more common Windows
environment and our department's limited resources making it impossible to host different
labs with multiple operating system platforms.
Student response has been positive. There is a genuine interest in wanting to know
how to comfortably navigate and work within a UNIX command shell and understand
basic operations. As the course progressed, integrating what was learned in micro labs
with the graded work of the actual networking labs helped reinforce that what students
were learning had practical impact and gave a clearer picture of how students benefited
from micro labs.
171
JCSC 27, 6 (June 2012)
REFERENCES
[1] Jonas, M., Capstone Experience - Lessons from an Undergraduate Research
Group in Speech at UNH Manchester, SIGITE-2011, October 20-22, 2011.
[2] Jonas, M., Capstone Experience: Engaging Students in Speech Processing to
excite them about STEM, Journal of Computing Sciences in Colleges, faculty
poster, archive Volume 26 Issue 6, June 2011.
[3] Boyle, R., Applied Networking Labs: A Hands-On Guide to Networking and
Server Management, Upper Saddle River, NJ: Prentice Hall, 2011.
[4] T. Gill, G., Hu, Q., Information Systems Education in the USA, Education and
Information Technologies, Volume 3 Number 2, pages 119-136, June 1998.
172
INDEX OF AUTHORS
Abelson. H. . . . . . . . . . . . . . . . . . . . 39
Abelson, H. . . . . . . . . . . . . . . . . . . . 16
Arnow, D. . . . . . . . . . . . . . . . . . . . 107
Baliga, G. . . . . . . . . . . . . . . . . . . . . 68
Banerjee, S. . . . . . . . . . . . . . . . . . . . 61
Barr, V. . . . . . . . . . . . . . . . . . . . . . . 19
Blake, M.. . . . . . . . . . . . . . . . . . . . . . 1
Breimer, E. . . . . . . . . . . . . . . . . . . . 42
Connolly, M. . . . . . . . . . . . . . . . . . 107
Cotler, J. . . . . . . . . . . . . . . . . . . . . . 42
Dickson, P. . . . . . . . . . . . . . . . . . . 128
Duncan, H. . . . . . . . . . . . . . . . . . . . 49
Ellis, H. . . . . . . . . . . . . . . . . . . 13, 110
Fincher, S. . . . . . . . . . . . . . . . . . . . . . 5
Fischbach, A. . . . . . . . . . . . . . . . . . 63
Ford, S. . . . . . . . . . . . . . . . . . . . . . . 78
Goski, C. . . . . . . . . . . . . . . . . . . . . 151
Gudmundsen, D. . . . . . . . . . . . . . . . 10
Hart, D. . . . . . . . . . . . . . . . . . . . . . . 65
Hertz, M. . . . . . . . . . . . . . . . . . . . . . 78
Hislop, G. . . . . . . . . . . . . . . . . . . . . 13
Hoffman, M. . . . . . . . . . . . . . . . . . . . 1
Howles, T.. . . . . . . . . . . . . . . . . . . 121
Imberman, S. . . . . . . . . . . . . . . . . . . 73
Jackson, S.. . . . . . . . . . . . . . . . . . . 110
Jimenez, L. . . . . . . . . . . . . . . . . . . 151
Jonas, M. . . . . . . . . . . . . . . . . . . . . 166
Kakavouli, S.. . . . . . . . . . . . . . 16, 113
Klibaner, R.. . . . . . . . . . . . . . . . . . . 26
Kortsarts, Y. . . . . . . . . . . . . . . . . . . 63
Kurkovsky, S. . . . . . . . . . . . . . . . . 110
Kussmaul, C.. . . . . . . . . . . . . . . . . . 13
Lazowska, E. . . . . . . . . . . . . . . . . . . . 6
Lobo, A. . . . . . . . . . . . . . . . . . . . . . 68
MacLean, L. . . . . . . . . . . . . . . . . . . 34
Meinke, J. . . . . . . . . . . . . . . . . . . . . . ix
Menzin, M. . . . . . . . . . . . . . . . . . . 107
Metaxas, P. . . . . . . . . . . . . . . . . . . 113
Michaud, L. . . . . . . . . . . . . . . . . . . . 99
Morelli, R.. . . . . . . . . . . . . . . . . 16, 39
Morreale, P.. . . . . . . . . . . . . . . . . . 151
Mustafaraj, E. . . . . . . . . . . 16, 39, 110
Olivieri, L.. . . . . . . . . . . . . . . . . . . . 10
Postner, L. . . . . . . . . . . . . . . . . . . . 110
Proulx, V. . . . . . . . . . . . . . . . . . . . . . 7
Ravenscroft, R. . . . . . . . . . . . . . . . 135
Riabov, V. . . . . . . . . . . . . . . . . . . . . 58
Rilett, D. . . . . . . . . . . . . . . . . . . . . 149
Sabin, M.. . . . . . . . . . . . . . . . . . . . . 70
Santa Maria, R. . . . . . . . . . . . . . . . . 61
Sarawagi, N. . . . . . . . . . . . . . . . . . . 10
Scorce, R. . . . . . . . . . . . . . . . . . . . 158
Stevenson, C. . . . . . . . . . . . . . . . . 142
Stewart-Gardiner, C. . . . . . . . . . . . 107
Stiller, E. . . . . . . . . . . . . . . . . . . . . . 84
Stone, J.. . . . . . . . . . . . . . . . . . . . . 107
Sturm, D.. . . . . . . . . . . . . . . . . . . . . 26
Tan, J. . . . . . . . . . . . . . . . . . . . . . . . 49
Tasneem, S.. . . . . . . . . . . . . . . . . . . 81
Turbak, F. . . . . . . . . . . . . . . . . . 16, 39
Uche, C. . . . . . . . . . . . . . . . . . . . . . 39
Vaughn, J. . . . . . . . . . . . . . . . . . . . 105
Werner, M. . . . . . . . . . . . . . . . . . . . 76
Wiseman, C. . . . . . . . . . . . . . . . . . 149
Yoder, R.. . . . . . . . . . . . . . . . . . . . . 42
Zimmerman, B. . . . . . . . . . . . . . . . . 90
173
174
175
176
177
178
179
180
JCSC
Volume 27 Number 6
Muhlenberg College
2400 Chew Street
Allentown, PA 18104-5586
June 2012
NON-PROFIT ORG.
U.S. POSTAGE
PAID
ALLENTOWN, PA
PERMIT #759