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 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.
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