Date: Wed, 20 Nov 1996 22:55:38 GMT Server: Apache/1.0.5 Content-type: text/html Content-length: 4115 Last-modified: Fri, 22 Sep 1995 19:01:14 GMT CS193e: Object-Oriented User Interface Programming on the NeXT machineDesign

CS193e: Object-Oriented User Interface Programming on the NeXT machine

Stanford University 1994-95

Spring, (Zelenski@cs.stanford.edu)

Check to make sure this is being offered 94-95

CS193e uses NeXTstep as a platform to explore designing and implementing significant software projects in a GUI environment. Programming labs ensure students acquire strong programming and design skills. Topics covered include object-oriented architecture, elements of user interface design, testing strategies, project management.

Handout #1 1993-94 excerpt:

Welcome to CS193e: Object-Oriented User Interface Programming on the NeXT machine. In your typical CS class, you focus your efforts on the algorithmic side of problem solving. This class deals with a different type of program complexity: building programs to interact with users. The user takes charge and the program must appropriately present the application functionality, handle user actions, and provide feedback on those events. The Xerox Star, the Apple Macintosh, the varied graphic interfaces of Sun workstations are all examples of environments where applications must support this user-driven model.

The user has greatly benefitted from the shift in application design, but unfortunately, the programmer often pays the price for this ease-of-use, investing months of engineering time dealing with the myriad facets of the user interface. Given that programmers don't enjoy pain and re-inventing the wheel, the environments for application design have been evolving to provide better support for application development. Large toolkits exist for the Mac, Windows, X, etc. that assist in presenting a consistent interface and interaction with user.

Another trend is the move towards object-oriented programming. Object-oriented programming has some advantages over the traditional procedure programming mode. First, it increases the modularity of programs and the likelihood that modules can be reused in other programs without being rewritten from scratch. Second, object-oriented programming is a natural framework in which to program graphical user interfaces; graphics elements such as windows and menus are naturally modelled as objects, while clicking with the mouse can be viewed simply as sending a message to the object under the cursor at the time of the click.

The object-oriented system bundled with the NeXT machine, NeXTstep, represents the one of the most cohesive object-oriented UI toolkits and appears to the benchmark to which other systems are compared. For this reason, you will be learning and using the NeXT to explore the world of building UI applications. But more broadly, the experience of working in an object-oriented toolkit and principles of user-centered design should transfer to other UI environments you may work with.

CS193e has also been adapted to serve as an alternative path to the senior project course 194B. 194A & B were designed as a two-quarter sequence designed to prepare you for, then turn you loose on, a substantial systems project. 194A focuses on programming the Macintosh toolbox, where 193e chooses the NeXT for a platform. Either way, you should gain good experience in designing, implementing, and testing significant programs and should be well prepared to produce a great project for 194B.


Click here for list of HCI courses at Stanford
Information provided for the Stanford Computer Science Department by the HCI Course Coordinator as part of the description of HCI at Stanford. Last updated Sept. 11, 1994