Sponsored by the Association for Computing Machinery


Workshops

Participation in one or more of the twenty-one workshops requires a fee that is in addition to the conference registration fee. All workshops take place at the Marriott Marquis, except for those including a hands-on laboratory component, which will be held at Georgia State University, about a 15 minute walk away.

Preregistration is strongly recommended. Assignment of attendees to workshops will be first- come first-served. If you get shut out of your preferred workshop(s) you will be contacted and given an opportunity to register for a different workshop. Workshop registration can also take place on-site. The registration booth will be open Wednesday 6:00 p.m. to 9:00 p.m., Thursday, Friday, and Saturday 7:30 a.m. to 4 p.m.


Wednesday Evening Workshops, February 25th, 7:00 p.m. -- 10:00 p.m.

  1. Introduction to Object-Oriented Design
  2. Introduction to Java
  3. Using Macromedia Director for Multimedia Design

Friday Evening Workshops, February 27th, 7:30 p.m. -- 10:30 p.m.
  1. Java as a Concurrent Programming Language for Operating Systems and Related Courses
  2. Pedagogical Uses of Adaptive Hypermedia
  3. Parallel Computing for Undergraduates: Curricula Issues and Software Tools
  4. Cooperative Learning in the Non-Laboratory Classes of CS Courses
  5. Intermediate Java

Saturday Afternoon Workshops, February 28th, 1:30 p.m. -- 4:30 p.m.
  1. Network Programming With Java
  2. Object-Oriented Programming in Ada 95
  3. Introduction to Java (See Workshop 2 above)
  4. www.development.multimedia.issues.edu

Saturday Full Day Workshop, February 28th, 1:30 p.m. -- 8:30 p.m.
  1. Systematic User Interface Construction with the Java AWT Toolkit

Saturday Evening Workshops, February 28th, 5:30 p.m. -- 8:30 p.m.
  1. Teaching CS1 and CS2 with the Standard Template Library
  2. Using Case Studies in AP CS/CS 1/CS 2
  3. Active and Group Learning Techniques for Computer Science Education
  4. Intermediate Java (See Workshop 8 above)

Sunday Morning Workshops, March 1st, 8:30 a.m. -- 11:30 a.m.
  1. Introduction to Object-Oriented Design (See Workshop 1 above)
  2. Visual Programming in Java with Borland JBuilder
  3. Research in Computer Science Education: Focus on Quantitative Methods
  4. Visual Modeling Technique Using VisualAge for C++





WORKSHOP 1

Introduction to Object-Oriented Design 
Rick Mercer 
Penn State Berks 
PO Box 7009 
Reading PA 19610 
rhm1@psu.edu 
610.396.6140 
Michael Clancy 
UC Berkeley 
387 Soda Hall #1776 
Berkeley CA 94720-1776 
clancy@cs.berkeley.edu 
510.642.7017 
Workshop Category 
Half-Day
Introduction
Object-oriented software development begins by identifying the key
abstractions - classes - that potentially model a solution and the major
responsibility of each. The classes that result can be collected on
Component, Responsibility,Collaborator (CRC) cards [1]. Each CRC card
begins as a blank 3x5 index card with the class name and major
responsibility written on the back. 
Collaborative design and role-playing enhance the OO development process.
Possible analysis classes arise not only from the problem specification
itself and domain expertise, but also from the words that float around in
the air as teams analyze the problem. Team members assume the roles of
these analysis classes, play out scenarios (what would happen when...), and
establish relationships between classes. During role playing, team members
establish more detailed responsibilities-what an object should know and
what it should be able to do-while recording them on the front of the CRC
cards. 
This workshop will introduce this object-oriented design (OOD) methodology
in the context of a real-world case study. The strategy is influenced by
the responsibility driven design of Wirfs-Brock, Wilkerson, and Wiener [2],
the use of CRC cards as documented by Nancy Wilkinson [3], and the industry
training techniques of Alistair Cockburn.
Description of Workshop Activities
The workshop will be team-oriented with the presenters acting as
facilitators. Teams of four or five will be formed and given the following
assignment: Sketch a simple design of a bank on one piece of paper.
Workshop participants will then discuss which team had the best design. A
good design typically has these characteristics [4]:
1. The name of the key components, or things, in the system. 
2. The purpose, basic function, or main responsibility of each thing. 
3. A drawing of the key communication paths between them. 
We will then present a new problem statement and gather volunteers to form
a team in front of the room. We will discuss how to find the key
abstractions (classes) that potentially model a solution. We will find them
together and record them on CRC cards with the major responsibilities. Then
the team members role-play scenarios while writing down additional 
responsibilities as they occur, discovering new classes when the need
arises, and eliminating unnecessary classes. Numerous design decisions will
arise in the process, and we as facilitators will inject design heuristics
into the conversations. 
After a ten minute break, we will form teams and present another problem
statement. For another hour, the teams will analyze and design a model with
us once again acting as facilitators to all groups. At the end, one person
from each group will present their team's design, for comparison. This will
be followed by closing remarks and feedback from the teams.
Background of the Presenters
Rick Mercer has been teaching Computer Science at Penn State University
since 1985. His interests have always been with undergraduate computer
science education focusing on integration of object technology into the
curriculum. He is the author of a 1991 CS1 Pascal textbook that completely
introduced all of object-oriented programming and a 1994 C++ book that
promoted the objects-early approach. He is now currently working on a
another textbook that integrates algorithmic patterns, design heuristics,
and object-oriented design into the first course.
Mike Clancy coordinates the lower-division computer science courses at U.C.
Berkeley; these courses have been moving more and more toward
object-oriented programming. For many years, Mike has also been promoting
the cause of case studies as a vehicle for teaching programming, and he is
now trying to figure out which aspects of object-oriented design and
programming are best illustrated with case studies. 
Bibliography 
[1] 'A laboratory for Teaching Object-Oriented Thinking.', Beck, Kent and
Ward Cunningham, OOPSLA-89 Proceedings, SIGPLAN Notices 24(10):1-6 (October
1989). 
[2] Designing Object-Oriented Software, Rebecca Wrifs-Brock, Brian
Wilkerson, Lauren Wiener, Prentice Hall, 1990.
[3] Using CRC cards, an Informal Approach to Object-Oriented Development,
Nancy M. Wilkinson, SIGS books.
[4] 'The Coffee Machine Design Problem', Alistair Cockburn, Humans and
Technology Technical Report, to be published 
in C++ User's Report.





WORKSHOP 2

Introduction to Java
Edward C. Epp
Department of Mathematics and Computer Science
The University of Portland
5000 North Willamette Blvd.
Portland, OR 97203
epp@uofport.edu
503-283-7163
half-day
Java has several advantages as a first language for beginning 
computer scientists.  It is object-oriented, has simplified 
syntax, works over the Web, and has an extensive graphical
library.  This workshop will provide a hands-on overview of 
Java so it can be evaluated for classroom use. The workshop 
will focus on learning the rudiments of Java and its class 
libraries.
Workshop Outline
*    Objects - using predefined classes to create a lunar of
     Java code.
*    Graphics objects - drawing images with the graphics
     library.
*    Flow of control -  navigating a robot through an
     obstacle field using selection, iteration, and
     functional abstraction to create rules.
*    Event handling - capturing mouse events to create a
     doodle (drawing) program.
*    Numerical computing - demonstrating chaos.
*    Creating custom classes - drawing fractal images by
     creating a complex number class.
*    Other features - quick overview of graphical user
     interfaces, threads, and image manipulation.
