The Department of Computer Science at Aalborg University offers three related programs in information technology. All three programs share a common focus on software development. Within this focus, each program emphasizes individual aspects of the use and development of computerized systems. The three programs have emerged in order to enhance educational variety without compromising sufficient depth in core subject areas.
The emergence of new technologies such as Web-based applications, multimedia systems, and mobile devices are challenging our established system of education in information technology. Traditionally, computer science education deals extensively with hardware and software and integrates mathematics as the key supporting discipline. This classical approach has gradually been reshaped over the years by adding new disciplines in response to developments in both use and technology. One such discipline is human-computer interaction (HCI), which has been added to many computer science curricula over the past 10 years.
The approach in which a new discipline is simply added to the existing curriculum reflects a typical response to an increasing need for knowledge about a specific issue. The problem with this approach is that there seems to be a constant need for new kinds of knowledge and, therefore, an implied pressure to include more and more disciplines. In the long term, this approach is confronted with lack of available space in the curriculum. When a new discipline is added to the curriculum, we must either remove an existing discipline or teach all the existing disciplines in less time. As a result, the number of issues that can be treated in sufficient depth tends to decrease.
This dilemma has become increasingly apparent to the committees that have developed the information technology programs in the Department of Computer Science at Aalborg University. We started around 1982 with our first master's program in computer science, and a few years later we also started to offer a related master's program in computer engineering. The difference between the computer science and computer engineering programs originated primarily from the different qualifications students had when they entered the program. The computer science students took mathematics as their minor subject before entering the computer science program, whereas the computer engineering students studied electronics before entering. However, the content of the two programs was nearly identical.
During the first 10 years, we have made two major revisions of the curriculum. In the second revision, the problem with lack of space had developed to a point where it was impossible to reach a common agreement about the disciplines to which the students should be exposed. The core problem was that different groups of faculty wanted more time devoted to their discipline, and it was difficult to agree on the disciplines that should be reduced or removed.
After the second revision, we started developing a third program. The department became involved in establishing a cross-disciplinary multimedia center. The partners in the center included groups from architecture, product design, and the humanities. With these partners, we started describing a new program that included design, computer science, and communication. We named this new program informatics.
Two years ago we made a substantial revision of the three programs: computer science, computer engineering, and informatics. The philosophy was to transform two variants of the same program into a varied spectrum of three related programs. The content of the three programs was defined in the following way. Computer science is primarily concerned with software engineering. The focus is on design and implementation of software systems that fulfill certain requirements. The curriculum involves several subjects, but tools and techniques for developing software is the primary frame of reference. Computer engineering is primarily concerned with design and implementation of basic software on certain configurations of hardware. Besides programming, key subjects are embedded systems, networks, and operating systems. Informatics is primarily concerned with use of software systems. The focus is the way in which the individual user and the user organizations apply a system within certain kinds of activity. Informatics contains a major element of programming and software development, but traditional disciplines such as compiler construction, basic software, and operating systems have been excluded. Instead, the students in informatics have courses and projects in general design and communication.
The philosophy of the latest revision is therefore to share some educational elements and vary others. Instead of one program that builds on a multitude of small courses and projects in order to cover all relevant disciplines, each of the three programs has its own focus and a set of more substantial courses and projects that cover disciplines relevant to the focus.
All three programs include projects and courses on human-computer interaction. Computer science and computer engineering students take an introductory HCI course and do a related project in which they develop a software system including its user interface. In addition, they can specialize in HCI on the graduate level and in preparing their master's thesis. The informatics students take a course in usability engineering in their first semester and conduct a project in which they typically evaluate the usability of an existing system. They also complete the introduction to HCI and do the related development project with students from the two other programs. In later semesters, they take courses and do projects on participatory design, prototyping, and multimedia systems, and in semesters when they take courses on communication, their projects deal with use and development of information technology. During the last year of education, all students are incorporated into a research unit where they do two related projects, the last of which is their master's thesis.
The majority of students continue on to careers in development organizations. They typically become software development practitioners, requirements engineers, HCI designers, or usability engineers. Only a small fraction of the students continue with a research career.
The three programs are all based on the same structure. A year is divided into two semesters, and it takes five years or 10 semesters to complete a master's degree in any of the three programs. Each semester is roughly divided into a project part and a course part. The project part contains one large project that is solved by student teams. In the early semesters, the team size is six or seven, and in the last semesters it is one to three. The teams are formed at the beginning and work together until the end of the semester.
The course part includes general and project-related courses. A general course relates to the overall focus of the program, such as a course in fundamental programming or algorithmics and data structures. The project-related courses cover specific areas of the projects assignment in the semester during which the course is held. For example, there are project-related courses in analysis and design, HCI, and programming in the semester when the assignment is to develop a software application for a user organization.
Each project is defined by an overall theme. Most of these themes reflect key challenges for a practitioner. Examples are program development or design of software in collaboration with users. There are two exceptions. When students select the discipline in which they will specialize for their master's thesis, they work with a research issue, for example, to experiment with work practices for usability testing of mobile devices. The students read selected scientific literature, plan and conduct experiments, and document their results in a scientific paper. In the last two semesters before the students graduate, they are merged into a research unit with a group of other students and supervisors to work with a problem that relates both to practice and research. For example, they may study a development team of practitioners and then come up with research-based solutions to a specific problem that was experienced by the practitioners. Thus, the aim is usually to employ research results to solve practical problems and to feed experiences back into research-related activities. The research methodology usually involves case studies or action research.
The technologies that are taught in all three programs are influenced by overall trends in practice.
The technologies that are taught in all three programs are influenced by overall trends in practice. On the undergraduate level, development methods and development and programming tools are selected according to the requirement that the specific technology is conceptually clear and reflects a paradigm that has substantial influence in practice. When the majority of software organizations employed structured methods and tools, we did the same. As the paradigm in practice started changing toward object-orientation, so did we. But within these paradigms, we used tools and languages that were not necessarily in widespread use (e.g., Modula or Eiffel instead of C or C++). This also applies to HCI activities. For several years, we have used the desktop computer as a main reference, but in the last couple of years, we have complemented it with the new interaction problems that arise when we develop interfaces for small mobile computers and Web-based applications.
Aalborg University is situated geographically where there are many companies in the mobile devices industry, including several companies that produce software for mobile telephones. This focus on mobile devices has had an increasing influence on the content of student projects. Consequently, first-semester informatics students study the use of mobile devices, and last-semester students often design and implement mobile devices for a variety of purposes.
Our increased focus on mobile devices illustrates how the use of projects as a major building block each semester increases flexibility in an educational program. The content of a course tends to be quite static and difficult to change. The focus of the projects that are conducted in a semester is much easier to change in order to quickly accommodate shifting trends in technology or use, such as the current interest in mobile devices. With this structure, the course and project themes can be fixed for several years, and the content of projects can be changed regularly, for example, from administrative application systems to mobile devices.
Managers from the organizations that employ many of the students after graduation also emphasize the importance of projects. The students get experience with large development projects that are inspired by realistic problems from practice. In addition, they learn to work together with other people on solving a task. The managers often say that they can hire such a student, put him or her into a project team, and they start working productively within a very short time. From our experience we can encourage other educational institutions to consider project work, as it increases flexibility in contents and facilitates integration of current industry trends as a way to prepare students for entry into business.
The typical design project aims at developing and testing a software system that solves a specific problem. One such project involved designing a device to solve a communication problem on a large container ship. The project team collaborated with a major international container shipping company. The project focused on the communication between the captain on the bridge and officers managing the crews that are working at the bow and stern when a ship is arriving at or leaving a port. Today, that communication is based on very-high-frequency (VHF) radios. Therefore, it is disturbed by noise and sometimes one of the parties forgets to report back about a task in progress. With these problems as the point of departure, the students created an overall design vision of a system that makes the communication persistent and supports the management of ongoing tasks. They have programmed a prototype that implements this design concept on a mobile pocket PC and tested it for usability in our laboratory. The learning objective of this project was to explore the relevance of general guidelines for interaction styles for mobile devices.
A less typical example focused on the communication between a test subject and a test monitor during a usability test. The students made video recordings of a typical usability test based on a think-aloud protocol. These videos were then analyzed systematically using a theory on human-human communication that the students had learned in a project-related course that they followed in the same semester. They found a number of specific problems in which communication between the test monitor and test subject either broke down or was dysfunctional relative to the purpose of the usability test. According to the theory, they came up with guidelines for a test monitor to avoid communication breakdowns and carried out empirical experiments that employed the guidelines. The learning objective of this project was to try out communication theories in a practical case.
Department of Computer Science
Aalborg University, Denmark
Jan Stage teaches courses in human-computer interaction, usability engineering, prototyping, and object-oriented software development. His main areas of research are methodologies for usability testing and user interface design for computerized systems based on modern technologies. He has also conducted research in information systems and software engineering. He has been chairman or member of the curriculum committees that have defined the three programs described in this article.
Aalborg University, Department of Computer Science, graduate programs in computer science, computer engineering, and informatics
- Use of Information Technology
- Cultural Analysis for Design
- System Analysis and Design
- Design of Graphical User Interfaces
- Technology, Media, and Culture
Multimedia Technology Number of students per year
computer science: 40
computer engineering: 20
Student career paths & goals
History of the program
Computer science since 1982, computer engineering since 1984, informatics since 1998
- Preece, J., Rogers, Y., Sharp, H., Benyon, D., Holland, S. and Carey, T. Human-Computer Interaction. Addison-Wesley, Reading, MA, 1994.
- Rubin, J. Handbook of Usability Testing. John Wiley & Sons, New York, 1994.
- Shneiderman, B. Designing the User Interface. Third ed. Addison-Wesley, Reading, MA, 1998.
- Spool, J. M., Scanlon, T., Schroeder, W., Snyder, C. and DeAngelo, T. Web Site Usability. Morgan Kaufmann, San Francisco, 1999.
User interfaces are usually implemented in Java®, which is being used for the majority of projects.
©2002 ACM 1072-5220/02/0300 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2002 ACM, Inc.