Integrating Usability Design Principles into
an Existing Engineering Curriculum

William J. Adams
Dept. Electrical Engineering and Computer Science
United States Military Academy
West Point, NY 10996
(914) 938-5559
adams@eecs1.eecs.usma.edu

Bernard J. Jansen
Dept. Electrical Engineering and Computer Science
United States Military Academy
West Point, NY 10996
(914) 938-5575
jjansen@acm.org

Please Cite: Adams, W. J. and Jansen, B.J. 1997. Integrating usability design principles into an existing engineering curriculum. American Society For Engineering Education National Conference. Milwaukee, Wisconsin.

See Other Publications

ABSTRACT

Currently, usability design principles are taught separately from other engineering courses, if they are taught at all. It is usually not until late in the curriculum that a student is expected to learn and apply usability principles to the engineering projects they create. This leads to the students’ perception that usability considerations are less important than other parts of the design-build-test sequence of project development. The record of failed products, financial losses, and human injuries resulting from poor human engineering is proof that this perception is wrong. We believe that usability principles can be seamlessly integrated into an existing engineering curriculum without requiring a new course or displacing material currently taught in the engineering courses. This integration is done by augmenting existing course requirements with usability principles and by using current engineering concepts to implement usability features. By spreading the introduction of usability principles evenly throughout an engineering curriculum, the student is introduced to usability as an integral component of the project development process, not an afterthought. This paper describes a proposal to implement this integration in the current Computer Science curricula at the United States Military Academy (USMA.) It also presents some examples of our initial attempts at testing the feasibility of such a proposal in introductory and senior level courses.

Keywords

Usability, Engineering Curriculum Design

See Other Publications

INTRODUCTION

A typical observation with student projects is that they are technically and structurally sound but often difficult to use and unappealing in appearance. For example, Pascal is a widely used programming language in introductory computer science courses. While conducive to teaching introductory computer science concepts, this language does not lend itself easily to interfaces more complex than a text menu and command line input. With the emergence of compilers that allow easy access to graphic user interface (GUI) libraries, it is now possible to incorporate usability principles into the curricula without displacing currently taught concepts. The goal of this effort is to augment Computer Science courses already offered in the USMA curriculum via the introduction of usability principles. The effort and methods are transferable to other engineering fields. The goal is to integrate usability design principles while neither replacing courses nor adding new courses. The motivation for doing this is three-fold. First, there is rarely room available in the students’ schedule for an additional engineering course. Second, students will have to deal with customers' desires and preferences when they enter the labor force and place their engineering education into practice. Designing with the end-user in mind is at the heart of usability. Third, a separate usability class does not reinforce usability as integral part of the design process.

The first section of this paper will review usability curricula discussed in current computer science literature and follow with a discussion of the current structure of the computer science program at USMA. The second section will discuss which usability principles one can integrate and show where in the curricula this could be effected. In the third section, the paper will show the intersection between the course goals, as expressed in terms of the major computer science concepts taught in the class, and the usability principles that could be integrated in to each course. Finally, the paper presents the initial test results of incorporating usability principles into the projects of existing courses at USMA.

BACKGROUND

Review of Literature

The manner of communication between human and computers continues to evolve. Because usability in the computer science area studies humans and computers in communication, it draws from supporting knowledge on both the computer and the human side. It is important to organize the curriculum in a changing field with an understanding of the forces shaping the future. This is done in an attempt to ensure that its concepts are not out of date. In other words, the curriculum must build the foundations for its graduates. From this foundation, its graduates can develop their own understanding of the future.

Due to the turbulent nature of the usability field, there is little agreement on how to incorporate usability into an existing computer science curriculum. A lesson learned by many engineering disciplines is that design problems have a context that can invalidate any narrow optimization of one specific perspective [1]. It is within the larger paradigm of engineering design and methodologies that the proper study of usability exists.