Software Needs
At last year's workshop Metrowerks, made their software 
available at no charge during the workshop.  In addition, 
Microsoft donated a copy of Visual J++ to each workshop 
participant.  Negotiations will again be made with Symantec, 
Sun, Microsoft, Borland, and Metrowerks for donations of 
their Java development environments for workshop participants 
and/or use of their environments during the workshop.  
Finally, a minimal set of Sun's Java development systems can 
be used at no cost.  
Written Handouts
The presenter has written the first draft of an introductory 
Java text.  McGraw-Hill will make copies available to each 
workshop participant at no cost to SIGCSE.
Tutorial Length
One half day.
Format
Tutorial presentation will consist of alternate live 
demonstrations, code overviews, question/answer periods, 
hands-on problem solving, and discussions.
Presenter's Experience  
By the time of this conference the presenter will have had 
two years of experience teaching Java in CS1 and CS2.  His 
textbook, Patterns in Computer Science Using Java,  is 
currently under contract with McGraw-Hill for Fall 1998 
publication.  The material for this workshop has been 
finetuned through critical reviews and student feedback.
At the 1997 SIGCSE conference the presenter gave two well-
received half-day workshops on Java.  These session where 
highly interactive.  They included demonstrations, code 
overviews, question/answer periods, hands-on problem solving, 
and discussions about using Java with students.  Participants 
received experience using objects, creating graphics images, 
handing mouse events, and creating classes.
The presenter demonstrated two important workshop skills at 
the 1997 SIGCSE conference.  The first was to respond to the 
participants needs by adapting the mix of presentation, 
question/answer periods, and hands-on time to maximize their 
experience.  Second, he took personal responsibility to 
assure that all physical arrangements were made.  The 
presenter spent months ahead of the conference negotiating 
with local computer service personnel and software vendors.  
Once on site the presenter spent 16 hours installing 
software, testing each workstation, and working out 
contingency plans if problems occurred.  As a result, all the 
time during the workshop was spent on Java and not struggling 
with hardware/software snafus.
In April of 1995, 1996 and 1997,  at the Spring CSTA 
(Computer Science Teachers Association located in the Pacific 
Northwest)  meeting, the presenter gave 3-hour hands-on 
workshops on the use of Java and its GUI class libraries.
In March of 1996, the presenter gave a 1 1/2 hour seminar at 
SIGCSE.  The presentation focused on the use of GUI libraries 
in C++ and Java for teaching beginning computer science 
courses.





WORKSHOP 3

Using Macromedia Director for Multimedia Design
Domenick Pinto, Chair, Computer Science Dept.
Sacred Heart University
Fairfield, CT. 06432
(203) 371-7789
pintod@sacredheart.edu
Sandra Honda Adams, Assoc. Professor, Computer Science
Sacred Heart University (co-presenter)
Half-Day Workshop
Introduction
Macromedia Director is an authoring tool that is becoming increasingly 
utilized for production of CD-ROMs, computer-based training, and 
creating kiosks. The integration of text, color, animation, sound, and 
video can be manipulated  (along with a scripting language called 
Lingo) to provide a smooth, professional, and impressive looking 
multimedia design using the Director software.
Description
The workshop activities will include a few simple demos created by the 
presenters that exhibit the power and beauty of using Director 
software. A hands-on component will follow as the participants develop 
an entire Director "movie" along with the presenters. Lastly, the 
participants will also have the opportunity to try their own creative 
development of an application. Throughout the entire workshop, the 
presenters will demonstrate the use of the various components of the 
software including using cast members, the score, the stage, the 
control panel,  paint windows, and scripting.
Background
Both presenters are Associate Professors of Computer Science at Sacred 
Heart University in Fairfield, CT. As indicated, Domenick Pinto is 
Chair of the Department of Computer Science and Information Technology 
at the university.
The two presenters are currently teaching a new course entitled 
"Design of Multimedia Applications" for CS majors at the university 
using Macromedia Director software. In addition, they are developing a 
similar course for non-majors. Both Sandra and Domenick have studied 
at the Institute of Advanced Technology in Durham, North Carolina as 
well as having attended several Macromedia workshops in New York City. 





WORKSHOP 4

     Java  as a Concurrent  Programming Language
     for  Operating Systems and  Related Courses
     Stephen J. Hartley
     Math and Computer  Science Department
     Drexel University, Philadelphia,  PA 19104
     (215) 895-2678 mailto:shartley@mcs.drexel.edu
Introduction
The excessive hype Java receives should not distract us from the fact
that it is an excellent language for teaching programming: no pointer
arithmetic, no memory leaks, strong typing, many compiler and run-time
checks. Since threads are built-in, Java can be used as the
concurrency platform in operating systems and related courses. This
workshop will show how to use Java to give students practice and
experience in concurrent programming.
Knowledge of sequential Java and concurrency issues (race conditions,
mutual exclusion, semaphores, monitors) will be assumed.
Activities
An outline of the topics to be covered follows.
threads
    Java virtual machine memory system behavior, volatile keyword.
    Race conditions in multithreaded programs with Java examples.
    How to force time slicing of Solaris threads.
locks
    Every Java object has a lock.
    A synchronized block of code blocks until the lock can be
    obtained: synchronized (someObject) { ... }. Thus synchronized
    blocks can be used as implicit binary semaphores with initial
    value one to enforce mutual exclusion of code critical sections
    and prevent race conditions.
    Relationship of locks to Java virtual machine memory system
    behavior.
monitors
    These are built-in to Java and use the object lock.
    A Java monitor has synchronized methods: the whole method body
    acts as a synchronized block: synchronized (this) { ... }
    For condition synchronization, there are wait, notify, and
    notifyAll methods. The signaling discipline is ``signal 
    and continue.''
    Each Java monitor object has a single anonymous condition
    variable, which usually means that if there are multiple wait
    conditions in the monitor, then one should use notifyAll()
    instead of notify() and while (condition) wait(); instead of if
    (condition) wait();.
    In Java monitors, barging is possible, which usually means one
    should use while (condition) wait(); instead of if (condition)
    wait();.
    Another object can be used as a callback, which is almost a named
    condition variable.
        void aMonitorMethod(...) {
          Object callbackObject = new Object();
          ...
          synchronized (callbackObject) {
            ...
            successful = aMonitorSynchronizedMethod(callbackObject);
            if (!successful) callbackObject.wait();
            ...
          }
        }
        void synchronized anotherMonitorMethod() {
          ...
          if (...) synchronized (callbackObject) { callbackObject.notify(); }
          ...
        }
semaphores
    These must be provided in a user-written class library.
    Implementation of binary and counting semaphores.
message passing
    Difference between invoking a method (thread leaves code in one
    object to execute code in another object, then comes back) and
    sending a message (thread sends an object to another thread, then
    optionally blocks until the other thread receives it).
    These must be provided in a user-written class library.
    Implementation of synchronous (blocking sends) and asynchronous
    (non-blocking sends) message passing.
        Send object references from one thread to another (intra
        JVM).
        Send data type values like int, double through a pipe
        (intra JVM).
        Send data type values like int, double through a socket
        (inter JVM).
        Send serialized objects through a pipe (intra JVM).
        Send serialized objects through a socket (inter JVM).
rendezvous
    Client-server programming: client transacts with the server by
    doing a send followed immediately by a receive of the reply.
    These must be provided in a user-written class library.
    Addressing issues.
        Use one object for client to contact server (intra JVM).
        Use two objects, client side and server side, and
        serverSocket (inter JVM).
    Client-server transaction of object references (intra JVM).
    Client-server transaction of serialized objects through a socket
    (inter JVM).
Presenter's Background
The presenter has been teaching operating systems for 15 years, and
has used Concurrent C, SR, and now Java for teaching concurrent
programming.





WORKSHOP 5

