next up previous
Next: 2 J as an Up: Using J as an Previous: Using J as an

1 Introduction

At my university there was a need for new laboratory science courses which would partially satisfy a student's common curriculum requirement. Each student is required to complete two or three science courses. Two courses suffice when one of the two courses is a laboratory science course, so there is some incentive to take a laboratory course because the common curriculum requirement is reduced by one course. Traditionally, laboratory science courses had been selected from the natural science disciplines of biology, geology, physics or chemistry. The author developed a new introductory computer science laboratory course (and co-requisite lecture course) in which students are gathered together in a workstation laboratory at the same time to work in pairs performing a prepared laboratory experiment.

One feature of this course is that it covers a variety of computer science topics at about the rate of one new topic per week. Consequently, only an introduction to each topic can be presented during the two or three lectures on each topic. As a result, the course emphasizes a breadth of understanding at the expense of depth of understanding of any single topic.

Another feature of this course is that, while it uses the J programming notation extensively to describe and model each topic, the course does not attempt to teach students to become effective programmers. Students are taught just enough J syntax and semantics to be able to read and understand J expressions and programs written by the instructor. Such programs form the basis of models of various computational structures such as computer circuits, arithmetic units, data structures, processors, processes, etc. Since these models are expressed in J, the models can be executed on a workstation and form the basis of laboratory experimentation in the course.


next up previous
Next: 2 J as an Up: Using J as an Previous: Using J as an
2002-09-30