This course has taken a non-traditional point of view that emphasizes the importance of social issues in user interface design, and even goes so far as to claim that good design must take account of the social context in which the system will be used, not just its technical aspects, and not even just its users as individuals. Unlike most computer science courses, this course is not focused on implementation issues, in part because they are changing so fast that it seems more valuable to look at some of the more fundamental issues that determine the success of technical solutions. Of course technical issues cannot be neglected, since they generally determine what it is possible to build, which often is not what would be be optimal from a social point of view. The title of the course, "User Interface Design: Social and Technical Issues," is intended to convey this spirit, which has informed the design of the course from its beginning to its end, and it is also emphasized on the class's homepage, in its first lecture, and in this Afterward. Everything in the course is intended to contribute to good, practical engineering design.
I believe that a good working knowledge of topics like adjacency pair, noticeable absence, mitigated speech act, actant, semiotic morphism, narrative clause, and collaborative filtering can be tremendously helpful to user interface designers, enabling them to do a better job than others who are less aware of social issues, and who lack the tools to deal with such issues. This is especially true for those who will go on to manage work, as I expect most UCSD students to do (since UCSD does not usually admit students who will stay in terminal programming jobs).
Although somewhat radical from the viewpoint of traditional user interface design - and even traditional semiotics - sign systems and semiotic morphisms formalize and codify intuitions that are familiar to practitioners in many areas of communication and design, including journalism, architecture, cinema, sculpture, graphical design, and of course user interface design. These ideas include having a clear idea of the goals of a design, having a good grasp of the medium (i.e., sign system) to be used, knowing which operations and structures are most important, and of course understanding the social context. This in particular includes the importance of involving users in the design process, through techniques such as participatory design, evolutionary prototyping, and usability trials. More detailed principles include trading off content for structure in an overview, and preserving constructors and priorities in generated displays. These can be applied to justify many common design conventions, for example placing a slide bar on the right side of a window using the same coloring scheme as the window.
The most important message of this course is that successful design depends on achieving a good match between technical capabilities and social context (e.g., "the market"), and that certain specific social theories can be useful in this regard. I cannot resist concluding this discussion with the slogan, "Nothing is more useful than a good theory."