Pedagogical Uses of Adaptive Hypermedia
MAJ Curtis A. Carver Jr. and CPT Joseph Adams
Department of Electrical Engineering and Computer Science
United States Military Academy
West Point, NY 10996
dc8l77@eecs1.eecs.usma.edu 011-82-351-870-8843
dw0205@eecs1.eecs.usma.edu 1-914-938-5575
Half-Day
Introduction: Adaptive hypermedia is the adaptation of the presentation 
or navigational support provided on a hypermedia page based on some 
input from the student and a user model.  Adaptation of the presentation 
is the dynamic alternation of text or multimedia based on student 
learning style or demonstrated knowledge level.  Adaptation of 
navigational support can be implemented through link hiding, link 
sorting, link annotation, or map manipulation.
This workshop will explore two fully functional adaptive hyper-media 
systems that demonstrate the potential of adaptive hypermedia for 
pedagogical purposes.  The first system is the adaptive hypermedia 
interface.  This system, a component of CS383 Computer Systems, 
dynamically presents lesson material using link sorting according to 
the learning style of the student.  Based on Felder's Learning Style 
Model, the adaptive hypermedia interface differentiates between 720 
different types of learners and dynamically presents lesson material 
in a format suitable for individual user.  Implemented through 
Common Gateway Interface (CGI) forms, the system is usable world-wide 
by students.
The second system to be demonstrated is the Adaptive Student Response 
System.  This online assessment system is likewise implemented through 
CGI forms and adjusts the difficulty of questions based on demonstrated 
student knowledge.  Using a 250 question test bank, the system selects 
easier or harder questions based on dynamic historical data and provides 
feedback to the user by color-coding lesson objectives.  The adaptive 
student response system also provide hypermedia-based question hints, 
feedback to the professor based on aggregate section performance, and 
multi-course support.
Description of Workshop Activities: Given that most if not all of the 
workshop participants have a rich background in teaching, the workshop 
will focus on discussing the effectiveness of adaptive hypermedia both 
inside and outside of the classroom.  The discussion will focus on the 
advantages and disadvantages of adaptive hypermedia and when and where 
adaptive hypermedia is effective and when it would not be.  The idea of 
coupling a learning style model with adaptive hypermedia will also 
be explored in detail.  These discussions will be supported by empirical 
evidence and research papers where available.  Additionally, some of the 
technical aspects of implementing adaptive hypermedia through CGI forms 
will be discussed so that the participants fully understand the costs 
associated with implementing an adaptive hypermedia system.
MAJ Curtis A. Carver Jr. is a fourteen year career Army officer who 
recently completed tours as an assistant professor at the United States 
Military Academy and the U.S. Army Command and General Staff College.  
He was the Primary Investigator of the West Point Hypermedia Research 
Group and a consultant to the Army Classroom 21 project, the hypermedia 
doctrinal publications project, and the Warfighter's Simulation 21 
project.  He is currently the Deputy G6 Communications, Electronics, and 
Automation officer with the 2nd Infantry Division at Camp Red Cloud in 
South Korea.  He has published over twenty-five research papers including 
five of which have won conference best paper awards.  He has been an 
invited speaker to several conferences and conducted academic workshops 
at the United States Military Academy, Command and General Staff College, 
and the University of Colorado.
CPT(P) Joseph Adams is a twelve year career Army officer who is an 
assistant professor at the United States Military Academy and the current 
Primary Investigator of the West Point Hypermedia Research Group.  He is 
also the primary technical consultant to the Army Classroom 21 project.





WORKSHOP 6

Parallel Computing for Undergraduates: Curricula Issues and
Software Tools
Helmar Burkhart                Ignatios Vakalis
University of Basel            Capital University						
Computer Science               Mathematics, Computer Science,					
Mittlere Strasse 142           Physics	
CH-4056 Basel, Switzerland     Columbus, OH 43209-2394
burkhart@ifi.unibas.ch         ivakalis@capital.edu
+ 41 61 321 99 67              (614)236-6587							
Workshop category: Half-day
Introduction to the topic:
Parallel computing is an exciting field for both teachers and  
students. It is considered an enabling technology for many fields  
and is considered one of the core elements for effective  
computational science. Two different tracks to approach parallelism  
can be identified: the theory-driven track puts emphasis on  
algorithms and their complexity analysis (e.g. PRAM, LogP, and BSP).  
The architecture-driven track puts emphasis on architectural  
aspects and machines (e.g. thread packages and  message passing  
libraries). Both approaches are insufficient for undergraduates when  
used in isolation. Undergraduates can only spend a limited time on  
the subject and thus  require easy-to-use abstractions for  
parallelism and  more emphasis on practical usage of parallel and  
distributed systems including software tools.
We propose a software engineering-driven track with emphasis on  
portability, reuse, program skeletons, etc.
Workshop activities:
This workshop presents general concepts and information on
teaching parallel computing for undergraduates in computer science  
and related fields. It  also provides detailed strategies and  
contents about a particular course concept. Attendees will get links  
to widely available information (journals and   software  
repositories) and detailed descriptions  of a courseware package  
developed by the presenters (including software package, handbook,  
course notes, and assignments).
Course contents:
Part I (90 minutes):
Role of parallel computing for undergraduates
Teaching strategies for undergraduates (preliminary 
results from an NSF research grant)
Sources of information (web, journals, public domain
	software)
- Break -
Part II (90 minutes):
A first course in parallel computing: Concepts and course structure
ALWAN: High-level coordination language for scientific programs  
(language, environment, model programs, performance issues,  
courseware)
MPI: Low-level message passing library (library, tools, examples,  
peformance issues, courseware)
- Conclusions and Discussion -
Background of presenters:
Helmar Burkhart is a computer science professor  at the University  
of Basel,  Switzerland. His research interests include parallel and  
distributed processing, programming languages,  and software  
engineering. He is an associate editor of the International Journal  
of High-Speed Computing and serves on the Editorial Advisory Board  
of Scientific Programming. He received a diploma in computer science  
from the University of Stuttgart, Germany, and a PdD degree and   
Venia Legendi in computer science from the Swiss Federal Institute  
of Technology (ETH) Zurich, Switzerland. He is a member of ACM,  
IEEE, GI (German Informatics Society), and SI (Swiss Informaticians  
Society).
Ignatios Vakalis is an associate professor of mathematics and  
computer science at Capital University in Columbus Ohio. His  
research interests include parallel numerical integration and  
applications of parallel computing in the area of geographical  
information systems. For the last two years he has been teaching  
parallel and high performance computing at Capital University. He  
has received an NSF ILI grant to establish an Advanced Computational  
Laboratory and integrate parallel computing in a variety of CS  
courses. He received a Bachelor's degree in Physics from Univ. of  
Patras Greece, a M.Sc. in computer science and a Ph.D in mathematics  
from Western Michigan University. He is a member of ACM, IEEE, MAA,  
and AMS.





WORKSHOP 7

                  Cooperative Learning in the Non-Laboratory
                            Classes of CS Courses
                             Dr. Dorothy Deremer
                          Department of Mathematics
                             and Computer Science
                          Montclair State University
                          Upper Montclair, NJ 07043
                                 973 655 7239
                         deremerd@alpha.montclair.edu
                    Half-Day SIGCSE T98 Workshop Proposal
