The Juncture of User and Computer System:
Building a Better Interface

Faculty Profile: Ben Schafer

December 2005

Many of us have encountered these or similar problems, to our frustration. To Ben Schafer, assistant professor of computer science, problems such as these are part of the challenge in designing computer systems that humans can interact with successfully.

In graduate school and when he first came to UNI, Schafer focused on recommender technology, something most of us have encountered even though we didn't know what it was called. Recommender systems are sets of computer algorithms that attempt to help users find items they would be interested in. For example, a movie website with which Schafer has worked uses a recommender technique called collaborative filtering. After a user rates a sufficient number of movies on a scale of 1 to 5, the system compares her ratings with those of other people with the same or similar scores. In this way, the system can predict what one user will do on the basis of what another one, with a similar profile, did. These types of recommender systems have users rate something--be it a book or a movie or something else--and then make recommendations. Typically recommender systems are used in commercial applications, but they can be used to recommend anything. Implicit recommender systems monitor the user--for example, what sites he is visiting--to offer other avenues, such as books, other websites, or individuals, to find what the user is looking for.

Since his early years at UNI, Schafer's research interest has evolved from looking at the underlying algorithms to how people interact with the systems. He is interested in answering such questions as, What are users willing to do? What kinds of data are they willing to provide? At what point do the systems do something to offend users so that they stop using the system?

At another level, Schafer is focusing on how people make decisions. A computer system may fail if it does not address the way people approach a problem. Going back to the movie recommender system as an example, such a system may seem artificial to users if it does not take into account such constraints as what movies are available in a particular geographic area, which movies will appeal to each of the two (or three or four . . .) people attending, which movies are showing at convenient times. Such meta-recommender systems try to generate recommendations from more than one facet of data (time constraints, content constraints, etc.). Recently, Schafer and one of his students built a comprehensive online survey to investigate how people make decisions in the domain of movies, what process they go through, and what data they look at. The survey will be available on a website and will be advertised to encourage potential respondents to visit the website and complete the survey.

For the past two years, Schafer has been teaching a course on user interface design. Students in the class select a project and build "the front end," the part of the software the user sees. For example, students have built the front end for help desk software for UNI's Rod Library and a Web interface for room scheduling software for the UNI Theatre Department. The projects help students in the course think about how users approach a piece of software.

Another valuable tool in interface design is the Computer Science Department's new usability lab, made possible by a grant from the State Farm Companies Foundation, which allows researchers to observe how users interact with software. To test the new design of UNI's Career Search Services website, Schafer will observe users of the website in the lab to determine if they encounter any pitfalls. When he analyzes a website, Schafer tries to identify what a typical user actually does with the site, what needs to be on the site and what is a distraction, the organization of the content, even the wording used.

Following is a selected list of Schafer's publications related to the work discussed above as well as his e-mail address. Most of the articles listed below are available on Schafer's website.

Schafer, J.B. (2005). The application of data-mining to recommender systems. In J. Wang (Ed.), Encyclopedia of data warehousing and mining (pp. 44-48). Hershey, PA: Idea Group Reference.

Schafer, J.B. (2005). DynamicLens: A dynamic user-interface for a meta-recommendation system. Beyond personalization 2005: A workshop on the next stage of recommender systems research at the ACM Intelligent User Interfaces Conference (pp. 72-76). San Diego, CA: ACM Press.

Schafer, J.B., Konstan, J.A., & Riedl, J. (in press). Recommender systems for the Web. In V. Geroimenko & C. Chen (Eds.), Visualizing the semantic Web (2nd ed.) (ch. 6). Springer Verlag.

Schafer, J.B., Konstan, J.A., & Riedl, J. (2004). The view through MetaLens: Usage patterns for a meta-recommendation system. IEE Proceedings Software, 151(6), 267-279.

Schafer, J.B., Konstan, J.A.., & Riedl, J. (2002). Meta-recommender systems: User-controlled integration of diverse recommendations. Proceedings of the ACM Conference on Information and Knowledge Management. McLean, VA: ACM Press.

Schafer, J.B., Konstan, J.A., & Riedl, J. (2001). E-commerce recommender applications. Data Mining and Knowledge Discovery, 5 (1-2), 115-152.

our original home, Wright Hall


About Us

Undergraduate Programs


Faculty & Staff



Advisory Board


Courses and Registration

Student Life

Information for Prospective Students

Other Resources

Department of
Computer Science
305 ITTC
(the old East Gym)
Cedar Falls, Iowa
ph. (319) 273-2618
fax (319) 273-7123

UNI CS on Facebook UNI CS on Twitter

University of Northern Iowa

Diversity Matters


Paul Gray

With distributed computing, the devil is in the details. That's because a programmer is dealing with all sorts of different hardware and networks. Meshing all of these elements presents a significant challenge that Paul Gray, associate professor of computer science, is leading the charge to solve... [more]

More Profiles


bootable cluster project


realtime systems lab


More Projects

Department of Computer Science