Considerations in the Design of Computing Curricula

Considerations in the Design of Computing Curricula

Considerations in the Design of Computing Curricula

Deepak Kumar

Computer Science

Bryn Mawr College

Bryn Mawr, PA 19010

Introduction

My remarks in this white paper are based on the view that computer science is one of the liberal arts. From this perspective, computer science is a fundamental discipline of human inquiry and its curricula should reflect that. This view transcends market and global trends and so I am less inclined to provide arguments for or against the issues concerning the ‘profession’ of computing. Taking this perspective on computing is inherently inclusive of diverse perspectives and addresses several issues raised in “The Need for Computing Curriculum Change” section of the guidelines for this workshop.

My remarks are also based on my experiences in creating a new computer science program at Bryn Mawr College (a liberal arts college for women) where the concerns for gender issues in the discipline have to be dealt with directly (more on this later). The design of any computing curricula is ultimately an outcome of resolving constraints imposed by several factors: body of knowledge, ACM curricular guidelines, accreditation, staffing levels, classroom and lab facilities, institutional goals and context (urban, non-urban, etc.), number of courses required for a major (12 in the case of most liberal arts colleges), faculty interests and expertise, social context, etc. A good curriculum, in my opinion, evolves from a deliberative process that involves all such factors at a given institution[1]. Such a process inherently involves taking risks, challenging existing norms, making trade-offs, and is an essential part of maintaining a fresh and exciting curriculum. Below, I present, in the form of design patterns, several observations and decisions that have resulted from deliberations in the design of the curriculum at Bryn Mawr College. Some are positive (do this) and some negative (don’t do this). It is important to also make explicit the negative lessons learned from the past.

Curriculum Design Patterns

Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.
-: Christopher Alexander

In the space allotted, I can only list the design patterns in a short, somewhat cryptic manner. I have presented these in detail elsewhere[2].

  • Computing across the curriculum, not! While there have been documented successes of initiatives like writing across the curriculum and mathematics across the curriculum for non-English majors and non-mathematics majors, there is little evidence that these lead to more engagement in English and mathematics majors.
  • Participation in freshman seminars: Computer science departments should participate in college wide freshman seminars (or writing seminars). This is a good way to represent the discipline to the non-cs student population.
  • No terminal CS0/CS1 courses. Create multiple entry points: Terminal courses tend to be terminal for women. The pipeline into computer science should allow for multiple entry points into the curriculum as opposed to a standardized CS1 course. Example other courses: Visualizing Information, Computational Models, Emergent Phenomena, etc.
  • Lots of upper-level interdisciplinary electives: This opens access to students in other disciplines. Example courses include: Cognitive Science, Artificial Intelligence, Digital Multimedia, Computer-related Risks, Biologically Inspired Computational Models of Learning, Search Engines & Information Retrieval, Game Design & Programming, Computational Linguistics, Cryptography & Cryptanalysis, etc.
  • Humanizing core computer science courses: Include supplementary texts and readings that provide a social, cultural, and ethical context for the topic.
  • Design of everyday lecture artifacts: Stop indulging students in exercises and examples from within the discipline (e.g. symbol tables in Data Structures)
  • Breaking rigid boundaries: Make connections with concepts across computing.
  • Less is more: 12 courses do a major make. Make the most of it, not by stuffing more content, but by creating more room in the curriculum.
  • Flexibility in designing a major: We prescribe only 5 (or 6) out of 12 courses to be required. The rest are electives based on a student’s own preferences.
  • Minors in computing for all: We offer a Minor in Computer Science and also a Minor in Computational Methods. Both require six courses. The latter has two computational courses in the student’s own major. That is, encourage other departments to offer advanced computational courses in their own disciplines.
  • Majors in emerging disciplines: Encourage students to design independent majors in emerging disciplines.
  • Diversify faculty course load distribution: Rather than minimizing the ‘number of preps’ encourage faculty to teach a mix of courses at all levels and indulge in their own personal interests and expertise in computing.

Gender Issues: Is there an indictment here?

One of the key findings of Margolis & Fisher in their landmark study on gender issues in computer science at Carnegie Mellon University was that female orientation towards (and concerns about) computing are different from the design of most computer science curricula[3]. They claim that universities have historically developed computer science courses with a male bias. Is there an indictment here? I will leave that for this group to ponder. The design patterns I have presented above have been motivated in part by similar concerns regarding gender issues. In the course of implementing these at Bryn Mawr College we have also discovered that the resulting curriculum and courses are equally engaging for women and men[4].

Recommendations for programmatic initiatives

We were asked to suggest recommendations for long-term, high-impact, and potentially high-risk strategies to catalyze the transformation of computing education. In the design patterns above are embedded several directives that can be construed as programmatic initiatives. Perhaps the most important initiative not mentioned above but can have a profound effect on computing education is the issue of support for training faculty and future educators with values that are grounded in the perspective of computer science as a fundamental discipline of human inquiry rather than one defined by prevailing market forces of the times.

Summary

I hope that these remarks will lead to challenging the current norms and thinking about computing curricula. I have presented them as a set of observations and not as basis for creating future prescriptions for all curricula in the country. Yet, many of these may lead to future programmatic initiatives. I obviously carry a certain baggage, when it comes to designing computing curricula, which can be perceived in direct opposition to several other proponents and ideologies. Here, I have tried to focus only on the design considerations I feel are relevant to the computing curricula.

1

[1] Lillian (Boots) Cassel, Gordon Davies, and Deepak Kumar: Computing: The Shape of and Evolving Discipline. In Informatics Curricula and Teaching Methods, Cassel and Reis (editors), Kluwer Academic Press, 2003.

[2] Douglas Blank and Deepak Kumar: Patterns of Curriculum Design. In Informatics Curricula and Teaching Methods, Cassel and Reis (editors), Kluwer Academic Press, 2003.

[3] Jane Margolis and Allan Fisher: Unlocking the Clubhouse: Women in Computing. MIT Press, 2003.

[4] Lisa Meeden, Tia Newhall, Douglas Blank, Deepak Kumar: Using departmental surveys to assess computing culture: Recognizing and addressing gender differences. In Proceedings of the ITiCSE-2003 Conference, SIGCSE Bulletin, Volume 35, Number 3, ACM Press, 2003.