Introduction 
Cooperative learning is a teaching system in which small groups 
of students help one another learn.  In addition to increased 
student achievement,  research shows that cooperative learning 
cultivates critical thinking and higher level reasoning. 
Research also suggests non-achievement related benefits such as 
more positive attitudes toward the subject area, improved 
student retention, better student-faculty relationships, more 
realistic understanding of others, and strengthened self esteem. 
Cooperative learning has a long history of development and 
application and decades of research including  the continuing 
work of Robert Slavin of The Johns Hopkins University and David 
and Roger Johnson and their colleagues at the Cooperative 
Learning Center of the University of Minnesota. One of the 
oldest and extensively studied forms of cooperative learning is 
based on student teams. Slavin categories this method as STAD 
(Student Teams - Achievement Divisions). In STAD, the instructor 
assigns students to learning teams so that the teams are mixed 
in terms of performance level, gender, and ethnicity.  
The Johnsons have extensive experience both in developing 
strategies for and in research with university and adult 
learners.  Over the year in a variety of settings and national 
locations, they sponsor and/or endorse several levels of 
training in cooperative learning.  The Johnson method is related 
to Slavin's STAD and stresses team building and assessment.  
Specifically the Johnson method requires the instructor to 
structure,  implement, and assess  the application of five basic 
elements.  These elements are 1.positive interdependence (each 
member needs every other member); 2.individual accountability 
(each member is responsible for her/his portion of the task); 
3.small group skills (members are taught and practice group 
communication skills); 4.face to face interaction (the group 
members sit facing each other); and 5.group processing (members 
assess their effectiveness after the task is completed). 
Cooperative learning is notably relevant in computer science 
education because it enhances the mastery of technical ideas, 
motivates the development of critical thinking, and teaches 
communication and team membership skills.  The Johnson's 
presentation of cooperative learning is especially useful 
because it is a structured, prescriptive method based on 
extensive research with college and adult populations.        
Workshop Activities
The workshop will implement the Johnson method of cooperative 
learning as its theoretical model.  The workshop will be 
developed as a series of cooperative learning activities.  
Activities will relate to research findings about individual, 
competitive, and cooperative learning, the benefits of 
cooperative learning, structuring groups, and reflecting on the 
Johnson basic elements of cooperative learning. Attendees will 
practice a five step process developed by the presenter for 
creating a cooperative learning lesson in computer science, and 
will share their experiences with cooperative learning. All 
workshop activities will be  structured both in terms of task 
and group membership and roles within groups. Typical group 
structures will include base group, formal group, and informal 
group. Although the workshop will contain some direct teaching 
(lecturing), one of the important facets is for attendees to 
experience cooperative learning themselves.  
Background of Presenter
The presenter has used cooperative learning for many years in 
several computer science courses including CS I at Montclair 
State University.  Montclair State is a large, predominately 
commuter, public institution in a suburban setting. Students 
represent a broad range of ethnic backgrounds, age, and work 
experience. A growing population are part-time students.  This 
diversity is reflected in the computer science courses.  In CS I 
most students are not initially computer science majors.  
In addition to her own cooperative learning study and 
application,  the presenter has participated in  two 32 hour 
Johnson  endorsed/sponsored cooperative learning workshops.   
The first workshop, in June 1995, on Basic Cooperative Learning 
was given by the David and Roger Johnson and Ann Ishler, a 
Johnson trained colleague, at Myrtle Beach, SC.  The second 
workshop, in June 1997, on Advanced Cooperative Learning was 
given by Edythe Johnson Holubec, associated with her brothers' 
work for over 25 years,  in Jacksonville, FL and sponsored by 
the Southeastern Center for Cooperative Learning.  	The presenter 
has given workshops on cooperative learning to math, computer 
science, and physics colleagues at Montclair State.  At the 
April 1997 Consortium of Computing at Small Colleges - NE, the 
presenter gave a tutorial on cooperative learning. During SIGCSE 
T95, the presenter was a member of a team who gave a well 
received workshop on Cooperative Learning in CS. 	The presenter 
is a Professor of Mathematics and Computer Science at Montclair 
State University, where she has been a member of that department 
since 1981.  Prior to 1981, the presenter was chairperson of the 
Department  of Mathematics,  Caldwell College in New Jersey.  
The presenter has a Ph.D. in statistics from New York 
University, an M.A. and B.A. in mathematics from Montclair 
State, and an M.S. in computer science from Stevens Institute of 
Technology in New Jersey.  She has obtained several off campus 
grants for computer science undergraduate education related to 
database systems, operating systems, and parallel processing.  
She was the co-chairperson of Montclair StateUs first successful 
computer science CSAC accreditation process.  In addition to 
coordinating and teaching CS I and CS II at Montclair State, she 
teaches upper level undergraduate and graduate computer science 
courses.  In recent years, she has presented at several SIGCSE 
Technical Symposiums and regional conferences and attended 
several NSF Faculty Workshops in  C++ and Laboratories, Labs in 
the First CS Courses, Parallel Processing, and Peer Learning. 





WORKSHOP 8

Intermediate Java
Edward C. Epp
Department of Mathematics and Computer Science
The University of Portland
5000 North Willamette Blvd.
Portland, OR 97203
epp@uofport.edu
503-283-7163
half-day
Java provides standard features that are traditionally 
considered advanced programming topics.  This workshop 
explores using Java's graphical user library, threads, and 
networking in beginning courses.  In addition, we will 
explore Java's IO, vector, and string classes.
Workshop Outline
*    Graphical User Interfaces - using Java's GUI class
     library to control a Pong game.
*    Vectors - searching and sorting Siskel and Ebert movie
     reviews.
*    Input/Output - investigating the effect of the Pentium 
     Crisis on Intel's stock prices.
*    Threads - modeling a consumer/producer problem using
     robots.
*    Networking - communicating between programs.
Software Needs
At last year's workshop Metrowerks, made their software 
available at no charge during the workshop.  In addition, 
Microsoft donated a copy of Visual J++ to each workshop 
participant.  Negotiations will again be made with Symantec, 
Sun, Microsoft, Borland, and Metrowerks for donations of 
their Java development environments for workshop participants 
and/or use of their environments during the workshop.  
Finally, a minimal set of Sun's Java development systems can 
be used at no cost.  
Written Handouts
The presenter has written the first draft of an introductory 
Java text.  McGraw-Hill will make copies available to each 
workshop participant at no cost to SIGCSE.
Tutorial Length
One half day.
Format
Tutorial presentation will consist of alternate live 
demonstrations, code overviews, question/answer periods, 
hands-on problem solving, and discussions.
Presenter's Experience 
 
By the time of this conference the presenter will have had 
two years of experience teaching Java in CS1 and CS2.  His 
textbook, Patterns in Computer Science Using Java,  is 
currently under contract with McGraw-Hill for Fall 1998 
publication.  The material for this workshop has been 
finetuned through critical reviews and student feedback.
At the 1997 SIGCSE conference the presenter gave two well-
received half-day workshops on Java.  These session where 
highly interactive.  They included demonstrations, code 
overviews, question/answer periods, hands-on problem solving, 
and discussions about using Java with students.  Participants 
received experience using objects, creating graphics images, 
handing mouse events, and creating classes.
The presenter demonstrated two important workshop skills at 
the 1997 SIGCSE conference.  The first was to respond to the 
participants needs by adapting the mix of presentation, 
question/answer periods, and hands-on time to maximize their 
experience.  Second, he took personal responsibility to 
assure that all physical arrangements were made.  The 
presenter spent months ahead of the conference negotiating 
with local computer service personnel and software vendors.  
Once on site the presenter spent 16 hours installing 
software, testing each workstation, and working out 
contingency plans if problems occurred.  As a result, all the 
time during the workshop was spent on Java and not struggling 
with hardware/software snafus.
In April of 1995, 1996 and 1997,  at the Spring CSTA 
(Computer Science Teachers Association located in the Pacific 
Northwest)  meeting, the presenter gave 3-hour hands-on 
workshops on the use of Java and its GUI class libraries.
In March of 1996, the presenter gave a 1 1/2 hour seminar at 
SIGCSE.  The presentation focused on the use of GUI libraries 
in C++ and Java for teaching beginning computer science 
courses.





WORKSHOP 9