There are several approaches that attempt to address this aspect of usability instruction and curriculum development. Studies show that usability is a critical ingredient in project development and should be incorporated into the design process [8]. Various academic institutions have attempted different approaches in introducing usability into the course work. Most schools have simply added one or two usability courses to the curriculum offered within an engineering department. Other universities have taken a multi-disciplinary approach linking courses within different departments [5]. Finally, another approach is to introduce several usability courses and develop a separate field of study focusing on usability within a particular engineering department [6].

All three approaches have certain economic and political costs that many times make them unworkable. For example, if a curriculum introduces a mandatory usability course, which course currently in the curriculum is dropped? If no courses are dropped, where does the financial support come from to add the usability courses to the course load? What free elective is dropped? Can other courses survive with the decreased enrollment? More importantly, all three approaches present the message that usability is somehow separate from the other engineering areas or at best is an add-on to be considered once the "real" work is done.

This situation can be avoided since usability has an inherent relationship to almost all other engineering areas. Since usability, in computer science, focuses on the computer system, it includes both the computer and the human. Due to this fact, it has the advantage of being easily incorporated into existing computer science courses. Additionally, usability has many different levels of complexity. One can tailor the introduction of principles to the sophistication level of the students (i.e., simpler principles at the freshman level and complex or more subtle principles at the graduate level). This introduction is directly related to the interlocking relationship of usability and project design.

Our proposal overcomes many of the economical and political disadvantages of the other methods. Of course, one must convince the individual instructors that the introduction of usability principles will benefit their courses. We have attempted to ensure that the introduction of usability principles been beneficial to the course by building on the concepts already existing in the course. We have chosen to test our proposal with actual introductions of usability principles into existing computer science courses. From these and other tests, we hope to build a theory of usability integration. This method of deriving usability principles from actual concepts, products, or prototypes has historical roots in the engineering community. These include the conceptual Memex [2], the Sketchpad [11], the work of Engelbart [4], and the Dynabook [7].

Current Computer Science Curriculum

In their first year at the Academy, all students take a course in problem solving with computers. This course, currently taught using the Ada programming language, introduces students to basic logical concepts and constructs such as iteration, selection, and structured design. There is a wide range of student-computer expertise in this course. Students enter this course with as much as three years of computer experience at the high school level or as little as not having used a computer until they arrive at the Academy.

In the fall of their second year, each student at USMA selects a major. In addition to identifying their main course of study, they must also select a five course engineering sequence to augment their major. Thus, computer science majors automatically take the five course computer science engineering sequence, but students from other majors such as history, economics, and psychology can also elect to take the same sequence. This brings an eclectic blend of interests, backgrounds, and talents to each of the five ‘sequence’ courses. These courses provide the basic range of computer science topics to include programming constructs, hands-on computer systems, and databases. In the final year of the program, students participate in a capstone design course in which they synthesize the concepts of the previous sequence courses and apply them in a group project. Unfortunately, this is also where most of the students are first exposed to usability principles of design.

Table 1 shows some of the key concepts currently taught in the sequence courses. Of these key concepts, the usability concepts that are already in the curricula are annotated with an asterisk (*). Because the usability instruction comes so late in their course of study, most students treat it as having only secondary importance. "Let’s get the project working, then we’ll pretty it up" is a view often adopted by the student groups.

Course

Key Concepts

Problem Solving with Computers

(CS105)

Programming constructs:

Selection

Iteration

Structured Design

Fundamentals of Computer Science (CS360)

Algorithms

Pointers and Linked Lists

Breadth of CS Topics

Computer Information Systems (CS383)

Multimedia

Information Presentation *

Database Systems

(CS393)

Relational Algebra

Normalization

Interface Widgets *

Information Systems Design I and II (CS405/6)

Software Development Life Cycle

User Requirements

Program Specification

Table 1 CS Sequence and Concepts

SOLUTION

By imaginatively augmenting computer science concepts with usability features in student projects throughout their courses, the students would learn usability as a part of the software development cycle and not as an afterthought. Because the usability aspects would be introduced early and consistently throughout the curricula, more professional projects can be created, raising student self-esteem and better preparing students for commercial employment. We propose selecting usability material that complements computer science and other engineering concepts that are currently in the courses and using the usability features to improve performance and make student engineering projects more appealing to the students. For example, by using the GUI as an alternative to menu and command line programming, students are quickly and, more importantly, visually rewarded with the results of their work.

