Academia.eduAcademia.edu
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