Network Programming With Java
Rodney S. Tosten, Gettysburg College, Gettysburg, PA 17325
Phn: 717-352-7613, Email: rtosten@gettysburg.edu
Paul T. Tymman, Rochester Institute of Technology, Rochester, NY 14623
Phn: 716-475-7908, Email: ptt@cs.rit.edu
Half-Day Workshop
Introduction
It was not all that long ago when dumb terminals and 300 baud 
acoustic coupler modems were used to connect to remote 
computers.  Today we use ISDN or 33.6 baud modems to connect to 
our ISP (Internet Service Provider).  Once a PPP or slip 
connection is established, a Web browser can be used to access 
multimedia documents, that include object-oriented Java applets, 
from a remote server.  It is safe to say that a lot has changed 
in the area of computer networking over the past few years. 
The scenario described in the previous paragraph can be used to 
highlight two important facts about computer technology.  First, 
Internet based computer networks have become an integral part of 
the computing environments that are used on a daily basis.  
Second, computer networking is a very dynamic field that changes 
almost daily.  Clearly, undergraduate computer science students 
and faculty must understand this technology.  Faculty interested 
in teaching this material are faced with two challenges:  first 
they must learn the material, and second they must keep up with 
the seemingly endless introduction of new networking tools and 
services. This proposal describes a half-day workshop that will 
help those who are familiar with TCP/IP and object-oriented 
concepts to become more familiar with the use of Java in 
Internet based networking.  The workshop will be divided into 
two parts.  The first will cover basic Java programming 
including Thread objects.  An outline of topics is below. 
Overview
  History, The Java , Java and the Internet, Java Syntax, 
  Exceptions, Strings, Arrays, Applets and Applications, Compiling 
  Java Programs, Running Java Programs 
The Java Abstract Windowing Kit
  Panels, Graphics, Buttons, TextField, Layouts: Flow, Border, Grid 
Event Handling
  Event Handlers, Event Objects 
Java Threads
  Subclassing, Running, Stopping
The second half of the workshop will focus on using Java as a 
network programming language.  The topics will cover sockets in 
Java and how to implement several well known Internet services 
using Java and sockets.  An outline of this part is given below. 
Java.net 
  Sockets, Setting Up a Server, Setting Up a Client
TCP Applications in Java 
  TCP Client, Basic Client Algorithms
Writing Threaded TCP Servers
  TCP Server, Basic Server Algorithms
Writing a finger client and server
UDP Applications and Java 
  DNS Client, DNS protocol
UDP Servers in Java 
  Designing a UDP Server, Setting Up and sending UDP packets
Presenters' Backgrounds
Tymann developed and taught the first computer networking course 
at SUNY Oswego approximately 8 years ago.  The course has been a 
popular one with students and employers.  Many of the students 
who successfully complete this course have taken up positions 
with major network providers such as Performance Systems 
International or NYSERNET.  A paper describing software Tymann 
developed to simulate ethernet network has been presented at 
SIGCSE.  Several schools have used this software in networking 
courses.  Recently Tymann changed the focus of his networking 
course to include the development of Java networking.  Tymann 
has also taught a version of this networking course by request, 
at the University of Osnabrueck in Germany.  Course notes and 
laboratory exercises for this course have been written in HTML 
and are made available to students.  The materials can be viewed 
on the web by accessing the URL http://www.cs.rit.edu/~ptt/classes/445. 
Tosten also created and taught the first networking course at 
Gettysburg College.  This course grew out of a special topics 
course on distributed processing that he offered.  Besides 
teaching networking topic, Tosten is the departmental network 
and computer administrator.  He is responsible for all the 
hardware, software, and network communications in the 
department.  He was involved in its development and continues to 
be involved in its growth. 





WORKSHOP 10

Object-Oriented Programming in Ada 95 
Mordechai Ben-Ari 
Department of Science Teaching 
Weizmann Institute of Science
Rehovot 76100 Israel
Tel: 972-8-934-2940
ntbenari@wis.weizmann.ac.il
Workshop category - half-day center  
Description 
The workshop will present (in lecture format) the "object-based" 
constructs of Ada 83 (packages and private types), followed by 
the constructs of Ada 95 that support full object-oriented 
programming: tagged types and extensions, inheritance, class-
wide types used for dynamic polymorphism and child packages for 
building hierarchial subsystems. The presentation will be built 
around a large case-study: discrete event simulation. 
The Ada constructs will be compared with language support for 
OOP in other languages: C++, Eiffel, Java, Smalltalk. We will 
show how the same    concepts   (type extension, inheritance, 
polymorphism) are implemented using different constructs . A 
particular emphasis will be to show how the Ada encapsulation 
constructs that support development of large software systems---
constructs which have no parallel in those languages---integrate 
smoothly with typing constructs. 
The intended audience is educators with experience in other 
languages for OOP, who are interested in learning a different 
technical approach to the subject. No specific experience in Ada 
will be assumed: any construct that is not "Pascal-like" will be 
either explained or ignored!. 
Author qualification 
I have taught Ada for over ten years; the current material on 
Ada 95 has been taught four times to upper-level undergraduates. 
I have published four textbooks, most recently, "Understanding 
Programming Languages" (John Wiley, 1996). The presentation is 
based on an Ada textbook that I am currently writing. 





WORKSHOP 11

(See Workshop 2 above)




WORKSHOP 12

www.development.multimedia.issues.edu
  
The ACM Two-Year College Education Committee
Karl J. Klee, Chair
Jamestown Community College
Jamestown, NY  14701-1920
kleek@acm.org
(716) 665-5220 X368
A proposal for a half-day workshop requiring laboratory facilities with 
Web-access:
This three-phase workshop for SIGCSE '98 will address 
implementation issues associated with creating World-Wide-Web 
pages to support instruction.  The Two-Year College Education 
Committee conducted four regional (very popular and highly 
successful) NSF-sponsored UFE workshops during the summer of 
1997, each dealing with emerging technologies, resource 
management, and instructional methodologies.  The Committee has 
a NSF UFE proposal pending for 1998 to conduct four regional 
workshops, each dealing with distance learning implementations 
and related methodologies.  The current workshop proposal is 
related to, but different from each set of NSF UFE workshops.    
The members of the Two-Year College Education Committee are:  
Karl J. Klee, Chair
Richard Austing, University of Maryland University College, College Park, MD
Robert D. Campbell, Manatee Community College, Venice, FL
C. Fay Cover, Pikes Peak Community College, Colorado Springs, CO
Joyce Currie Little, Towson University, Baltimore, MD.





WORKSHOP 13

