In the modern world practical computer science integrates scientific subjects and technological applications. The dynamics of the field of computing along with the strengthening of ties between the various sciences and technology requires suitable manpower to be trained. This training should be carried out within the framework of the various technological systems integrated in the computer, together with a broad specialization in the computer sciences. The Holon Institute of Technology (HIT) meets this need and offers a suitable academic track in computer science. HIT is an institution of higher learning that specializes in the scientific, professional, social and cultural aspects of advanced technology. The institute is grants degrees in various domains, one of which is a BSc in Computer Science (CS). Since the development of modern high-tech industries requires the training of highly skilled personnel, some of HIT's primary educational goals are [http://www.hit.ac.il/about/profile.asp; retrieved November 1 2007]:
* Aspiring to excellence in instruction and research at the cutting edge of technological development by identifying new spheres of knowledge, emerging interdisciplinary subjects and innovative instructional technologies.
* Aspiring to the realization of students' intellectual and professional potential and training personnel for careers in a constantly and rapidly changing technological world; providing opportunities to maximize students' self-fulfillment.
* Fostering close ties with science-based industries for cooperation in research and, applied technology to promote scientific-technological education.
In this paper we present our experience in teaching one specific course of the undergraduate computer science program in accordance to the above-mentioned general goals. First, we describe the general framework of the Computer Science program and specifically present the outline of the Operating Systems (OS) course. Next we present the instructional design of the OS course and its underlying pedagogical approach. Finally, we present the findings of a preliminary assessment of the course's implementation.
The Undergraduate Computer Science Program in HIT
The curriculum is designed to provide a B.Sc. in computer science and provides the basic theoretical and applied knowledge necessary for graduates to be able to work in a variety of modern high-tech environments. Specifically, we believe that graduates should gain an integrative holistic knowledge of the discipline and possess: (a) a basic theoretical background in science (i.e., mathematics and physics); (b) a solid theoretical background in CS; and (c) a deep knowledge in some advanced specialization track or a breadth-oriented knowledge of variety of advanced topics (as illustrated in Table 1). The curriculum supports a method integrating multidisciplinary study and technological skills with technology, hardware and software.
The student population consists of two groups: (a) students who are capable of devoting most of their time for studying, who attend a day tuition track; and (b) students who combine study and work and attend a special flexible evening track. Most of these students work already in high-tech industry. As a result, the student population is diverse with respect to previous knowledge in computing as well as in practical experience and acquaintance with the "real world" industrial situations.
The Structure of the Program
The 3 year, 147 hour program offers a variety of theoretical and application-based courses related to fundamentals as well as to advanced computing topics. The main topics studied are algorithmics (problem solving, algorithm planning and analysis), an understanding of the structure and working of the computer, programming languages and the uses of computer science in various domains. The structure of the program is illustrated in Table 1. The student may choose a combination of elective courses which are necessary to acquire deep knowledge in some advanced specialization track, or decide to take a variety of elective courses to gain a broad knowledge of advanced topics (total: 7 elective courses, 28 hours).
Objectives and Pedagogic Approach
The program has two main objectives which follow the guidelines of CC 2001 (ACM/IEEE Joint Task Force on Computing Curricula, 2001): (1) to enable students to gain an integrative knowledge of computer science, and (2) to prepare students to achieve a full-fledged membership in the computing community of practice. The program is designed to address its goals in the following dimensions:
(1) Perception: Graduates must develop a system-level perspective, understanding the interplay between theory and practice, and appreciate the value of good engineering design.
(2) Performance: Graduates must develop their cognitive capabilities and practical skills, and be capable of combining scientific thinking with problem-solving skills. They should learn to integrate theory and practice and recognize the importance of abstraction.
(3) Professional practice: Graduates should be exposed to behavioral norms and industrial standards, and possess the aptitude for life-long self-study of new technologies.
The instructional design is directed towards achieving the above goals as follows:
Constructing integrative knowledge: Although the body of computing knowledge is actually an integrated whole, the students might not recognize the linkages between concepts learned within each course, and even more so the concepts learned in separate courses. Hence, the instructional design should support the construction of integrative knowledge by linking concepts. The HIT CS department tries to address these goals by designing a variety of suitable learning activities. The activities develop gradually, from tasks at a "paper and pencil" level, exercises in the laboratory, and developing an application (a mini-project or a comprehensive project) as a final assignment for the course.
Preparing for professional practice: According to the socio-cultural approach (Lave & Wenger, 1991), …