1. Nifty
Examples in Discrete Mathematics
William
Marion,
Peter
B. Henderson,
Good examples
are powerful tools for enhancing student understanding of important
connections between topics in discrete mathematics and fundamental ideas
in computer science. The presenters will
illustrate some nifty examples they have used to supplement material
found in typical discrete math texts, or to present topics in novel ways. Small groups will work through some of these
examples and discuss what they have learned. In
addition, participants will submit one or two examples they have used.
Groups will work to refine some of these examples. All
materials presented, collected and developed will be posted on a
workshop web page.
Current Enrollment: 25/30
Marriott Ballroom I
2. Java
and XML in Concert
Helmar Burkhart,
Both Java and XML offer platform independence: Java for
software, XML for data. Thus, both technologies are ideal building
blocks for future-oriented application development. The workshop’s focus
is on the Java ─ XML interaction and
comprises a round trip of hot technologies used for tasks such as XML data access and
processing, XML-Java binding, web service development, and XML-driven
software generation. The presentation includes plenty of courseware
samples and applications.
Workshop attendants should have a basic knowledge of both XML
and Java. After the workshop, attendees will have seen an overview of
leading edge technologies and have a basic understanding why and how to
include them in the classroom.
Current Enrollment: 22/30
Marriott Ballroom II
3. HCI
in the Classroom
Daniel
D. McCracken,
Human-Computer Interaction is a recognized field in the CS
curriculum, as of Computing Curricula 2001. But what is it? Can you
teach it without a formal background in the subject? This workshop
addresses both questions, through a combination of
lecture/demonstrations, group exercises, and discussion of how to fit
HCI into an already-crowded CS curriculum. Each participant may request
a copy of User-Centered Website Development: A Human-Computer
Interaction Approach, by Dan McCracken and Rosalee
Wolfe (
Current
Enrollment: 20/30
Marriott Ballroom III
4. Developing
Software for the Tablet PC
Jeffrey
L. Popyack,
Bruce
Char,
Nira Herrmann,
Tablet PC’s feature a stylus capable of inputting a data type
called Ink. Ink has many characteristics
that allow freehand pen annotation, editing, handwriting recognition,
and text search. Microsoft’s Tablet PC
Software Development Kit (SDK) allows development of Windows-based
applications for Tablet PC’s with Visual Studio .NET, which includes a
full set of graphical user interface and Ink manipulation tools.
This introductory-level workshop includes a general overview
of Tablet PC use, brief introduction to the Visual Studio .NET
environment, salient features of C#, introduction to resources and demos
available for Tablet PC developers, and instruction on using the
SDK. THIS IS A HANDS-ON WORKSHOP - TABLET
PCs WILL BE PROVIDED FOR THE USE OF WORKSHOP ATTENDEES.
Current Enrollment: 20/25
Marriott Ballroom V
5. Active and Cooperative Learning Techniques for
Computer Science Education
Jeffrey
J. McConnell,
Active and cooperative learning provides a powerful mechanism
to enhance depth of learning and increase material retention. Active and cooperative learning get students
involved with the material rather than passively listening to a lecture. This workshop will use introductory material
on active and cooperative learning for a number of activities that will
give participants direct experience with and the chance to observe these
techniques in action.
Current
Enrollment: 30/30
THIS WORKSHOP IS FULL
Marriott Ballroom VI
6. Intellectual
Property Law Basics for Computer Science Instructors
David
G. Kay,
An introduction to the basics of intellectual property law
(patents, copyrights, trade secrets, trademarks) designed to give
computer science instructors a framework for answering student
questions, debunking misconceptions, and understanding how the law and
computing interact.
Current
Enrollment: 10/30
Marriott Ballroom VII
7. LEGO MindStorms Across the Computer Science Curriculum
Frank Klassner,
Myles
McNally,
Pamela Lawhead,
This workshop will explore how to use LEGO MindStorms as an
active-learning platform for teaching topics ranging from Programming
101 to Computer Architecture to Operating Systems to Artificial
Intelligence. We will identify common problems first-timers may face in
adopting the platform, and describe approaches to overcome them. In this
workshop, COMPUTER SCIENCE will be emphasized over robot-building.
Participants will receive material on how to use Java, C/C++, and Lisp
to control and program MindStorms. All experience levels are welcome. THIS IS A COMPUTER LAB WORKSHOP.
Current Enrollment: 25/25
THIS WORKSHOP IS FULL
Norfolk State University - Brown Memorial Hall
8. Using the NSF Digital Library
to Enhance Your Teaching
Manuel
A. Pérez-Quiñones, Virginia Tech,
Lillian Cassel,
Edward
Fox, Virginia Tech,
John Impagliazzo,
J.A.N.
Lee, Virginia Tech,
C.
This workshop will show how to use the resources available in
the NSF Digital Library to improve your class lectures and activities.
The workshop will also help participants in the preparation of materials
that can be submitted to CITIDEL, the computing repository of the NSF
DL, and to other online repositories. The preparation includes
evaluation of the materials, which will lead to refinement and ultimate
submission for distribution. Participants will learn techniques for
future development and evaluation of resources and will gain strategies
on how to use the National Digital Library. THIS
IS A COMPUTER LAB WORKSHOP.
Current Enrollment: 7/25
9. jGRASP: An Integrated
Development Environment with Visualizations for
James
H. Cross II,
Dean
Hendrix,
David Umphress,
jGRASP is an integrated development environment, created
specifically to provide automatic generation of software visualizations
for the purpose of improving the comprehensibility of the software. These visualizations, which are particularly
well-suited for CS1 and CS2 students learning Java, include the Control
Structure Diagram, the UML Class Diagram, and the visual debugger. The workshop will include tutorials and example
programs to demonstrate how instructors can improve the learning and
programming experience of their students with jGRASP. Instructors are encouraged to bring programs
from their own courses to experiment with the visualizations during the
workshop. jGRASP is freely available at www.jgrasp.org. THIS
IS A COMPUTER LAB WORKSHOP.
Current Enrollment: 18/25
10. LAMP: An Approach to
Teaching Internet Technology Using Open Source Software
Jigang Liu,
Although
Microsoft has a very strong presence in the market of Internet
technology, open source software is gaining acceptance worldwide at a
pace beyond many predictions, with many businesses, government and
non-profit organizations, and universities already using it. In this
workshop we will introduce you to how to employ open source software,
Linux, Apache, MySQL, and PHP (LAMP) in particular, to teach Internet
technology in a university setting. Through three target-oriented small
projects, you will experience how easy it is to create a non-trivial
3-tier web based application with LAMP. Some pedagogical issues, such as
course design, software selection, teaching strategies, and case
studies, are also briefly discussed in the workshop. No prior experience
in Internet technology is required for computer science educators. THIS
IS A COMPUTER LAB WORKSHOP.
Current Enrollment: 20/25
Norfolk State
University - Brown Memorial Hall
11. Bioinformatics for
Computer Scientists
Debra
T. Burhans,
Gary R. Skuse, Rochester Institute of Technology
Paul T. Tymann, Rochester Institute of Technology
This workshop is designed to introduce computer science
educators to the emerging field of bioinformatics. The workshop will
provide an overview of basic biological concepts, including fundamental
structures such as cells, genes, chromosomes and proteins along with
higher-level concepts such as genomes, proteomes and the biobibliome. Some
important algorithms for bioinformatics analysis will be introduced, in
particular those related to sequence assembly and gene prediction. The workshop will conclude with a discussion of
bioinformatics resources for educators, including software, databases,
course and laboratory materials, exercises, and on-line teaching tools.
Current Enrollment: 30/30
THIS WORKSHOP IS FULL
Sheraton - York
12. Teaching
Software Engineering (Software Development Process) Using Real Projects
for Real Clients
David Klappholz, Stevens Institute of Technology
A course based on teams working on real projects for real
clients requires a great deal of material as well as decisions on such
issues as team formation, client vetting, grading of individual versus
team effort, agile versus heavyweight process, etc. We
begin with Barry Boehm’s USC CS577, a course that comes with readily
available lecture slides, homeworks,
templates for artifacts, guides to their use, and examples of their use
in previous student projects, and discuss its tailoring to various
situations, including use at research universities, universities with
adult student populations, and minority institutions.
Current
Enrollment: 30/30
THIS WORKSHOP IS FULL
13. Microsoft .Net Programming
(Part 1): Building Applications with C#, J#
or VB .NET
Joe
Hummel,
Microsoft .
Current
Enrollment: 30/30
THIS WORKSHOP IS FULL
Hampton Roads Ballroom II
14. An Introduction to Aspect Oriented Programming
Timothy Knautz, University of Wisconsin-Parkside
Stuart Hansen , University of Wisconsin-Parkside
Aspect Oriented Programming (AOP) is a relatively new
programming paradigm where crosscutting concerns are
emphasized. A crosscutting concern
is some feature of a program that is present throughout the system and
cannot be easily encapsulated into a class. Examples
of crosscutting concerns are security, profiling and visualization. In AOP, concerns are
grouped into aspects, which are then woven into the system. This workshop introduces AOP using AspectJ, but the ideas presented are applicable
to any aspect oriented language. Topics include: Object Oriented vs. Aspect Oriented
programming, join points, pointcuts,
advice, introductions, aspects, weaving and the AspectJ
implementation.
Current Enrollment: 25/30
15. Marine
Biology Simulation Case Study
Alyce Brady,
Kathleen
Larson,
The Java-based Marine Biology Simulation case study developed
for the Advanced Placement program is equally appropriate for CS1/CS2
courses at the high school or college level. The
program illustrates topics from the introductory sequence, such as
object interaction, interfaces, inheritance, dynamic binding, a variety
of data structures, and discrete simulation. The
accompanying narrative discusses the program's design and
implementation, and presents a number of modifications to introduce new
pedagogical topics. It focuses extensively
on testing, and includes analysis questions, exercises, and programming
assignments.
This workshop will introduce the case study and how to
integrate it into introductory courses.
Current Enrollment: 21/30
Sheraton - Stratford
16. Title:
Multimedia Construction Projects for CS1/2
Mark Guzdial, Georgia Institute of Technology
Multimedia construction can be a motivating and creative
domain for examples and assignments in computer science classes. Because of the speed and capacity of modern
computers, simple and obvious algorithms that fit even at the CS1 and
CS2 levels run in reasonable time. In this
workshop, we will cover both algorithms and working code for creation
and manipulation of sound, image, and video data. Example
techniques will include sound splicing and reversing, chroma key ("blue screen") image effects,
animation, and Photoshop-like filters. Example code will be presented in
Python (Jython), Smalltalk (Squeak), and
Java.
Current
Enrollment: 30/30
THIS WORKSHOP IS FULL
Hampton Roads Ballroom
III
17.
Teaching Design Patterns in CS1/CS2
Carl Alphonce, University at
Dung (Zung) Nguyen,
Philip Ventura, State University at West Georgia
Michael
R. Wick,
Stephen
Wong,
Object-oriented programming (OOP) is an effective
paradigm to abstract the problems at hand and master their
complexity; as such it is pervasive in all large modern software
systems. Many of the recurring abstractions are expressed by design
patterns making them powerful tools to formulate and implement
complex, yet flexible, extensible, robust and correct systems. From
our experience teaching CS1/CS2, we believe it is possible and desirable
to teach OOP from a design patterns perspective.
This workshop
addresses how to present design patterns in an objects-first CS1/CS2
sequence so that their purpose and applicability are plainly grasped
by a beginning student.
For additional
information see: http://www.cse.buffalo.edu/~alphonce/SIGCSE2004/
Current Enrollment: 25/25
THIS WORKSHOP IS FULL
Blaise W. Liffick,
This workshop will demonstrate how assistive technology (AT)
for the disabled can be incorporated into computer science as a method
of demonstrating basic CS principles, human-computer interaction
methods, and social, legal, and ethical issues in computing. There is an increasing need for computer
professionals who are familiar with AT to (1) provide support to
disabled employees, and (2) provide support for company clients. This workshop will prepare computer science
educators to incorporate examples, assignments, and specific information
about AT into standard computer science courses, as well as present a
model for a course on AT from a computer science perspective.
Current Enrollment: 7/25
19. Teaching an Introductory Computer Graphics Course using
OpenGL
Dan Cliburn,
In the past, introductory graphics courses focused
traditionally on algorithms for drawing points, lines and polygons using
low-level or system specific commands. This
approach has become dated with the introduction of OpenGL and other high
level 3D graphics application programming interfaces (API). OpenGL
is an API that provides access to graphics hardware through functions
common to 3D graphical applications. This
workshop focuses on using OpenGL to teach a junior/senior level elective
course in computer graphics. Both OpenGL
programming techniques and the design of a high level 3D graphics API
such as OpenGL will be covered.
Current Enrollment: 23/25
20. Team OOP Projects as a Teaching Tool
Maria Litvin,
One widely accepted claim about OOP — that it facilitates
team software development — is often presented without providing
students with adequate hands-on experience. Participants
in this workshop will take part in a meaningful OOP project. Tasks will be divided among programmers with
various technical strengths. The team
leader and group leaders will supervise the work of team members and
integrate their code into a final product. The
emphasis will be on project management rather than on writing Java code. The workshop will include a brief overview of
the key OOP concepts and a post-lab discussion of the development
process and results. Some familiarity with
Java is expected.
Current Enrollment: 12/25
21. WANs, LANs, and WLANs - Networking Laboratories using Simulation
Chris
McDonald, The
This workshop will demonstrate that many practical aspects of
computer networking can best be motivated, demonstrated, developed and
analyzed through quality, interactive, simulation tools. The
workshop reflects on our 12 years' teaching experience with the
simulation of wide-area, local-area Ethernet, and the exciting, new,
mobile and ad-hoc wireless environments, in undergraduate courses of up
to 180 students each year.
Faculty will be introduced to
exercises and assessments suitable for open- and closed-laboratory
sessions, and even capstone projects. Road-tested
student exercises will demonstrate detection and recovery from
data-corruption and loss, data-link protocols, table-driven and
on-demand routing algorithms, fragmentation, encryption and compression.
Current Enrollment: 20/30
Sheraton - Brandon
22. Robot Control and Embedded
Systems on Inexpensive Linux Platforms
Edward
C. Epp, Intel Corporation
Robotics and
embedded systems labs are making their way into the undergraduate
curricula for reasons that include creating motivational exercises,
exercising cross discipline problem-solving skills, and supporting
courses (AI, embedded, OS, architecture). A new set of small,
inexpensive ($300-600), Linux control boards provides increased
flexibility and richness.
This workshop
explores small XScale controllers along with available software. We will
learn how to compile Linux kernels, use cross-compilers, take advantage
of Java, use PCMCIA flash memory, interact with wireless sensor nets
(802.11, bluetooth, and motes), set up web servers, use USB webcams,
control an AmigoBot, and interact with serial controllers.
Current Enrollment: 22/30
Hampton
Roads Ballroom I
23. Java: an Eventful Approach
Andrea Danyluk,
Kim Bruce,
Tom Murtagh,
In this workshop we describe an
objects-first approach to teaching Java that introduces event-driven
programming in the very first programming examples, introduces
concurrent threads early, and uses graphics and animation extensively. We show how these seemingly advanced topics
can be presented so that they are easy for introductory course students
to grasp. We also show how our approach
exposes students to object-oriented programming techniques more
thoroughly than is possible in more traditional
approaches. Our
approach is supported by materials developed with NSF funding including
extensive course notes, laboratory exercises, the Objectdraw
library, and a textbook to be published in 2004.
Current Enrollment: 13/30
Hampton Roads Ballroom VIII
24. Building a Modern Computer
from First Principles
Shimon Schocken, Interdisciplinary Center Herzliya
Noam Nisan,
We describe a
course that aims to demystify the integrated function of computer
systems. Using a modular series of projects, we guide the students
through the gradual construction of a complete working computer.
Starting with simple Nand gates, the students build the computer's
architecture using a simple hardware description language and a hardware
simulator. Next, they write an assembler, a virtual machine, a
compiler for a simple object-based language, a mini-OS, and finally a
user-level application such as Tetris. This is achieved in a
one-semester course by virtue of extreme simplicity and modular design.
Further, we provide extensive APIs and facilitate unit-testing using
pre-supplied test programs and files. The course assumes no
special knowledge beyond programming, and is accompanied by a textbook
which is forthcoming in MIT press. The web site is in www.idc.ac.il/tecs.
25. Microsoft
.Net Programming (Part 2): Building
Web-Based Applications in C#, J# or VB .NET
Joe
Hummel,
Microsoft .
Current Enrollment: 11/30
26. Developing
Secure Applications
Brian
Loomis, Microsoft Corporation
This workshop will describe the tools, processes and
techniques used in building secure applications for business. As these techniques become broadly adopted in
practice, universities considering a new or existing course in secure
software or software engineering course may use this as a
state-of-the-practice review. Secure
application design focuses on three areas: securing the platform
infrastructure, securing the application (through design and code-based
access), and testing. The workshop will
cover theoretical aspects of security as well as practical lifecycle
management in modern software engineering practice. Attendees
should be familiar with a modern programming language since demos
include advanced coding techniques.
Current Enrollment: 13/30
27. Teaching
Computer Science with Python
John M. Zelle,
Python is a free, object-oriented, scripting language. Its
simplicity and elegance make it a perfect language for beginning
programmers and enhances the productivity of experienced professionals.
Python is now a standard tool in many areas of software development.
Using Python in our CS curriculum has allowed our students to
focus more on fundamental concepts and less on arcane language issues.
This workshop is an introduction to the Python language emphasizing its
uses in teaching from introductory programming to upper-level courses
such as Data Structures, Databases, Internet Programming, Operating
Systems, and Computer Graphics.
Current Enrollment: 13/30
Lab
workshops
28. Games, Cellphones and PDAs: Enhancing Undergraduate Computing
Education with
the Java Micro Edition (J2ME)
Mark
Burge,
How do you prepare students today, to work on the most widely
available computing platforms of tomorrow? Programmable
cell phones and personal digital assistants (PDAs)
have already become more numerous then PCs. With
their small size and mobility, these devices present both new
opportunities and unique software engineering challenges like small
memory models, cross-platform development, state machines, and wireless
networking.
You will learn how to use the Java Micro Edition (J2ME) to
easily develop labs based on arcade and logic games that will motivate
and excite your students. Based on the initial results of an NSF CCLI
project; please visit vision.armstrong.edu for further information. THIS IS A COMPUTER LAB WORKSHOP.
Current Enrollment: 25/25
29.
Using Visual Studio .NET in the AP Computer Science Curriculum
Pat
Phillips,
Brian Scarbeau,
Debbie
Carter,
Roseann Krane,
The exciting promise of Microsoft .NET
Technology inspired four Advanced Placement teachers to collaborate
using the new technology in their courses. Follow their adventures as they recount their
experiences with implementing a new technology and coordinating it with
the AP CS curriculum. Panel members will share strategies for teaching
AP CS using the Visual Studio .NET development environment and the J#
language, which uses Java-language syntax and is one of four languages
included with VS .NET. Examples will demonstrate how core computing
concepts can be combined with the motivating aspects of .NET technology.
Special demonstrations will include the use of the J# version of the
Marine Biology Simulation case study, how the IDE facilitates the
transition from one programming language to another, the integration of
components from multiple languages into a single project, Web Matrix for
developing Web applications, and programming for handheld devices. THIS IS A COMPUTER LAB WORKSHOP.
30. Teaching Introductory Programming using
Visual Logic
Thad
Crews,
This workshop will provide a hands-on introduction to the
Visual Logic Simulation Tool and how to integrate it into a traditional
first programming course. Visual Logic is a
simple but powerful tool for developing minimal-syntax flowcharts that
incorporate fundamental programming concepts including variables,
inputs, assignments, outputs, conditions, loops, procedures, functions,
arrays and files. Visual Logic flowcharts are executable, providing
immediate and accurate feedback to the student. Attendees
will receive numerous learning activities and integration ideas for the
introductory programming course. All
lecture notes, classroom activities, and program solutions will be
provided in hardcopy and electronic format. Attendees
will also receive a free copy of Visual Logic. THIS
IS A COMPUTER LAB WORKSHOP.
31. JSPs in the Classroom
Chong-wei Xu,
This workshop will introduce participants to JavaServer Pages (JSPs),
and with teaching experiences in classrooms. JSPs are a new technology for building Web
applications. A Web application consists of three tiers. The middletier is made up of presentation logic,
business logic, and database management. JSPs mix HTML, JavaScript,
JavaBeans, and custom tags to implement these functionalities.
Participants will learn the installation of Tomcat, the structures of JSPs, the practical skills of implementations,
the design of components, and the MVC model that modulates Web
applications. A CD that contains PowerPoint slides with linked examples
and Tomcat will be delivered. THIS IS A COMPUTER LAB WORKSHOP.
Current Enrollment: 9/25
Norfolk State
University - Brown Memorial Hall
32. The
ABET Accreditation Process for Computing Programs
Doris K.
Lidtke, ABET, Inc.
Don Bailes,
CSAB, Inc.
Neal Coulter,
PEPC
Computing
programs may be interested in pursuing accreditation, but feel that they
do not understand the process. Individuals
within the program, who would be responsible for implementing the
process, do not know where to go to gather needed information.
This
workshop will bring together representatives of ABET, Inc.; CAC
(Computing Accrediting Commission); CSAB, Inc.; experienced Information
Systems and Computer Science program evaluators; and representatives of
programs that have recently succeeded in the process. The
workshop will begin with an overview of the process from the commission
perspective (ABET, Inc. and CAC (Computing Accreditation Commission). Then, program representatives will review the
process planning and implementation from their end, including self study
hints and sample course materials. To wrap
things up, experienced accreditation team members will discuss the
process from their end and give perspectives on what they review. Finally, all participants will engage in
Q&A.