Systematic User Interface Construction with
the Java AWT Toolkit.
Fintan Culwin
School of Computing
South Bank University
London SE1 0AA
phone +44 (0)171 815 7434
fax +44 (0)171 815 7499
fintan@sbu.ac.uk
Full day workshop proposal for SIGCSE '98
Introduction
The rapid proliferation of Java artifacts, most noticeably as 
interactive content on the World Wide Web, is leading to a 
'hypercard effect'. That is the technology is being used without 
due regard to usability or software engineering considerations 
leading to the production of seemingly sophisticated visual 
interfaces containing many usability faults and inadequate 
application functionality. This tutorial will attempt to 
introduce the components of the Java 1.1 Abstract Windowing 
Toolkit (AWT) within the context of a systematic production 
philosophy which places emphasis upon usability considerations 
for the outset. The use of these techniques will obviate some of 
the potential problems outlined above. Attendees will be 
expected to have a familiarity with Object Oriented Design and 
Development and with C style syntax. 
Description
The first part of the workshop will consist of a tour of the 
most significant and useful of the interface components provided 
by Java. During this tour attendees will be introduced to the 
technique of designing for usability from the outset by means of 
State Transition Diagram (STD) notation and the subsequent 
refinement of the STDs into Unified Modeling Language (UML) 
designs before the subsequent implementation of the artifact in 
Java. The part of the tutorial is intended to: 
  Provide a brief summary of STD, class diagram and instance diagram UML
  design notations.
  Provide an initial introduction to the systematic construction of
  artifacts which have a graphical interface by a division into presentation,
  translation and application areas of concern.
  Describe, and illustrate, how the 1.1 release of the AWT facilitates this
  division of concerns by providing the event/ listener mechanism.
  Provide a practical overview of the use of these notations and design
  techniques by means of a small case study.
  Introduce the Java 1.1 AWT class hierarchy illustrating the inheritance
  relationships between the major component classes.
  Introduce the most significant of the components of the Java 1.1 AWT
  including: labels, buttons, checkboxes, radio buttons, option menus, lists,
  scroll bars, canvases, text areas, pop-up menus and scroll panes. Each will
  be introduced by:
    a table summarizing its major resources and actions.
    a State Transition Diagram illustrating its use within an applet.
    The implementation of the applet illustrating the component's usage.
  Provide an initial introduction to the development of specialized
  interface components by the extension of a pre-supplied component.
  In the second part of the tutorial attendees will learn how to use the
  components in the design and implementation of user interfaces with an
  emphasis upon designing for usability, maintenance and reuse. They will also
  be given a case study example of the practical techniques involved in
  extending the pre-supplied AWT components to produce a specialized component
  which interacts cleanly with other well designed extended components and
  pre-supplied components. This part of the tutorial is intended to:
  Introduce the techniques by which the usability of a GUI can be designed
  and modeled by the use of State Transition Diagrams (STDs).
  Show how a STD design can be divided into three essential concerns:
  application functionality (model).
  interface presentation (view).
  transitional behavior (controller).
  Show how a consideration of each of these concerns can be used to produce
  a UML style class diagram.
  Show how these class diagram designs can be implemented in Java to produce
  the software artifact.
  Including, where appropriate, the development of a specialized component.
  Show how the STD can be used to validate the interface produced.
  Introduce the techniques for localization (L12n) and internationalization
  (I18n).
These latter objectives will be achieved by a case study which illustrates
the development of a DatePanel component which allows for the unambiguous
input of a calendar date and interacts consistently with existing AWT
components whilst allowing for localization and internationalization. The
DatePanel artifact is illustrated in Figure 1.
Figure 1. DatePanel component.
Presenter
The presenter of the tutorial is employed in a U.K. university 
as a Reader in Software Engineering Education. (The U.K. 
academic grade of Reader is one grade below the U.K. Professor 
grade and might be considered broadly equivalent to a U.S.A. 
tenured Professor.) He specializes in promoting the integration 
of usability considerations and usability engineering within 
software engineering design and production processes. He has 
published five books on Software Engineering, two editions of a 
standard Ada text, one professional book on X/Motif and two 
books on Java: one concentrating upon the language and one upon 
software and usability engineering with the AWT. He has 
presented papers and workshops on X/Motif, Usability on the Web 
and Java at various international conferences. 





WORKSHOP 14

Teaching CS1 and CS2 with the Standard Template Library
Joseph Bergin, Professor 
School of Computer Science and Information Systems
Pace University
One Pace Plaza
New York, NY 10038
berginf@pace.edu
half-day workshop
What are the implications of the Standard Template Library (STL) for educators 
teaching CS1 and CS2 using C++?  What topics should be covered in these courses,
and how should they be covered, so that students may move easily to using the 
STL either in CS2 or in later courses?  
The STL is a new standardized component of C++ that provides excellent 
implementations of container classes, the traditional material of the  data 
structures course.  The STL uses a particular abstraction model that divides the
functionality into five independent mechanisms: containers,  iterators, generic 
algorithms, function objects, and allocators.  While sound and complete, the STL
is also very highly integrated with the components highly interacting.  This has
many implications on teaching. 
This tutorial will give a good background on the STL, focusing on issues facing 
educators.  While the STL may not be taught until CS2 or even later, the way 
that material is taught in CS1 and CS2 can greatly affect the ease with which 
students may move to using the STL.  The way that we teach arrays and pointers 
in particular is important to increase the level of success of students in using
the STL.  This tutorial will examine these questions thoroughly.  
The presenter is the author of one Data Structures (C++) book and is writing  a 
text specifically designed to teach the STL in this course.  He has been 
teaching computer science for over twenty years and has been involved in object 
oriented development for ten years.  He also presented, with Michael Berman, a 
similar workshop at last year's SIGCSE that was well received by participants.  
The standard reference to the STL is Musser and Saini, STL Tutorial and 
Reference Guide, Addison Wesley, 1996.  The STL itself is packaged with many C++
compilers and is available on the internet at 
http://www.cs.rpi.edu/~musser/stl.html.
-----------------------
Joseph Bergin, Professor
Pace University, Computer Science, One Pace Plaza, NY NY 10038
EMAIL berginf@pace.edu
HOMEPAGE http://csis.pace.edu/~bergin/





WORKSHOP 15

Using Case Studies in AP CS/CS 1/CS 2

Michael Clancy
Senior Lecturer
Computer Science Division
University of California, Berkeley
Berkeley, CA 94720-1776
clancy@cs.berkeley.edu
(510) 642-7017

Workshop category

Half-day.

Intended audience

Instructors of lower-division programming courses. Though I will use Pascal and C++ as the basis of discussion, the principles underlying the case study approach are applicable to courses based on any other language.

Short description

The case study method, long used in fields such as business, medicine, and law, is appropriate for teaching programming as well. This workshop will motivate the case study approach and present ways to incorporate it into introductory and intermediate courses. Case studies for Pascal and C++ programs will be distributed as the basis for workshop activities and discussion.

Rationale

The case study method, long used in fields such as business, medicine, and law, is appropriate for teaching programming as well. Software engineering experts (e.g. Shaw [10]) have recommended this approach as particularly appropriate for communicating design and development methodology and management of complex programs. Case studies have also been shown effective at the introductory level (see [9]). Questions based on a case study [1] are now included in the Advanced Placement Computer Science examination. Textbook material that supports the case study approach is becoming increasingly available (e.g. [2, 3, 5, 6, 7, 9]).

However, the best use of case studies requires some adjustment in the way the typical programming course is run: a shift in emphasis from lectures to lab- and discussion-oriented activities, from product-oriented to process-oriented assignments, and from synthesis to analysis activities. This workshop will motivate the case study approach and present ways to incorporate it into introductory and intermediate courses.

The workshop will be similar to one run at SIGCSE 1996 in Philadelphia and SIGCSE 1997 in San Jose.

Outline

I. First, I'll explain the purpose of the workshop, and get participants to explain a bit of why they're attending. (10 minutes)

II. Next, we will produce several solutions to the problem of designing a simple adding machine simulator, presenting the solutions as an instructor might in a lecture course. The intent is to illustrate a number of points:

A. comparison of the solutions

  1. bias toward a particular solution that the problem statement provides
  2. expert-novice differences
  3. alternate solution representations
  4. comparison to similar problems
  5. likelihood of bugs in each solution
  6. influence of object-oriented programming

B. testing of the solutions

  1. choice of boundary cases
  2. effect of decomposition on testing
  3. usefulness of alternate solution representation for generating test data

C. general

  1. even a small solution involves lots of process; an instructor must be alert to highlight all this, since students may not notice on their own
  2. the context of a problem solution provides many advantages for asking questions about programming activities
  3. how much of this information would students have gotten just from analyzing solution code?
  4. how much of this information would students have written down in their lecture notes?

We will also lay some groundwork for the case studies to work with next, and point out parts of the programming process that need attention. (45 minutes)

III. Participants will then deal with two case studies from the Designing Pascal Solutions books and follow up with discussion. (90 minutes)

A. possible activities

  1. summarize the case study
  2. analyze the design and development of the programs
  3. change the data structures used in the programs
  4. solve a related problem

B. goals

  1. produce useful discussion of process
  2. foreshadow discussion of activities

