SIGCSE 2007 Workshops

The following workshops are available to attendees at a nominal fee.

For workshops listed as Laptop Required participants are expected to bring their own laptops to the workshop to complete the hands-on activities. Workshops designated as Laptop Encouraged do not require that participants bring a laptop.

Saturday, March 10  3:30 PM - 6:30 PM

26 Object Think: Thinking Like an OO Programmer Meeting Rm 1

Joseph Bergin, Pace University, New York

Object-oriented programmers think differently than procedural programmers. Object programs look different and have different structure. This has caused difficulty in our community and has caused some to conclude that objects have failed. Others have replied that no, objects haven't been given a chance yet. But if objects are really a different paradigm, then thinking differently is a natural consequence. Those who believe that object-orientation is all about classes and little else will benefit from a deeper view. Time will be available for discussion and even debate, though it will be action directed and not simply philosophical. Programming exercises in Java.
Laptop Required

27 Using Microsoft .NET in the IS/CS Curriculum Meeting Rm 9

Joe Hummel, Lake Forest College
Mike Morrison, University of Wisconsin-Eau Claire
Joline Morrison, University of Wisconsin-Eau Claire

Microsoft .NET is emerging as an industry-standard framework for creating Windows, Mac, Linux, and Web-based applications. The purpose of this workshop is to introduce .NET and allow attendees to evaluate its suitability for use in the CS or IS curriculum. The workshop will introduce attendees to console-based, GUI, database, and Web-based .NET applications using demonstrations and hands-on exercises. Materials and exercises will be example-based using C# and VB, and are suitable for student distribution. Attendees will have access to electronic copies of all workshop materials.
Laptops Provided by Presenter

28 Multimedia Projects for CS1 and CS2 in Java Meeting Rm 3

Barbara Ericson, Georgia Institute of Technology

Constructing and manipulating media is a motivating context for students in CS1 and CS2. Modern computers are capable of interesting media effects in reasonable running time. In this workshop, we will present algorithms and programs in Java that work with pictures, sounds, videos, and text. Example techniques include mirroring a picture, removing "red-eye", chromakey ("blue/green screen"), reversing a sound, changing the pitch of a sound, parsing web pages for information, creating frame-based animations, creating linked lists of MIDI music and using trees to represent scene graphs.
Laptop Encouraged

29 Developing Algorithm Visualizations for Computer Science Instruction Meeting Rm 4

Tom Naps, University of Wisconsin - Oshkosh
Myles McNally, Alma College
Scott Grissom, Grand Valley State University

The JHAVÉ environment for algorithm visualization (AV) and its associated curricular materials emphasize pedagogical best practices rather than technology. JHAVÉ-based curricular materials are currently available for a wide variety of data structures and algorithms, as are Java support tools for the easy development of algorithm visualizations. Topics to be covered during this workshop will include best practices in using AV and design of JHAVÉ algorithm visualizations. Hands-on activities will first briefly focus on using the JHAVÉ environment as a pedagogical tool, followed by a more in-depth session during which participants create a complete algorithm visualization using the JHAVÉ support tools.
Laptop Required
Please come with Java installed on your laptop

30 Teaching Machine Language Basics To Intro Students in Just One Week Meeting Rm 5

David G. Kay, University of California, Irvine

Students in introductory courses understand some concepts better when they have a concrete understanding of some fundamental ideas about machine organization: memory as a sequence of bytes and programs as a sequence of machine language instructions. But traditional coverage of those topics takes too long and involves too many tedious details. This workshop will show how to introduce the essentials of machine language just a week of class, using a hypothetical pencil-and-paper machine that pares away everything inessential. This approach works in introductory courses for majors and non-majors, helping students grasp many core concepts including pointers, data structure performance tradeoffs, compilation, and multitasking.

31 Ajax Meeting Rm 6

Barry Burd, Drew University

The term Ajax stands for "Asynchronous JavaScript and XML," a new name for a combination of existing technologies. With Ajax, a Web page loads as quickly as any other application. Parts of the page refresh themselves as needed, while other parts stay the same. No more waiting for a full page to come back from the server. The most widely used application of Ajax is Google Maps. The Google server sends an XML document to the visitor's Web browser, and then the browser does all the formatting. The visitor can pan and zoom without reloading the entire page.
Laptop Required

32 Introducing Pair Programming into Your Classroom Meeting Rm 7

Laurie Williams, North Carolina State University
Lucas Layman, North Carolina State University

Pair programming is a style of programming in which two students work together at one computer, collaborating on the same algorithm, code or test. The workshop presenters will provide information on how to introduce pair programming to students and how to manage classes that incorporate student pairs. They will also present a survey of research results related to the use of pair programming in education. Finally, workshop participants will take part in an active learning pair programming exercise that can be used with students in a class.

33 Secure Programming: Buffer Overflows and Other Common Mistakes Meeting Rm 8

James Walden, Northern Kentucky University
Charles E. Frank, Northern Kentucky University
Rose Shumba, Indiana University of Pennsylvania

Despite the discovery of thousands of software vulnerabilities each year, few computer science programs teach secure programming techniques. This hands-on workshop introduces participants to common programming mistakes that create security vulnerabilities, including buffer overflows, integer overflows, and format string bugs, and teaches the secure programming techniques needed to fix these common problems. Examples of vulnerabilities from programming textbooks and production software will be shown in C, C++, and Java. Participants will learn to detect and repair common security vulnerabilities through a series of three programming exercises, which are designed so that participants can re-use them in their own classes.
Laptop Required

34 Using Magic to Teach Computer Science Meeting Rm 2

Tom Way, Villanova University

Grabbing and holding the attention of computer science students, or any students, is of fundamental importance to getting the message across. In this workshop, you will learn hands-on how to use easily performed magic tricks to demonstrate fundamental, important or difficult computer science concepts in a way that connects with students, breaks through apprehension about difficult topics and generates enthusiasm for the subject. We briefly will explore the case for employing magic (sparingly) as a pedagogical device, focusing mostly on learning a number of ready-to-use magical effects using common items and understanding how to learn more. All materials will be provided.

35 HarambeNet: Introducing Computer Science through the Modeling and Analysis of Social Networks Meeting Rm 10

Jeffrey Forbes, Duke University
Owen Astrachan, Duke University

The problems and motivating examples in computer science courses are often drawn from domains that primarily interest computer scientists like data processing. The goal of the HarambeNet project is to develop materials and modules for an alternative introduction to computer science centered around the Science of Networks. We hope to leverage the broad student interest in social networking sites like facebook to broaden participation in computer science. This hands-on workshop will provide background in networks, social networks, and visualization using examples from sociology, biology, and economics. Participants will work through paper and computer-based exercises modeling and analyzing social networks.
Laptop Required

36 Introducing LEGO MindStorms NXT and its Use in CS Education Ballroom D

Myles McNally, Alma College
Frank Klassner, Villanova University
Pamela Lawhead, University of Mississippi

This workshop focuses on using the next generation of the LEGO MindStorms robotics platform - NXT - as an active learning platform in CS education. A complete reworking of MindStorms, it provides a number of new opportunities for CS educators. The workshop opens with an introduction to MindStorms and the new NXT release. The workshop will then focus on a hands-on introduction to tested series of laboratories for CS instruction. The laboratories range from CS 1-2 to AI, Programming Languages and Operating Systems. Participants will be able to purchase an NXT kit at a significant discount and will have priority to attend a follow-up NSF sponsored workshop.
Laptop Required