The Ada compiler currently in use by the USMA computer science program has two features that make it particularly adaptable to this purpose. First, libraries of GUI widgets already exist. Students are taught how to integrate libraries into their projects as part of the core computer science course, Problem Solving with Computers. Knowing how to use these libraries, students can then make interfaces more sophisticated than the command lines offered by the Pascal compiler used in past years. Second, this compiler allows students to compile their Ada program code into Java p-code. This makes their projects and the usability features associated with them transferable to any machine.

By including usability in their first and all subsequent computer science courses, the students use both their Ada programming and usability programming skills with all of their projects. This manner of usability instruction reinforces habitual processing, encourages modularity via GUI widgets, and promotes user-oriented software design. This is contrasted with the current situation where the students use usability programming only in isolated courses and applications. If another institution wished to implement this same program but was not using Ada, any other programming language that offered visual interface libraries could be used. Examples in use at other schools include Delphi, Visual Basic, and Visual C.

PROPOSAL

Overall, the introduction of usability considerations into the computer science curriculum is based on:

  1.  
  2. The opportunity to seamlessly couple usability principles with computer science principles that are inherent to the course.
  3.  
  4. The fact that these usability principles build upon principles introduced in previous courses.

Figure 1: Sample Command Line Interface Menu.

An example of this proposal would be the evolution in user interfaces of a common student assignment. In this example, the student is required to create a program that will assist the University Registrar in adjusting students’ schedules. If the class were using Pascal, or some other language without GUI libraries, the user interface would be a text menu with command line user input, such as Figure 1.

Figure 2: Sample Graphical User Interface with Basic Widgets.

This interface is not visually exciting and does not readily incorporate any usability principles such as visual feedback or user cues. Implementing the proposed incorporation of usability within the programming classes, an interface, such as the one in Figure 2, could be created. It has a more professional and polished look as well as the advantage of supporting the course objective of having the student pass parameters to a library function.

Figure 3: Advanced Graphical User Interface with Basic Widgets

At a more advanced level, interfaces such as Figure 3 are constructed which cause the student to accept input from many sources, check the input for validity, and then process the information. All three of these examples have focused on the input screen of the program assignment, but the same principles hold true for the output screens.

Table 2 shows the current structure of the CS sequence with the addition of the selected usability concepts [8][11]. In all cases, the usability concepts can be added without

disrupting the current flow of the course. In CS105, for example, students currently learn iteration and decision constructs in separate programming exercises. As the final lab assignment, the students are required to design and implement, in groups, a fairly complex program with menu interfaces, formatted output statements, and error checking. We propose taking this course further by having the students learn the decision construct as a means of implementing error checking. The students build on this during CS360 with user feedback and basic interface widgets.

In CS383, students create hypertext markup language (HTML) pages to present research findings and sharpen their sense of information presentation. Instead of writing 10-page papers and then directly translating them into HTML, concepts of chunking and information organization are introduced to create more professional information webs. Finally in CS393 and CS405/6, students create advanced widgets and user interface testing procedures. Although, this example is USMA, computer science specific, one can generalize the process to other academic institutions and engineering fields.

Based on our initial test results, it appears that one can integrate a wide range of usability principles into a course. The challenge is to match computer science concepts with an implementation that has a usability lesson imbedded within it. .

Course CS Concepts Usability Concepts
Problem Solving with Computers

(CS105)

Programming constructs:

Selection

Iteration

Decision

Structured Design

Error Checking

Error Messages

Fundamentals of Computer Science

(CS360)

Algorithms

Pointers and Linked Lists

User Feedback

User Cues

Simple Interface Widgets

Computer Information Systems

(CS383)

Multimedia

Information Presentation *

Chunking

Information Organization

Multiple views and windows

Database Systems

(CS393)

Relational Algebra

Normalization

Interface Widgets *

Advanced Widgets