C. how the participants will be working

  1. small groups
  2. they will choose from a given set of activities
  3. discussion will focus on key points:
    1. different solution alternatives
    2. what expertise was involved in the solution?
    3. how did the narrative help?
    4. how did group work help?
    5. what would students learn from this exercise, and what opportunities for reflection would it provide?

IV. I will then review my own experience with case studies. (35 minutes)

A. how they help (reprise [8])

B. possible activities (reprise [4])

C. incorporation into AP CS exam

D. where in the curriculum case studies belong

Leader qualifications

Michael Clancy is Senior Lecturer and coordinator of lower-division courses at University of California, Berkeley. He has been a proponent of the case study method for CS education for many years and, supported by NSF, has engaged in research to evaluate and extend the case study approach. Clancy has given many talks on the subject to audiences of high school and college instructors, most recently three-hour workshops at SIGCSE 1996, SIGCSE 1997, and the Rocky Mountain Small College Computing Conference in Salt Lake City in October 1996. Clancy is a co-author (with Marcia Linn) of two collections of case studies [5, 6] and two papers about case studies published in ACM forums [4, 8].

References

  1. Advanced Placement Test Development Committee, "AP Computer Science `Large Integer Case Study'", Educational Testing Service, 1995.
  2. J. Bentley, Programming Pearls, Addison-Wesley, 1986.
  3. J. Bentley, More Programming Pearls, Addison-Wesley, 1988.
  4. M.J. Clancy and M.C. Linn, "Case Studies in the Classroom", Proceedings of the 23rd SIGCSE Technical Symposium on Computer Science Education, Kansas City, Missouri, March, 1992; published as SIGCSE Bulletin, volume 24, number 1, March 1992.
  5. M.J. Clancy and M.C. Linn, Designing Pascal Solutions: A Case Study Approach, W.H. Freeman and Company, 1992.
  6. M.J. Clancy and M.C. Linn, Designing Pascal Solutions: Case Studies with Data Structures, W.H. Freeman and Company, 1995.
  7. B. Kernighan and P.J. Plauger, Software Tools in Pascal, Addison-Wesley, 1981.
  8. M.C. Linn and M.J. Clancy, "The Case for Case Studies of Programming Problems", Communications of the ACM, volume 35, number 3, pages 121-132, March 1992.
  9. H.D. Shapiro, How to Program Well: A Collection of Case Studies, Irwin, 1994.
  10. M. Shaw, "We Can Teach Software Better", Computing Research News, March 1992, volume 4, number 4.

 






WORKSHOP 16

Active and Group Learning Techniques for
Computer Science Education

Jeffrey J. McConnell

Canisius College

Computer Science Department

2001 Main Street

Buffalo, NY 14208

mcconnel@canisius.edu

(716)888-2434

Half-day Workshop

Background

Active and group learning techniques provide a powerful mechanism to enhance the depth of learning and increase material retention. Active learning [1] gets students involved in activity in the classroom rather than passively listening to a lecture. This activity can be reading, writing, discussing, solving a problem, or responding to questions that require more than factual answers. The idea is to get students thinking about the material. This is important, because students who are passive have a decline in concentration after 10-15 minutes in a 50 minute lecture [2].

Further, the act of learning is not passive. As faculty, we learn actively. In preparing lecture notes, we read, compare what we have read with our experiences, synthesize the information into coherent notes, and develop examples that illustrate the concept. This leads to greater understanding of the material. Unfortunately, we then use this understanding to lecture to our students depriving them of this journey of discovery. By carefully involving the students on this path to knowledge, we can increase student depth of understanding of the material, increase student comfort with the material, and improve student confidence. In most sciences, the value of active learning is already realized and implemented through laboratories, or in computer science, through programming projects. The ideas present here are to expand this to include activities in the classroom that replace the lecture or part of it.

The presentation of this workshop will involve a number of active and group learning techniques. This will give participants direct experience with and the chance to observe these techniques in action. Workshop participants will be involved in group discussions, in dialogs with the presenter, and will perform exercises to enhance their workshop experience. Active and group learning techniques will be involved throughout the presentation of the material. The presentation will deal with both small and large class sizes as well as overcoming problem physical classroom layouts.

Workshop Schedule

The following will be the approximate schedule for the workshop. All of the material will be presented using active and group learning techniques. These techniques include modified lecture format, think-pair-share, quizzes for content, and exercises for the participants to do. During the workshop, participants will develop exercises that they can use in their classroom.

0:00 - 0:45 Introduction to Active Learning
- What is active learning?
- Dealing with problems
- Why is it important?
- What are its benefits?

0:45 - 1:30 Group Learning
- What is group learning?
- How to form groups for maximum success
- Avoiding pitfalls
- Managing groups

1:30 - 1:45 Break

1:45 - 2:30 Group exercises for the classroom
- Types of exercises
- Designing an exercise
- The elements of successful exercises

2:30 - 3:00 Getting it all to work
- Limiting the risk
- Getting to content with student centered learning
- Learning objectives
- Managing the time and effort

Presenter Background

The presenter has used simple active learning techniques for most of his thirteen year career in higher education. He has been using classroom activities and group work for the past three and a half years. He has been a leader in the use of these techniques at his college and in his department. He has three publications in this area [2], [3], and [4]. He has also presented (or will soon present) four workshops on active and group learning. Additionally, he has established a web site for active and group learning exercises ( www-cs.canisius.edu/~mcconnel/active_learning.html).

Bibliography

1. Bonwell C. and Eison, J. Active Learning: Creating Excitement in the Classroom. ASHE ERIC Higher Education Report No. 1, Washington, D.C.: The George Washington University, School of Education & Human Development, 1991.

2. McConnell, J. Active Learning and Its Use in Computer Science. SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education (Barcelona, Spain June 2-5, 1996) SIGCSE Bulletin, vol. 28, Special Issue, pp 52-54.

3. McConnell, J. Active and Group Learning and Their Use in Graphics Education. Computers and Graphics (January/February 1996), Vol 20, No. 1, pp 177-180.

4. McConnell, J. Active Learning Techniques in Graphics Education. The Third Eurographics Workshop on Graphics and Visualization Education (Maastricht, The Netherlands August 28-9, 1995).

5. John Stuart, and R. J. Rutherford, "Medical Student Concentration During Lectures." The Lancet, Vol. 2, pp. 514-516, September 1978.




WORKSHOP 17

See Workshop 8 above.




WORKSHOP 18

See workshop 1 above.




WORKSHOP 19

Visual Programming in Java with Borland JBuilder
Presenter:
  Barry Burd
  Drew University
  bburd@icosa.drew.edu
Topic:
Early in September, Borland International released a visual Java
development tool called JBuilder. Among the various Java development
environments, JBuilder is somewhat unique. The product uses the new
JavaBeans standard and adheres strictly to the structuring of Java's
bstract Windowing Toolkit. A student working with JBuilder must
think in terms of Java -- not just in terms of a generic object-oriented
programming language. While JBuilder hides certain implementation
details, it forces the student to concentrate on Java concepts.
This makes JBuilder a very useful pedagogical tool.
Prerequisites:
Programming in C or C++. Participants DO NOT need to have any background
in Java programming.
Bio:
Dr. Burd is Professor (and the Department Chair) in the Department of
Mathematics and Computer Science at Drew University. He is the author
of a new JBuilder book published by IDG Books Worldwide. His workshops
and presentations are lively, chatty and informal.





WORKSHOP 20

