Teaching by Knowledge Area

This page organizes information about my course taught at the University of Regina, beginning in 2001. The Association for Computing Machinery (ACM) is a leader in providing curricula recommendations for computing. In particular, the document Computer Science Curricula 2013 (pdf) : Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, released December 20, 2013, by the The Joint Task Force on Computing Curricula (Association for Computing Machinery and IEEE Computer Society).

The 2013 report organizes the Computer Science body of knowledge into 18 knowledge areas: AL - Algorithms and Complexity; AR - Architecture and Organization; CN - Computational Science; DS - Discrete Structures; GV - Graphics and Visualization; HCI - Human-Computer Interaction; IAS - Information Assurance and Security; IM - Information Management; IS - Intelligent Systems; NC - Networking and Communications; OS - Operating Systems; PBD - Platform-based Development; PD - Parallel and Distributed Computing; PL - Programming Languages; SDF - Software Development Fundamentals; SE - Software Engineering; SF - Systems Fundamentals; and SP - Social Issues and Professional Practice.

HCI (Human Computer Interaction)

Human-computer interaction (HCI) is concerned with designing interactions between human activities and the computational systems that support them, and with constructing interfaces to afford those interactions.

Interaction between users and computational artefacts occurs at an interface that includes both software and hardware. Thus interface design impacts the software life-cycle in that it should occur early; the design and implementation of core functionality can influence the user interface — for better or worse.

Because it deals with people as well as computational systems, as a knowledge area HCI demands the consideration of cultural, social, organizational, cognitive and perceptual issues. Consequently it draws on a variety of disciplinary traditions, including psychology, ergonomics, computer science, graphic and product design, anthropology and engineering.

SP (Social Issues and Professional Practice)

While technical issues are central to the computing curriculum, they do not constitute a complete educational program in the field. Students must also be exposed to the larger societal context of computing to develop an understanding of the relevant social, ethical, legal and professional issues. This need to incorporate the study of these non-technical issues into the ACM curriculum was formally recognized in 1991, as can be seen from the following excerpt [2]:

Undergraduates also need to understand the basic cultural, social, legal, and ethical issues inherent in the discipline of computing. They should understand where the discipline has been, where it is, and where it is heading. They should also understand their individual roles in this process, as well as appreciate the philosophical questions, technical problems, and aesthetic values that play an important part in the development of the discipline.

Students also need to develop the ability to ask serious questions about the social impact of computing and to evaluate proposed answers to those questions. Future practitioners must be able to anticipate the impact of introducing a given product into A given environment. Will that product enhance or degrade the quality of life? What will the impact be upon individuals, groups, and institutions?

Finally, students need to be aware of the basic legal rights of software and hardware vendors and users, and they also need to appreciate the ethical values that are the basis for those rights. Future practitioners must understand the responsibility that they will bear, and the possible consequences of failure. They must understand their own limitations as well as the limitations of their tools. All practitioners must make a longterm commitment to remaining current in their chosen specialties and in the discipline of computing as a whole.

As technological advances continue to significantly impact the way we live and work, the critical importance of social issues and professional practice continues to increase; new computer-based products and venues pose ever more challenging problems each year. It is our students who must enter the workforce and academia with intentional regard for the identification and resolution of these problems.