Workshop Proposal For M/SET99
Developing Computer Science Courseware Using WebToTeach
David Arnow
Brooklyn College, CUNY
arnow@acm.org
Objectives:
     
The objective of this workshop is to introduce computer science
instructors to the use of WebToTeach-- an on-line automated
program and program-fragment checking facility. WebToTeach
is an invaluable tool for developing, sharing and customizing highly
interactive computer science courseware. It is suitable for
all levels of computer science programming courses but has
its greatest impact in introductory and intermediate level courses.
More details can be found at the
WebToTeach web site:
http://www.sci.brooklyn.cuny.edu/~arnow/WIP/WebToTeach.html.
Intended Audience:
     
The workshop is geared for anyone who has, is, or soon will be
teaching computer programming classes at any level. No special
knowledge or experience is needed.
Proposed Length:
     
3 hour workshop; ideally, there would be one
computer (of any sort) with an internet connection
for each pair of participants. If not, an internet connection
for the instructor's laptop would be acceptable.
Description:
     
Large numbers of students at both the high school and the
college level are interesting in learning programming and
exploring the pursuit of a career in computing. In spite of
this interest, a huge fraction of these students
fail to master basic programming concepts and skills,
become discouraged, and fall by the wayside.
     
The difficulties experienced by students of middle abilities are in
large part due to the nature of the exercises found in most
programming courses: few and relatively large scale. In fact,
what students need are large numbers of small exercises that focus
on a particular concept or technique.
However, because there is such a thing as "right or wrong"
in computer programming, rigorous checking of such exercises is essential.
Unfortunately, because there are many possible right answers and because they may differ
from wrong answers in textually miniscule ways, checking answers
is extremely time-consuming and perhaps impossible to carry out
rigrously by simply reading.
Thus such exercises are generally not available in sufficiently large number to
meet the needs of most students.
     
This workshop offers a solution to this problem:
WebToTeach
is an on-line automated program and program-fragment
checking facility.
It allows instructors to define programming exercises
and automated checks for these exercises. The exercise
may be as microscopic as
      Given two variables named x
and y
, write an expression
      representing the product of their values.
or as involved (or more) as
      Write a C++ program that reads multiple files, given by
      command-line arguments, and produces a concordance of
      the words in these files, listing alphabetically each
      word that appears in any of the files followed by (on
      the same line) word frequency. Following the output
      line containing the word is a sequence of cross-reference
      lines, each indented by a tab. These lines consist of the
      name of the file in which the word was found followed by
      a space-separated list of line numbers indicating the
      lines in which the word appeared.
      additional specifications, examples ...
     
Defining an exercise involves writing clear, precise instructions and
creating effective tests of the students answers. In addition, instructors
can provide solutions that may at some point be made available to students,
general hints for an exercise, as well as hints that are given in response to
particular classes of student errors.
     
Students accessing WebToTeach receive the exercise instructions as well as any
solutions or hints provided by the teacher. Along with these are simple forms
for answering the problem. When the student clicks a SUBMIT
button,
his or her solution is evaluated by WebToTeach (on the server) and a response
is sent back in seconds-- subject to network delays. Responses indicate success
or failure and in the case of the latter, may offer special instructor-provided
hints. Thus, feedback is thorough and immediate.
     
Along with this program exercise-checking facility, WebToTeach maintains
rosters for faculty, allowing them to track students progress and difficulties
with the exercises. In addition, WebToTeach provides a workspace facility
where students can develop, experiment with and test code prior to using or in
conjunction with the exercise checker -- in effect, it provides a simple
development environment. This is especially useful for languages such as Java.
     
WebToTeach provides mechanisms for instructors to import exercises from
others and modify them (or not) for their purposes.
     
Instructor and student access to WebToTeach is entirely through the web and
supports numerous languages, including C, Pascal, C++, Java, Fortran,
Basic, and JavaScript as well as others.
     
Although the mechanism of setting up exercises in WebToTeach
is simple and intuitive, WebToTeach is a new kind of teaching tool
and leads to new pedagogical strategies. The purpose of this workshop
is to quickly introduce the basics of WebToTeach use by instructors and
the intuition behind its implementation
and then examine teaching strategies that it encourages and techniques
for implementing particular kinds of exercises.
WebToTeach was designed by David Arnow
and implemented
with the great assistance of Oleg Barshay.
Topic Outline:
- Teaching Strategies in Programming Courses
- How we learned math, how we teach programming
- Projects vs. exercises
- A Quick Tour of WebToTeach: The Student View
- Exercises
- Record
- Workspace
- A Quick Tour of WebToTeach: The Faculty View
- Roster
- Message of the Day
- Exercises
- Workspace
- Developing Simple Microexercises in WebToTeach
- Wrapping student code
- Test specification
- Preparing multiple tests
- WebToTeach Implementation
- Intuition
- Mechanics
- Security issues
- Teaching With WebToTeach
- Precision and specifications
- Exercising basic language concepts
- Exercising basic programming skills
- Providing hints
- Multifile Exercises in WebToTeach
- Teaching Testing and Debugging with WebToTeach
- Setting up tests of student-provided test-suites
- Importing and Exporting Exercises
- Creating On-line Tutorials With WebToTeach
- A Quick Tour of WebToTeach: The Administrator View
Qualifications:
Professor Arnow is on the faculty of
the Department of Computer and Information
Science at Brooklyn College of City University of New York
and on the doctoral faculty of the Graduate Center of the
City University of New York.
He possesses nearly twenty years of teaching experience
in university, high school and industrial settings including Brooklyn
College, Bell Labs, Bellcore, NYU, Boys and Girls High, and William Patterson College.
The programming courses he has taught at these institutions include
PL/I, Pascal, C, Basic, Java, Shell, JavaScript for both CS majors
and computer literacy students.
He is an author of the recently published CS 1 textbook
Introduction to Programming Using Java-- An Object-Oriented Approach
(Addison-Wesley, 1998).
Since joining Brooklyn College in 1981, Professor Arnow's
research has encompassed data structures, distributed programming, scripting
languages, and parallelization of decision support software. He has published
papers on CS education in SIGCSE and related settings, organized or participated
in CS education panels in SIGCSE and regional conferences, led two NSF-funded
projects in areas of CS education, and organized or co-organized several
nationally attended workshops on logic and formal methods in CS education.
Most of these papers and panels concern the teaching of programming at the
introductory or intermediate level. In addition, he has given faculty-development
tutorials/workshops on Java applet programming in regional CS conferences
and will do so again at WebNet98 in Orlando.
tc