WORKSHOP TITLE:
Research in Computer Science Education:
Focus on Quantitative Methods
PRESENTED BY:
Vicki L. Almstrum, Ph.D
Department of Computer Sciences
University of Texas at Austin
Austin, TX  78712
telephone:  (512) 471-9737
fax:  (512) 471-8885
email:  almstrum@cs.utexas.edu
Goals for the workshop:
-----------------------
1.  Overview basic research designs and methods of analysis in educational
research, using concrete examples to support the definitions and theory.
2.  Clarify the process of designing educational research, including
decisions and trade-offs, once again using  concrete examples to illustrate
the concepts.
3.  Provide practical guidance to design options and research techniques
that can readily be applied in "typical"  computer science classrooms.
Particular attention will be  given to the challenges faced by
instructor-researchers  whose classroom sizes are small and therefore do
not lend  themselves to classical experimental designs.
Significance and Importance to SIGCSE
-------------------------------------
This workshop proposal expands a workshop that has been given at the five
most recent SIGCSE Technical Symposia.  The 1993 tutorial arose from the
results of a survey sent to all ACM SIGCSE members; several respondents
asked:  What can SIGCSE do to add validity to research in Computer Science
Education?  Dr. Nell Dale, who was SIGCSE chair at that time, pointed out
that researchers in computer science education must stop relying on
anecdotal evidence and start applying scientific principles to their
research.  The workshop(s) provide attendees with a tangible way in which
to improve their own research repertoire.
Target audience
---------------
The target audience for this tutorial is computer science instructors
interested in doing educational research while continuing to fulfill their
many other responsibilities.  We do not assume more than a rudimentary
background in educational research design and statistical methods.
Content of the workshop(s)
--------------------------
This workshop will have a very strong practical flavor.  Attendees should
leave the workshop enthusiastic about and empowered to begin designing
their own educational research.  The presentation will cover basic "theory"
and background concepts, including the following:
 - The steps in planning and carrying out research, including
   identifying viable topics
 - Research paradigms
 - Design methodologies in quantitative design, e.g. experimental
     and quasi-experimental designs, correlational designs, causal-
     comparative designs
 - Internal and external threats to the validity of research
 - Common sources of errors in research studies
 - The role of anecdotal evidence
 - Ethics and legal constraints
 - Evaluating the research of others
Hands-on exercises and discussions will allow participants to 
nsider
research topics that they have pondered themselves.
Handouts:
---------
Participants will leave the workshop with a number of handouts designed to
provide support and information as they set up their own research studies.
These handouts will include at least the following:
- A copy of the transparencies from the concepts component of 
e workshop.
- The annotated bibliography of helpful books and articles.
- Copies of example articles and reviews.
Participants will also be invited to join the SIGCSE listserv 
st
dedicated to discussion and dissemination of ideas on the topic of
education research in computer science (csed-research).  The original list
was established after the 1994 SIGCSE Technical Symposium; after last
year's Technical Symposium, the list was set up via the ACM listserv
mechanism.
Brief Biography of Presenter
----------------------------
Vicki Almstrum received her Ph.D in Computer Science Education at the
University of Texas at Austin in May 1994.  Her dissertation title was
"Limitations in the Use of Mathematical Logic by Novice Computer Science
Students".  In this research, she studied student difficulties with key
concepts from the theoretical foundations of computer science.  Vicki has
worked for Motorola in Tempe, AZ (4 years) and Philips Electronics in
Stockholm, Sweden (4 years), where her responsibilities ranged from
analysis and design through quality assurance, standards and methodologies.
She is a lecturer at the University of Texas at Austin and a guest
lecturer at Uppsala University in Sweden.





WORKSHOP 21

Workshop title:  Visual Modeling Technique Using VisualAge for C++
Primary author
Roger Y. Lee
Computer Science Department
Central Michigan University
Mt. Pleasant, MI 48859
e-mail: lee@cps.cmich.edu
Phone: (517) 774-3811	Fax: (517) 774-3728
Other author
Dale Jarman            Computing Center,  Central Michigan University
Visual Modeling Technique Using VisualAge for C++
Roger Y. Lee  and  Dale Jarman
Computer Science Department
Central Michigan University
Mt. Pleasant, MI 48859
lee@cps.cmich.edu, jarman@cps.cmich.edu
(517) 774-3811/(517) 774-6452
The purpose of the workshop is to enhance the knowledge of 
undergraduate computer science faculty concerning a framework, 
tools and strategies for using CASE technology in software 
engineering and software systems development courses.  This 
workshop will provide an introduction to CASE technology, 
demonstrate the teaching of object-oriented modeling techniques 
using VisualAge for C++, and illustrate the development of an 
object-oriented system via VisualAge for C++. 
The goal of  Visual modeling technique is to provide a 
methodology that integrates visual programming into the object-
oriented application development process.  We will provide the 
illustration, hands-on experience, and sample cases which we 
used in our s oftware engineering and software systems design 
and development courses. 
Major topics include:
* Rationale for teaching software engineering and software 
  systems design and development courses. 
* Introduction to visual modeling technique and object-oriented 
  modeling. 
* The roles of CASE tools (VisualAge for C++, Together/C++, and 
  rational Rose/C++) in building object-oriented applications. 
* Highlights of visual modeling technique using VisualAge for 
  C++. 
* Hands-on experience in building an object-oriented  modeling 
  using VisualAge for C++. 
Duration:  Two 90 minutes sessions (half-day).
Intended Audience:
* Educators teaching or preparing to teach software 
  engineering/software systems design and development courses.
* Anyone interested in learning object-oriented modeling using 
  a CASE tool (VisualAge for C++).
Tentative Schedule.
* First session: 
	- Introduction to object-oriented modeling 
	- Introduction to visual modeling technique 
	- Introduction to CASE technology (VisualAge for C++, Together/C++, 
   and Rational Rose/C++) 
	- Demonstrate VisualAge for C++ 
* Second session:
	- Hands-on experience in building an object-oriented  
          model using VisualAge
References
Bragg, T. "Together/C++", Software Development, July 1994, pp. 15-21.
Nilsson, D., & Jakab, P. "VisualAge for C++, Prentice-Hall, 1997.
Rational Rose/C++, Rational Software Corporation, 1995.
Tkach, D. et al "Visual Modeling Technique", Addison-Wesley, 1996.
Together/C++, Object International, Inc., July 1994.
Background of Presenters.
Roger Y. Lee received his BS degree in Electrical Engineering 
(1975) from Hanyang University in Seoul, Korea, MS degree in 
Computer Science (1986) and the Ph.D. in Special Education 
(1982) from University of Southern Mississippi.  Dr. Lee is 
professor of computer science at Central Michigan University and 
his research interest areas  include software engineering 
technology and computer science education.  He has published a 
number of papers in his field.  Dr. Lee received a DARPA grant 
for undergraduate s oftware engineering curriculum development 
in 1994, and a NSF ILI grant for Object-Oriented  Programming 
Laboratory in 1997. 
Dr. Lee is the Guest Editor of a special issue of the  
International Journal of Computer Science and Information 
Management.  He is the program chair of the Association of 
Management's International Computer Science Conference to be 
held in August 1998, S an Diego, California, and organized and 
chaired sessions on Software Engineering and CASE for the 
International Association for Technology and Development, the 
Association of Management, and the International Association for 
Computers and Their Applicatio ns the past three years, 
respectively.  Dr. Lee conducted an workshop on OOA/OOD Modeling 
Using Together/C++ at the ACM SIGCSE Technical Symposium, 
Philadelphia, 1996.  He also conducted an workshop on Visual 
Basic Made Easy at the 29th Small College Comp uting Symposium, 
St. Cloud State University, 1996. 
Mr. Dale Jarman received his BS in Computer Science and the MS 
in Mathematics from Central Michigan University.  Mr. Jarman is 
the director  of our Computing Center, Department of Computer 
Science at Central Michigan University.  He has had 22 years of 
ex perience in implementation  and maintenance of our hardware 
and software systems. 


SIGCSE '98 | ACM


Email comments to webman@cs.virginia.edu
Created by the Computer Science Web Team and Gabriel Robins