Reproduced with permission from NeXT Computer, Inc., USA, NeXT on Campus, Fall 1990. ã 1990 NeXT Computer, Inc., USA

University of British Columbia
Rethinking introductory computer science  
 
First-year computer science classes traditionally focus on programming.  Today, many incoming students who studied programming in high school are not challenged by the introductory courses.  More importantly, traditional programming courses often do not provide students with the theoretical foundation they need to continue their studies in computer science.  But things are changing.
 
"There is a sense among computer science educators these days that something is seriously wrong," says Vincent Manis who teaches the introductory computer science course at the University of British Columbia.  Seeking to overhaul the first-year course, Manis and his colleagues looked at a number of alternatives.  They decided to model their curriculum on the one used by the Massachusetts Institute of Technology, which, says Manis, is based on significant issues in computer science rather than the raw skills of programming.
 
The UBC course focuses on four key areas:
· procedures, or rules, for data input, output, and manipulation
· objects used to model real-world problems
· relations between objects
· the computers themselves, how they work
 
"The focus isn't so much on how to give students the skills for using the computer," Manis explains.  "It's much more conceptual." 
 
After creating the curriculum, the university began searching for the computer that could deliver it.  "We wrote a request for proposal that detailed our requirementsÐa box that could run the software we need, that could run UNIX, that could provide good graphics, and so forth," says Manis.   "NeXT said they had everything we needed.  In particular, they had tools like Interface Builder that would allow us to build up our lab equipment, which is all software, easily and effectively." 
 
The NeXT Computer has enabled instructors and students to build software tools quickly and easily.  "We decided to start with one of the most imaginative tools we could think of," says Manis, "so we built a simple version of Interface Builder so students could get acquainted with the application.  You can't build complete applications with our version, but you can set up a window with buttons, sliders, and features like that.  Actually, I had a summer student work on it.  He finished it in no time."
 
Manis and his colleagues decided to have students use Scheme, a simpler dialect of the Lisp programming language.  They wanted students to build and explore tools for problem solving.  Scheme allows students to concentrate on the problem rather than the language.  "Say you're simulating the lineups in a record store to see how many cashiers you need so people don't have to wait in line too long.  Obviously it's nice to have a display of that.  But we don't want students to spend a lot of time programming the display.  While they might learn some things about programming, they won't learn to think out and solve the problem we're trying to explore.  With the NeXT Computer, we can give them a tool that does the artwork and have them concentrate on how to get a record store into the computer." 
 
Manis also finds the NeXT Computer to be a wonderful environment for learning outside the classroom.  He is using the NeXT Computer's Sound Kit because "it's not only fun, but attaching sounds to programs also helps students understand what's going on."  Manis encourages students interested in other disciplines to use the NeXT Computer's bundled softwareÐMusic Kit, or Mathematica for exampleÐin their student projects.
 
Manis compares the NeXT Computer to a university library. "Libraries don't just have textbooks.  They have other books students might be interested in reading that might have some relevant to what they're studying.  That's an important part of education. Now, when a student says to us, `I'm really interested in databases, or music, or math,' we can say `take a look at Sybase, or the Music Kit, or Mathematica. It's all there on the NeXT Computer, you can just play with it and see what you come up with.' It's really exciting."

Vincent Manis, M.S.
Instructor 
Department of Computer Science 
University of British Columbia
(604)228-2394 
manis@cs.ubc.ca