Slide Bars

Pull Down Menus

Information Systems Design I and II

(CS405/6)

Software Development Life Cycle

User Requirements

Program Specification

User Modeling

Interface Testing

CONCLUSION

In this paper we have proposed a method for incorporating usability principles into an existing engineering curriculum without introducing new courses or displacing information in the current courses. Both our proposal and its accompanying examples show that usability brings value added to the engineering projects. We believe that this partnership of usability and engineering design is especially effective if introduced consistently throughout the curricula.

Most importantly, this proposal introduces usability principles and features to the student as part of the product development life cycle, not as an afterthought as is done in most engineering programs. By actively and imaginatively coupling usability features with engineering principles inherent in the courses and assignment, the marriage of usability and engineering design become transparent to the student.

We have outlined a program that works in our particular situation. However, the concepts and principles are transportable to other universities and other disciplines. In the future, we will examine ways to make our proposal more universal by developing heuristics for identifying which engineering principles complement which usability features the best, both from the student and the instructor points of view.

REFERENCES

1. ACM Special Interest Group on CHI Curriculum Development. ACM SIGCHI Curricula for Human-Computer Interaction. Referenced through the World Wide Web, at http://www.acm.org/sigchi/cdj.

2. Bush, V. As We May Think. The Atlantic Monthly, Vol. 176. no. 1, July 1945, 101-108.

3. Center for Information Systems Agency. Human-Computer Interface Style Guide. Version 1.0 12 Feb. 92. Cameron Station, Alexander, Virginia.

4. Englebart, D.C. A Conceptual Framework for the Augmentation of Man’s Intellect. Vistas In Information Handling, Vol. 1, 1-29.

5. Foley, J., Mitchell, C., Waler, N. Human-Computer Interaction Research at Georgia Institute of Technology. Proceedings CHI’91, 61-62.

6. John, B. and Morris, J. HCI in the School of Computer Science at Carnegie Mellon University. Proceedings INTERCHI’93, 49-50.

7. Kay, A. and Goldberg, A. Personal Dynamic Media. IEEE computer, Vol. 10 no. 3, 31-42.

8. Lundel, J. and Notess, M. Human Factors in Software Development: Models, Techniques, and Outcomes. Proceedings CHI’91, 145-150.

9. Marcus, Aaron. The Future of Advanced User Interfaces in Product Design. TRON Project, 1992 Symposium: 14-20.

10. Norman, Donald. The Psychology of Everyday Things. New York: Basic Books:1988.

11. Shneiderman, B. Designing the User Interface: Strategies for Effective Human-Computer Interaction. Reading, MA: Addison-Wesley.

12. Sutherland, I. Sketchpad: A Man-Machine Graphical Communication System. AFIPS Spring Joint Computer Conference, Vol. 23, 329-346.

DISCLAIMER

The product names mentioned within this paper remain the sole property of their respective owners. The opinions expressed within this paper are solely those of the authors and do not express the positions of the United States Military Academy or the Department of Defense.

AUTHORS

William J. Adams

Captain William J. Adams is an Assistant Professor in the Department of Electrical Engineering and Computer Science at the United States Military Academy. An active duty Army officer for over ten years, Captain Adams specializes in communications and automation. While at the Military Academy, he has continued his research into hypermedia and software engineering through projects in distributed learning and hypermedia course resources. In addition to teaching a course in Computer Information Systems, he is the Chief Technical Consultant for the Army Training and Doctrine Command’s Classroom XXI effort. This program focuses on implementing distributed learning and integrating technology into the over 1000 courses currently taught at the 21 Army schools around the country.

Jim Jansen

Major Jim Jansen is an Instructor in the Department of Electrical Engineering and Computer Science at the United States Military Academy. He is also a Ph.D. Candidate at Texas A&M University. He has served in numerous, military communication assignments in the US and Europe. His research interests and expertise include computer-human interaction, information retrieval, and software agents. He is currently conducting research in the combined use of agents and information search engines. Email: jjansen@acm.org
Web Site:
http://jimjansen.tripod.com/