Class Testing the Breadth-First Curriculum: Summary Results for ...

4 downloads 6615 Views 210KB Size Report
Computer Science and Engineering Dept Computer Science Department ... mathematics and programming methodology, in particular to provide motivation for ...
Class Testing the Breadth-First Curriculum: Summary Results for Courses I-IV* Panelists: Keith Barker Computer Science and Engineering University of Connecticut Storrs, CT 06269-2566 keith@csel,cse.uconn,edu

Charles F. Kelemen Computer Science Program Swarthmore College Swarthrnore, PA 19081 [email protected]. edu

Dept

Robert D. Cupper Computer Science Department Allegheny College Meadville, PA 16335 cupptwl?sparcl .alleg.edu

Andrew P. Bernat Computer Science Department University of Texas at El Paso El paso, TX 79968+518 abernat @cs.ep.utexas.edu Allen B. Thcker (moderator) Computer Science Department Bowdoin College Brunswick, ME 04011 [email protected]. edu

Abstract: Several different undergraduate programs have been designing and class-testing alternative curricula for their f~st four courses using the 7-course “breadth-first” approach described in the ACM/IEEE-CS report Computing Curricula 1991 [1]. These courses have several major goals: 1. 2. 3. 4.

Broad subject matter coverage, beginning with the first course; Integration of mathematics, science, and engineering points of view with the subject matter; Inclusion of social issues (such as the risks and liabilities that surround software failures); and Weekly coordinated laboratory activities.

The goals of this approach, generally speaking, are to provide an introduction to the discipline of computing that more directly reflects its nature and breadth than does the traditional approach, especially in its fwst four courses. A complete class–tested.

set of teaching materials for the first four courses in the breadth-f~st These four courses are titled:

Course Course Course Course

curriculum

has been developed

and

I: Logic, Problem Solving, Programs, and Computers II: Abstraction, Data Structures, and Large Soflware Systems III: Levels of Architecture, Lunguages, and Machines A? Algorithms, Concurrency, and the Limits of Computation

This panel session will focus on these four courses in the breadth-first curriculum, which have been class-tested in a variety of different institutional settings (including Bowdoin, UConn, UTEP, Allegheny, and Swarthrnore) during the 1991-92, 1992–93, and 1993–94 academic years. The panelists will present the results of class–testing these courses and address the topics summarized in the paragraphs below. There will be time for questions and discussion between presentations. 1. Course L Origination,

class-testing, and revision (Bernat).

Experience with Course I in the breadtl-first curriculum has led to several modifications: stronger integration of the mathematics and programming methodology, in particular to provide motivation for the introduction and development of logic; stronger integration of specifications as a design tool, in particular to motivate the need for precision in specifications; stronger emphasis on abstraction, in particular as adesigntool for handling detail. At the same time we retain the strong computer science emphasis, the understanding of societal issues, and the suitability for use as an introduction of computer science for non–majors. 2. Courses Z1 Object-orientation,

data structures, and operating systems (Cupper).

in the title of the tex~ ZWzdamenrals of Computing 11; Abstraction, Data Structures, and Large So@are Systems [2]. Object~rientation provides a natural and efllcient vehicle for accomplishment of these goals. The course begins with an overview of the principles of software design. Object~rientation is presented as an appropriate way to meet these principles of software design. The goals of course II are reflected

405

After an introduction to object-oriented programming in either Pascal or C++, students learn to understand and use data structures abstracting from their implementation details. Lists, Stacks, Queues, Trees, and Graphs are studied in this way. Underlying themes throughout are complexity analysis and large software systems. The former is introduced in the context of searching and sorting and applied in the study of implementation possibilities for the previously studied data structure classes. The latter is explicated by study of the functions and structure of an operating system and a fairly complex software system which simulates the action of a virtual memory machine running a multiprogramming operating system. Text materials have been developed and the course taught in two versions — a Pascal version and a C++ version — both following a Pascal based breadt&fwst initial course. 3. Cowse 111 The role of simulation

and laboratory

experiences (Barker).

Breadth has beenintroducedinto the Sophomore Digital Logic Design Laboratory attheUniversity of Connecticut by presenting all of the design assignments in the context of one of the nine areas as defined by Curricula 91. Students complete classwork in a learning, closed lab, environment and are given open lab homework assignments to design, implement, test, and troubleshoot using chips and protoboamls or the LogicWorks simulation package. A laboratory component has been added to the Junior Year Computer Organization course that enables students, using thedigitallogic simulator, to design and build a simple architecture on which to run microcode. llishasledto a much better understanding of timing and the overall architecture system. 4.

Course IV Design and class-testing results (Tucker).

A series of 12 weekly laboratory expiences were designed and class-tested at Bowdoin in Fall 1993. The course has three major components-graphs and graph algorithms, dealing with complexity through approximation algorithms and parallel models, and unsolvability. Traditionally, the algorithms course has been taught in a “nonlaboratory” style. This course uses thelaboratoryto enable students to visualize algorithms and simulate alternative computational models. The details of this course’s design, as well as the results of initial class-testing, will be summarized. 5. Language independence (migrating

to C++) in courses I and II (Kelemen).

IntheFall of ’93, Course II was taught to students at Swarthmore College who had taken either 1) a somewhatbreadth– first Pascal based Course I or 2) a Course I using the first 3+ chapters of Abelson and Sussman’s, “Structure and Interpretation of Computer Programs”, a Scheme based course, The course was taught using a draft of the C++ version of the Course II materials. It was taught on a Unix system (Sparcstations) using gnu C++ in an X–windows environment. Both of the previous courses had been taught on Macintosh’s. We will discuss our experiences in moving from another language to C++ in a second course, the support provided by C++ for Course 11material, and conjecture about the use of C++ in a first course. 6. Future plans: initial

design for Courses ~ VZ, and VZZin the breadth-first

curriculum

(’l%cker).

Courses ~ VZ, and VIZ in the report Computing Curricula 1991 [1] were designed to complement Courses Z-w all together providing a complete 7-course coverage of the common requirements that are spelled out in that report. That is, if an institution’s major program were to require all 7 of these courses, that major would completely satisfy the common subject matter and laboratory requirements described by the collected knowledge units of the report. These three courses are titled: Course Y L.unguage Formalisms and Software Methodology Course VI: Intermediate Computer Architecture Course VII: Data Representation, Files, and Database Systems We shall introduce our ideas for designing and class-testing these three courses, based on our experience developing courses I-IV.

[1] ACNVIEEE-CS Joint Curriculum Task Force, Computing Curricula 1991, ACMPressAEEE-CS Press, 154pages (1991). Report summarized in Communications of the ACM (June 1991) and IEEE Computer (November 1991). [2] TuGker, A,, J, Bradley, R, Cupper, and R, Epstein, Fundamentals of Computing II: Abstraction, Data Structures, and Lurge Software Systems (text and laboratory manual), McGraw-Hill, New York (1993), 559 pages. *Work supported in part by grants #USE–9150562, National Science Foundation.

CDA-91

406

15079, CDA-91213

14, andCDA–9121315

from the