A DOMAIN CENTERED CURRICULUM: An Alternative Approach to Computing Education Iraj Hirmanpour
[email protected] Tlmmas B. Hilburn
[email protected] [email protected] Andrew Kornecki Department of Computer Science Embry-Riddle Aeronautical University Daytona BeaciL FL 32114 ABSTRACT This paper presents anew approach to computer science education by proposing a model curriculum that presents computer science fundamentals and software engineering concepts in the context of an application domain. This domahwentered model is discussed in terms of its philosophy and stmcture, and emphasizes curriculum featmesthat enhancethe ability of a graduate to be part of atearnthat developssoftware in the application domain, In particular, the cumiculum model proposes integration of software engineaing education with the application domain. The undergraduate computer science curriculum at Embry-Riddle Aeronautical University is used to illustrate the principal features of the model and to advance arguments about the model’s viability.
capabilities of the individual programmer and is now widely viewed as an engineering activity. This view is reinforced by the advent of “software factories” and the recent interest by government and industry in software process improvement. It is not uncommon for large companies to have a software division that employs hundreds ofsofhvare engineers that concentrate their work on multi-year projects in a spcciflc application area. A software engineer might spend a sigtilcant part of hislier career in a single domain area such as aviatiok banking and tlnance, chemical processing, manufacturing, or health and medicine. Educators in the field of computing must ask themselves if they are addressing the needs of those graduates that seek a career as a software engineer in a specific domain of application.
CURRENT STATE OF COMPUTER CURRICULA
INTRODUCTION
SCIENCE
In recent yews there has been a great amount of interest and activity in defiig and implementing new computer science curricula that address the needs and desires of a variety of constituencies: students, industry, government graduate and research programs, faculty, and society in general. l%em has been no effort to try to address all constituewies with a single freed curriculm, but rather to establish acurricdum desQn fiarnework that promotes the development of qtilty curricula that have objectives,
A principal issue in the design of computer science curricula is the designer’s view of computer science as a discipline [6]. Is it a science or engineering discipline? ‘fbe design of most curricula is based on some combined view of computer science as having both science and engineering components. Curriculum 1991 argues that every computing program should emphasize three education psradignx theory, abstraction and design [1]. In [2] curriculum development is presented in terms of a
designs and implementations
combination of choices from three different continuum breadth versus depth coverage, passive versus active learning styles and “practice” versus “theory” abstraction levels. There is typically a balance between these three, where the emphasis depends upon the curriculum goals and objectives. For example, a curriculum intended to prepare students for graduate school would emphasize breadth of coverage, passive learning and “theory”, while a professionally oriented curricuhun would concentrate on depth of coverage in certain key areas, active learning styles and “practice”.
that serve different sets of
stakeholders [1]. Various groups and individuals have proposed variations and extensions of this framework [ 2, 3, 4, 5]. In this paper we offer suggestions and recommendations concerning a computer science curriculum that is centered around a specitlc application domain and which is infused with a strong emphasis on software engineering. In the last twenty years the developmentof application softwarehas moved beyond the Permission to copy without fee all or part of this material is grantad provided that the copies are not made or distributed for direct commercial advanta$e, the ACM copyright notice and the title ol the publication and Its date appear, and notice is given that eopyi is by permission of the Association of Computing Machinery. “$ o copy otherwise, or to republish, requires a fee andlors ecific permission. SIGCSE!”953/95 Nashville, TN USA @ 1995 ACM O-89791-693+19!YOO03....50.5O
126
In discussions with employem graduates there seems to be
of computer science an ahnost universal
dissatisfaction with the preparation and attitudes of recent graduates. Of course, this is surely part of the overall unhappiness with the current state of higher education.
However, for graduates of computing disciplines the complaints are more specitlc a lack of relevant and practicaI competencies, the inability to work as part of a
and computer organization. o
teanL and little perspedve about the humu economic and managerial issues involved in software development. In
Consista of two courses on the fundamentals af programming and software design (CS1 and CS2 that take a top-down toolbox approach to teaching software development [7] and use aviation examples to motivate and illustrate concepts. These courses start students thinking “programming in the large” and about underscore the concepts of modularity, abstraction and information hiding.
[3] Peter Denning discusses the problems associated with current e@nedng
education and he asserts the following
“...a curriculum capable of preparing students for the shifting world must incorporate new elements emphasizing de.s@, demonstrated proficiency, effective interaction with others, and a greater senaitivelytoward the historical and cultural spaces in which we all live and work. The time has come to experimd with new curricula that will lead this way.” In this paper we suggest a curriculum
In additiw
that will address
●
Within the framework
CURRICULUM
(DCC)
proposed in [2], a domain centered
●
curriculum places emphasii on depth of coverage for a few key computing areas, the learning style is a combination of
Math and Sdeace, Domain Knowledge, Compudng Concep@ Application Based
Computing,
and Senior Design.
Math and Science o
active and passive learning, and the curriculum places strong emphasis on practice. Figure 1, depicts the architecture of the DCC curriculum. It consists of seven compon~ Computing Fundamentals, Oeneral Echvxt@ Advanced
General Education The general education component of the curriculum is usually university driven, not departmen@ and therefore is not discussed here.
“domain centered”.
CENTERED
this component involves two courses
on the fmdamentals of digital logic and computer organization (Computer Organization I and II) that includes topics in assembly language programming and microprocessor interfacing.
crucial parts of such concerns a curriculum based on computer science fundamentals, coupled with practical cap%mcies and team activities that is centered around a spe&c &main of application. We call such a curriculum
A DOMAIN
ACS Implementation
DCC Model
Should include mathematics and science components to support the study of domain knowledge as well as supporting the computing portion of the curricuhnn. For example, chemisby would be a choice for processing, while anatomy/physiology the science chosen for health
This DCC model is currently
implemented
o
equations. A sequence of physics courses, with laboratory, provides the necessary background in
in the framework of the
science for understanding aviation systems.
DCC model curriculum. ●
●
Computing Fundamentals o Includes w-i?,
ACS Implementation
This math component consists of a discrete mathematics course, two calculus courses, and upper division courses in probability and statistics, linear systems, and differential
~ti@oII ofe-ach component of the model mmments on the ACS implementation are the key computing F@re 1 also mmmarim
included. elements of the ACS cunkulum
and medicine
domain.
at Embry-
Riddle Aeronautical University, an institution of higher learning focused on aviatiw via a curriculum called Aviation @n@er science (ACS). The ACS CUITiCUhlIn is based on aviatinn as the application domain and is rich in ita emphash on software engineering. In the following =-
chemical might be
o
Dcc MOdel fundammtals data Stmctm=
Domain Knowledge
of
IXX Model
Consists of a body of knowledge deemed useful to a software engineer developing software in a
computer
and algorithms,
127
Frogarmmlng (0s
1
PrOsrmmrnIng
(cS
Q
Computing
D--
AJdy818
~uro~
Mod.-
utd
simld8tlDn
Cemputw
Organization
I
o~8ni2Du0n
op*r8ung
Computing
D8taba8e
OOmpbdw
Sytian.
Oraphie-
Application
Figure 1: Architecture
R@abllmc
AJtine18i
Based
Syctem*
Computing
of DCC Model Curriculum
Includes subjects in advanced computing topics such as co&puter architecture% programming languages, computer theory, numerical analysis, and operating systems. ACS Implementation
ACS hllph3mC!Y4tati011 This component data structures
Mate&d abotttthe aviation application domain is integrated into the curriculum in two ways fti by requiring a sequence of Airway S&me Principles of Ft@Q Gouraes a as M#mdogy, d Air’IkatEc control, and second by assig@ problems and projects that are drawn from the discipline. Some example problems and projects ate listed in Figure 2.
includes courses in advanced and analysis of algorithms,
organization of programming languages, operating systems, and computer architecture. The content and approach in these courses is similar to that of more traditional computer science curricula. ●
Application o
Advanced Computing o
d
Int*Ulg*nec
o
●
II
Concepts
chosen domain. For example, a software engineer workin on medical imaging software WOW beneilt fmm knowledge of the humanbody, undentanding the rules and regtdationsgoverning medicine and heala and familiarity with the language of medicine. o
organization
Fundamental=
d
Adwmced
Cemput.r
II
n)
Dcc Model
Based Computing
DCC Model
‘I’M grouping of applied computing subjects is selected to increase understanding of the
128
fimdamental computing knowledge. Subjects such as distributing and concurrent computing, and database systems would be natural choices for banking and*, while Image processing, numerid analysis, and AI might be selectedfor the medical imaging software engineer. These coursesshouldinclude team projects that involve solution of problems in the selected application domain.
Database Systenw
o
Modeihg
team and produce software engineering artifacts related to a project in the application domain.
●
small airline maintenance operation flight information system for a flight training operation airline ticket salesdatabase.
●
●
ACS Implementation
~ ~t consis@of courses in Computer Graphi~ Database Systems, ArWcial Intelligence, Modeting and Simtdatio& and Red-Time $5tems. Group projects of two to five studentaare assigned in each course and student teamsdevelop software based both on the course material and the application domain. The topics cover graphic rendering, relational data bases, knowledge acquisition, expert systems, discrete event simulatio% object-oriented methodology, concurrency, tasking, and interprocess communication. ‘he projects (see FQure 2 for examples) also emphasize good software engineering practices in the weas of project management requirements collection and specification, architectural and detailed design, and quality assurance.
c
●
●
Real-Time ●
●
XC
Model ●
llds is a apstcme cmpommt that brings together stubt Imowledge and skills gained throughout the curricdum into a single life-cycle project that would typically be set in the senior year. ‘fhe problem to be solved should be in the domain of interesq it should involve mat clienw, and it should be sufllckmtly complex to require the work of a team of students with tilcient knowledge and experience in the domain and in the principles of software engineering. o
●
Arl@cial ●
●
Systems: an interface of a Boeing 707 cockph
procedure trainer with a Silicon Graphics basedflight simulator and instrument displays processing of weather data from a Kavouras weather station serial feed to present a weather report at the requested location software for a mock-up aircraft cockph re-eordigurable display the monitoring and control of a taxiway operation using the feed from a Global Positioning Satellite system.
senior Design o
and Simukztion:
a passengerterminal fast curb-in checkouts simulation to establish staffiig requirements an analysis of a terminal area operation to identify the need for airport runway expansion an air trafilc control messagesprocessing simulation in an en-route center to establish the sector capacity an airport gates simulation to establish staffing and equipment requirements for luggage loadmghnloadmg operations.
●
ZnteUigence: an expert system to support air traftlc
control terminal operations an expentsystem for diagnostics of aircraft engines Figure 2 ACS Application
ACS Imptemenm “on
The Senior Design mnponent of the ACS curriculum consists of a two-course sequence a sdware engineering course and a senior project cuxse. ‘l’he sequenceprovides a deeper study of softwareengineering concepts and concentration on a full Me-cycle team project. ‘l’he senior project course is a capstone course that allows studmts to play roles on a software development
Projects
ASSESSMENT An assessmentof the implementation of the model in the ACS program is presented ffom three different perspectives students, employers, and the departmental.
129
projects and applications programming has convinced us that a domain