Everything presented in this course has been intended to contribute to good, practical design. But unlike most computer science courses, this course has not focused on implementation issues, in part because they are changing so fast in interface design that it is more valuable to look at 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. This course gives a non-traditional emphasisis to social issues, even claiming that good design must consider the social context in which the system will be used, not just its technical aspects, and not even just its users as individuals. The course title, "User Interface Design: Social and Technical Issues," is intended to convey this spirit, which has informed the design of the course from beginning to end, and this is also emphasized on the class homepage, in its first lecture, and in this Afterward.
I believe a good working knowledge of concepts like adjacency pair, noticeable absence, mitigated speech act, actant, semiotic morphism, narrative clause, partial orderings for quality, collaborative filtering, and similar topics is tremendously helpful to interface designers, enabling them to do a better job than those who lack the tools to deal with such issues. This is especially true for those who will manage work, which most UCSD students will probably do, since UCSD does not usually admit students who will stay in terminal programming jobs, and in any case, these jobs are more and more being outsourced.
Although they are a significant departure from traditional 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. This includes having a clear idea of the goals of a design, having a good grasp of the medium to be used, knowing which operations and structures are most important, and understanding the social context, particularly 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 principles 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.
A basic 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 are very important in this regard. We may take the slogan "Nothing is more useful than a good theory" to mean that a systematic overview of what is most important to know and to do can give tremendous leverage for practical applications. Another basic message is that values and ethics play such fundamental roles in interface design that they cannot safely be ignored, and indeed, should come first. We are, after all, humans before we are designers, we have values and goals, and these should include improving the quality of life for everyone on the planet, not merely fulfulling a job description or implementing a technical specification. Being a good designer is not very different from being a good human: you should be honest, do the best work you can, and be sensitive and helpful to others; doing so will make you a better human, happier and more productive.