Sponsored by the Association for Computing Machinery


Seminar Abstracts

Seminar:  Funding Opportunities at the National Science Foundation
          Division of Undergraduate Education (NSF DUE)
Abstract:
NSF DUE programs have funded significant developments in undergraduate
education in the areas of Course and Curriculum Development (CCD),
Instrumentation and Laboratory Improvement (ILI), and Undergraduate
Faculty Enhancement (UFE).  The new DUE Program Announcement contains
important changes in funding opportunities, including a merger of these
three programs, new opportunities in teacher preparation, an emphasis on
meeting the nation's needs for a technologically prepared workforce, and
a strong commitment to increasing the participation of under-represented
groups in all areas of Science, Mathematics, Engineering, and Technology
(SMET).  This seminar will provide a detailed introduction to the new
program structures in DUE.  There will be time for questions and
discussion of the implications of the changes.
Lillian N. (Boots) Cassel
Program Director, NSF DUE
on leave from Dept. of Computing Sciences
Villanova University






Seminar: A Practical Approach to Internationalizing Information
         Systems and CS Courses
Abstract
The IS 97 Model Curriculum reaffirmed the need to prepare information
technology students to work effectively in an international
environment.  Yet, as computer science educators, we face a never-ending
struggle to stay current in our field.  How can we incorporate yet
another educational goal in the curriculum? What is
"internationalization"?  What form might "internationalization" take in
our courses?  This seminar will answer some basic questions about
internationalizing our courses.   In addition, the seminar will provide
practical suggestions, examples and resources to help you easily infuse
an international perspective in your courses.
As participants in a global economy and society,  exposure to
international perspectives can help us build, maintain and support
global information systems and technology.   Computer science and
information systems bring to the world technologies  that advance global
interaction.   Information technology workers are building systems that
will be used by people from many different backgrounds and experiences.
In the United States,  the work force is becoming more diverse.  And
with the growing focus on collaboration, teamwork and virtual offices,
projects will often involve working closely with people around the
world.   In such an environment, an awareness of other peoples and
cultures becomes increasingly important.
There have been a number of initiatives in government, education and
information technology that emphasize the need for increasing our
knowledge of other countries, nations and cultures.  This session will
endeavor to help participants become acquainted with the move to
internationalize curriculum and suggest some practical ways to
implement internationalization in computer science and information
systems.
Seminar Goals
Summarize some of the reasoning behind internationalization;
Discuss the general approaches to internationalizing curriculum;
Assist participants in evaluating their own curriculum;
Present practical ways to internationalize existing curriculum;
Encourage participants to develop and share teaching suggestions; and
Share some useful resources.






Seminar:
Using Classes Early,
An Object-Based Approach to Using C++ in Introductory Courses

Owen Astrachan
Department of Computer Science
Duke University
ola@cs.duke.edu

Introduction

In the heyday of structured programming, many educators debated the sequencing of topics in introductory courses, particularly the introduction of functions and procedures. As object-oriented programming gains a foothold, particularly via the languages C++ and Java, the debate moves from the introduction of functions to the introduction of classes. To keep the discussion in the form of a debate, this seminar will focus on the issue:

Resolved: classes should be used early in the introductory sequence of courses

Classes should be used early in introductory programming courses when a program or application warrants their use, not because classes are intrinsically a good thing. Rather than demanding that students use a class to convert a Fahrenheit temperature to Celsius, we must show students examples that use classes; examples that leverage the power of classes into programs that would be more difficult to do without the use of classes.

In many cases, classes can be used as units or modules have been used with structured languages. Students and educators can become accustomed to the syntax of C++ and the concepts of object-based and object-oriented programming by using classes for fundamental language constructs such as strings and vectors, and for application-specific programs as well. Classes are used first, then modified, and finally (if ever) written from scratch. With this approach students learn about good coding and design from experience. For this approach to using classes to be effective, a library of well-designed and useful classes must be available to instructors and students.

Presentation

In this seminar we will discuss examples of classes that are useful in introductory courses as well as guidelines for designing new classes for students to use and modify. We will also discuss specific examples that are generic to any C++ environment. For example, strings and vectors may be used in conjunction with standard C++ libraries or using the classes apstring and apvector developed for use in Advanced Placement computer science courses, but used in several colleges and universities. Java also uses string and vector classes whose semantics are similar to the comparable C++ classes.

In addition to utility classes like string and vector, we'll discuss other classes whose use allows students to explore a wider universe of more interesting problems and programs than can be approached with only standard libraries. For example, a Date class that represents calendar dates allows fundamental topics to be explored in new ways.

We will also discuss the downside of relying on supplied classes rather than on writing all programs from scratch. Often it's difficult for students new to programming to master a large and complex library or application programming interface. There is no free lunch, and we will discuss the price of using libraries and classes and how this may change the way many have taught introductory courses.





Seminar: Designing and Building Course Webs with Site-Level
         Authoring Tools
Although computer technology has long promised to revolutionize the ways
we teach and learn, few of these promises have come to pass.  However, a
simpler and quieter teaching revolution is upon us: the use of the
World-Wide Web for providing course resources.
Unfortunately, ventures into the creation of course webs often tax the
resources of instructors, students, and instructional designers.  Too
often, time that should be spent working on content is instead spent on
unnecessary or repetitive details.  Fortunately, a number of tools have
been developed to support site-level authoring.  These tools
automate many tasks in site development and focus not only on creating
individual pages, but also on managing the whole site.
In this session, we will examine a number of site-level authoring tools,
including ASML, WebMaker, and Gentler/SiteView.  We will ground our
discussion in the experiences and perspectives of session participants.
Issues we will consider include: (1) the basics of selecting resources,
(2) the design of individual pages, (3) the design of the site as a
whole, and (4) the use of these tools to simplify and automate specific
tasks.  Participants are encouraged to bring examples and problems from
their own sites.