[comp.edu] Turing in Computer Science Core Courses

holt@turing.toronto.edu (Ric Holt) (02/11/89)

USE OF TURING IN A COMPUTER SCIENCE CURRICULUM

Dave Bozak asked about the idea of using the Turing programming
language across "core" courses in a computer science curriculum:

  >What is the general attitude toward turing as the next language to use
  >in intro cs classes?  and more generally, as a substitute that enables
  >a one language approach towards classes in data structures, file
  >processing, assembler, and other "core" courses (which would minimize
  >the learning curve when moving to C, C++, Euclid, ...).
  >
  >dave bozak
  >computer science
  >SUNY College at Oswego
  >dab@rocky.oswego.edu

The experience at the University of Toronto has been, briefly, as
follows.  First, in 1983, the Department of Computer Science started
teaching Turing as the introductory language, 
leap frogging Pascal.  The observation was that Turing was enough easier to
teach than Pascal that the usual introductory material was covered
2 weeks faster (out of 13 weeks), leaving 2 weeks for new material.

Almost immediately, the Data Processing course dropped C and pushed Cobol
back, to use Turing, on the grounds that Turing's checking, syntax,
and random access I/O were better for teaching concepts.  Similarly, the
Data Structures course dropped PL/I and started using Turing because of
Turing's checked pointers and union types.  Both courses
were accelerated because students didn't need to labor through learning
yet another programming language at the start of the course.

The Languages course now does a unit on parallel programming, using
the concurrency features of Turing Plus.  The Compiler course gives
the students a large project broken into separately compiled modules,
which represent the major parts of the compiler; this too uses Turing,
the reason being that Turing's separate compilation is completely checked
and works conveniently under Unix.

The Operating Systems course has a large project in which the students
must enhance a model operating system called MiniTunis, which is 
essentially a simplified Unix.  MiniTunis runs as a process under Unix,
splitting up the student's screen so it acts like four screens of
individual MiniTunis users.  This is all programmed in, guess what,
Turing Plus, with separately compiled modules and concurrent
(sub)processes.

Finally, a fair bit of research in the Department now uses Turing Plus.
For example, the 100 CPU shared memory Hector project is writing its
Polyx operating system in Turing Plus, concurrent numerical algorithms
are being prototyped in Turing Plus, etc.

The overall result has been that the courses get more material covered
that was previously possible.  The reason is that less time is used up
teaching syntax and that Turing language features support
the concepts that the courses want to teach.
The Department continues to teach C and Cobol as well, but it is increasingly
difficult to find anyone who wants to teach these.

rich@mrsvr.UUCP (Richard Ralston) (02/13/89)

From article <89Feb11.120551est.4328@turing.toronto.edu>, by holt@turing.toronto.edu (Ric Holt):
> USE OF TURING IN A COMPUTER SCIENCE CURRICULUM

Could someone please Email me about 'Turing' please?  Obviously it's
a programming language, what's it like?

Thanks,
Rich

------------------------------------------------------------------------
Richard B. Ralston              | ...it was the voice of Jesus,
G.E. Medical Systems            | and I heard him say,
PO Box 414                      | "Got an Angel riding shotgun,
Milwaukee, WI 53201-414         | and he's riding with you all the way."
                                |                  -Daniel Amos
------------------------------------------------------------------------
uunet!steinmetz!gemed!starwolf!rich
sun!sunbird!gemed!starwolf!rich
------------------------------------------------------------------------

bje@sonia.math.ucla.edu (Bjorn Ellertsson) (02/14/89)

Email didn't go through.
Here is a reference:
=============
Author:        Holt, R. C. (Richard C.), 1941-
Title:         Introduction to computer science using the Turing programming
                 language / R.C. Holt, J.N.P. Hume. Reston, Va. : Reston Pub.
                 Co., c1984.
Description:   xii, 404 p. : ill. ; 25 cm.

Notes:         Includes index.
               "A Reston Computer Group book."

Subjects:      Electronic data processing.
               Electronic digital computers -- Programming.
               Turing (Computer program language)

Other entries: Hume, J. N. P.
============
Bjorn
============
Bjorn Ellertsson, Program in Computing, UCLA (213) 825-2251
UUCP:...!{ihnp4,ucbvax,sdcrdcf,{hao!cepu}}!ucla-cs!math.ucla.edu!bje
ARPA: bje@math.ucla.edu          BITNET: bje%math.ucla.edu@INTERBIT