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