Bachelor of Applied Science (Mathematics and Computing

Download Report

Transcript Bachelor of Applied Science (Mathematics and Computing

Software Engineering in
Computing Curriculum 2001
Professor Doug Grant
Dean of Information Technology
Agenda
• Computing Curricula 2001
– Summary
– Computer Science Volume
• Software Engineering in CC 2001
– Design of SE Volume
– SWEBOK
– Differences from CS
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
2
CC 2001 : Context
•
•
•
•
10 years since Computing Curricula 1991
Massive changes in the discipline since then
Scope of ‘computing’ has broadened
Need to take stock, and review basic
curriculum recommendations
• Joint initiative of ACM and IEEE-CS
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
3
CC 2001 : Principles (1 of 2)
1. Computing is a broad field that extends well beyond the boundaries of
computer science.
2. Computer science draws its foundations from a wide variety of
disciplines.
3. The rapid evolution of computer science requires an ongoing review of
the corresponding curriculum
4. Development of a computer science curriculum must be sensitive to
changes in technology, new developments in pedagogy, and the
importance of lifelong learning.
5. CC2001 must go beyond knowledge units to offer significant guidance
in terms of individual course design.
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
4
CC 2001 : Principles (2 of 2)
6. CC2001 should seek to identify the fundamental skills and knowledge
that all computing students must possess.
7. The required body of knowledge must be made as small as possible.
8. CC2001 must strive to be international in scope.
9. The development of CC2001 must be broadly based.
10. CC2001 must include professional practice as an integral component
of the undergraduate curriculum.
11. CC2001 must include discussions of strategies and tactics for
implementation along with high-level recommendations.
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
5
CC 2001 Structure
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
6
CS Volume Development Process
• 3-stage process
– Strawman (March 2000)
– Ironman (Feb 2001)
– Steelman (Draft Aug 2001)
• Exposure to the ‘community’ for feedback
• Extensive interaction through email lists etc
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
7
CS Volume : Contents
Preface
Chapter 1. Introduction
Chapter 2. Lessons from Past Reports
Chapter 3. Changes in the Computer Science Discipline
Chapter 4. Principles
Chapter 5. Overview of the CS Body of Knowledge
Chapter 6. Overview of the Curricular Models
Chapter 7. Introductory Courses
Chapter 8. Intermediate Courses
Chapter 9. Completing the Curriculum
Chapter 10. Professional Practice
Chapter 11. Characteristics of CS Graduates
Chapter 12. Computing across the Curriculum
Chapter 13. Strategy and Tactics
Acknowledgments
Bibliography
Appendix A. The CS Body of Knowledge
Appendix B. CS Course Descriptions
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
8
Characteristics of Graduates
• SURELY THE STARTING POINT
General characteristics
Abilities and skills
Coping with change
Standards for achievement
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
9
Characteristics of CS Graduates
(from the CS Volume)
• System-level perspective
• Appreciation of the interplay between
theory and practice
• Familiarity with common themes
• Significant project experience
• Adaptability
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
10
Cognitive abilities and skills relating
to computer science
•
•
•
•
•
•
Knowledge and understanding
Modeling
Requirements
Critical evaluation and testing
Methods and tools
Professional responsibility
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
11
Practical abilities and skills relating
to computer science
•
•
•
•
•
•
•
Design and implementation
Evaluation
Information management
Human-computer interaction
Risk assessment
Tools
Operation
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
12
Additional transferable skills
•
•
•
•
•
Communication
Teamwork
Numeracy
Self management
Professional development
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
13
Comments from SE Perspective
• Nothing to challenge here!
• Quite different, for example, from Parnas’
conception of CS as being research-oriented
(as we will see)
• But … what might we add?
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
14
CS Knowledge Areas
1. Discrete Structures (DS)
8. Human-Computer Interaction (HC)
2. Programming Fundamentals (PF)
9. Graphics and Visual Computing (GV)
3. Algorithms and Complexity (AL)
10. Intelligent Systems (IS)
4. Programming Languages (PL)
11. Information Management (IM)
5. Architecture and Organization (AR)
12. Software Engineering (SE)
6. Operating Systems (OS)
13. Social and Professional Issues (SP)
7. Net-Centric Computing (NC)
14. Computational Science (CN)
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
15
Core Requirements
• The core refers to those units required of all
•
•
•
•
students in all computer science degree programs
The core is not a complete curriculum
The core must be supplemented by additional
coursework
Core units are not necessarily those taken in a set
of introductory courses early in the undergraduate
curriculum.
Measure of hours is the US ‘1 lecture hour’
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
16
Core Units (1 of 4)
DS. Discrete Structures (43 core hours)
DS1. Functions, relations, and sets (6)
DS2. Basic logic (10)
DS3. Proof techniques (12)
DS4. Basics of counting (5)
DS5. Graphs and trees (4)
DS6. Discrete probability (6)
PF. Programming Fundamentals (38 core hours)
PF1. Fundamental programming constructs (9)
PF2. Algorithms and problem-solving (6)
PF3. Fundamental data structures (14)
PF4. Recursion (5)
PF5. Event-driven programming (4)
AL. Algorithms and Complexity (31 core hours)
AL1. Basic algorithmic analysis (4)
AL2. Algorithmic strategies (6)
AL3. Fundamental computing algorithms (12)
AL4. Distributed algorithms (3)
AL5. Basic computability (6)
PL. Programming Languages (21 core hours)
PL1. Overview of programming languages (2)
PL2. Virtual machines (1)
PL3. Introduction to language translation (2)
PL4. Declarations and types (3)
PL5. Abstraction Mechanisms (3)
PL6. Object-oriented Programming (10)
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
17
Core Units (2 of 4)
AR. Architecture and Organization (36 core hours) NC. Net-Centric Computing (15 core hours)
AR1. Digital logic and digital systems (6)
NC1. Introduction to net-centric computing (2)
AR2. Machine level representation of data (3)
NC2. Communication and networking (7)
AR3. Assembly level machine organization (9)
NC3. Network security (3)
AR4. Memory system organization and architecture (5)
NC4. The web as example of client-server cptg( 3)
AR5. Interfacing and communication (3)
HC. Human-Computer Interaction (8 core hrs)
AR6. Functional organization (7)
HC1. Foundations of HCI (6)
AR7. Multiprocessing and alternative architectures (3)
HC2. Building a simple graphical user interface (2)
OS. Operating Systems (18 core hours)
OS1. Overview of operating systems (2)
OS2. Operating system principles (2)
OS3. Concurrency (6)
OS4. Scheduling and dispatch (3)
OS5. Memory management (5)
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
18
Core Units (3 of 4)
GV. Graphics and Visual Computing (3 core hours) IM. Information Management (10 core hours)
GV1. Fundamental techniques in graphics (2)
IM1. Information models and systems (3)
GV2. Graphic systems (1)
IM2. Database systems (3)
IM3. Data modeling (4)
IS. Intelligent Systems (10 core hours)
IS1. Fundamental issues in intelligent systems (1)
IS2. Search and constraint satisfaction (5)
IS3. Knowledge representation and reasoning (4)
SE. Software Engineering (31 core hours)
SE1. Software design (8)
SE2. Using APIs (5)
SE3. Software tools and environments (3)
SE4. Software processes (2)
SE5. Software requirements and specifications (4)
SE6. Software validation (3)
SE7. Software evolution (3)
SE8. Software project management (3)
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
19
Core Units (4 of 4)
SP. Social and Professional Issues (16 core hours)
SP1. History of computing (1)
SP2. Social context of computing (3)
SP3. Methods and tools of analysis (2)
SP4. Professional and ethical responsibilities (3)
SP5. Risks and liabilities of computer-based systems (2)
SP6. Intellectual property (3)
SP7. Privacy and civil liberties (2)
CN. Computational Science and Numerical Methods
(no core hours)
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
20
Pedagogy Focus Groups (1 of 2)
• Knowledge Areas focus on a particular
narrow scope
• There is a need for attention to be given to
overall program structure, and to issue
which transcend the KA boundaries
• Hence the CC 2001 task force established 6
‘Pedagogy Focus Groups’ to consider
curricular issues across computer science as
a whole
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
21
Pedagogy Focus Groups (2 of 2)
PFG1. Introductory topics and courses
PFG2. Supporting topics and courses
PFG3. The computing core
PFG4. Professional practices
PFG5. Advanced study and undergraduate research
PFG6. Computing across the curriculum
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
22
CS : Course levels and
implementation strategies
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
23
Sample Curricula
CS Volume contains
• Plausible courses (‘subjects’ / ‘modules’)
• Plausible degree program designs, based on
these, which meet the core requirements
• Java applet that allows a curriculum designer to
check content against the CS core
(http://www.acm.org/sigcse/cc2001/steelman/applet/cc2001.html)
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
24
CC 2001 : The Software Engineering
Volume
• SE Volume to be developed as part of the
SWEEP Project
• Co-Chairs
– Rich LeBlanc, ACM
– Susan Mengel, IEEE-CS
• Knowledge Area Focus Groups
• Pedagogy Focus Groups
• YOU can volunteer to participate!
– Email Susan Mengel at [email protected]
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
25
Software Engineering
• My suggested approach is to look at DIFFERENCES
from CS
• In particular, how should an SE curriculum guide
BUILD upon one for CS?
• What graduate attributes should one look for in SE
that are not included in the attributes for CS?
• What curriculum elements should one include in an
SE degree that are not included in the core
requirements for CS?
• Are there core CS Knowledge Areas that are not
needed for SE?
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
26
Definition of Engineering
"Engineering is the profession in which a
knowledge of the mathematical and natural
sciences, gained by study, experience, and
practice, is applied with judgment to
develop ways to utilize, economically, the
materials and forces of nature for the
benefit of mankind."
ABET
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
27
Definition of Software Engineering
“The application of a systematic, disciplined,
quantifiable approach to the development,
operation and maintenance of software;
that is, the application of engineering to
software”
IEEE – CS
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
28
CS vs SE : David Parnas’ View
•
•
•
•
•
•
•
•
•
SE program should be designed for accreditation as an engineering
program
SE program should be relatively rigid with few technical options
SE program can share first year with other engineering programs
SE program should stress breadth
SE program should contain basic material taken in other engineering
disciplines
SE program should stress application of CS
SE programs should stress the application of material already
proven to be practical
SE program should stress on end-user applications
In SE programs, theory and practice should be integrated
D.L. Parnas, “Software Engineering Programs are not Computer Science Programs”, IEEE Software, 16(6),
Nov/Dec 1999, 19-30
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
29
A Problem?
• SE program should be designed for accreditation as an
engineering program
• SE program can share first year with other engineering
programs
• SE program should contain basic material taken in other
engineering disciplines
• These ideas are a source of significant trouble in the US (&
potentially elsewhere, if enshrined in CC 2001)
• Whilst undoubtedly reasonable for those software engineers
who will operate in application domains that involve
traditional engineering disciplines, it is not viewed as
universally necessary!
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
30
CC 2001 SE Volume Contents
•
•
•
•
•
•
•
•
•
•
•
•
Chapter
Chapter
Chapter
Chapter
Chapter
Chapter
Chapter
Chapter
Chapter
Chapter
Chapter
Chapter
1 - Introduction
2 - Past Work
3 - The Software Engineering Discipline
4 - Principles
5 - Overview of the SE Body of Knowledge
6 - Overview of the Curricular Models
7 - Introductory Courses
8 - Intermediate Courses
9 - Completing the Curriculum
10 - Professional Practice
11 - Characteristics of SE Graduates
12 - SE Across the Curriculum
•
Chapter 13 - Strategy and Tactics
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
Essentially the
same structure as
the CS Volume
31
SWEBOK (1 of 2)
• Software Engineering Body of Knowledge
• Systematisation of the knowledge that is needed
for the rigorous development of software
• Not prescriptive of how to DO SE
• Rather, analysis and presentation of the knowledge
and skills of which software engineers should be
aware
• Too extensive for any individual to master the
whole lot
• Guide to SWEBOK provides summary of what
various knowledge areas are, and gives pointers to
the relevant literature
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
32
SWEBOK (2 of 2)
• SWEBOK development under the auspices of the
Software Engineering Coordinating Committee
– Originally an ACM & IEEE-CS collaboration
– ACM pulled out in 2000 because of issues to do with
licensing, & perception that SWEBOK omitted coverage of
areas important to safety-critical software
• Managed by University of Quebec at Montreal
• Significant international involvement (but
dominated by US & Canada)
• Guide to SWEBOK now published, & in trial for 2
years
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
33
SWEBOK Knowledge Areas
•
•
•
•
•
•
•
•
•
•
Software
Software
Software
Software
Software
Software
Software
Software
Software
Software
requirements
design
construction
testing
maintenance
configuration management
engineering management
engineering process
engineering tools and methods
quality
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
34
Characteristics of SE Graduates
• AGAIN, SURELY THE STARTING POINT
General characteristics
Abilities and skills
Coping with change
Standards for achievement
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
35
Group Activity 1
In your opinion, what are the most important
graduate attributes that should distinguish
a software engineering degree from a
Computer Science degree?
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
36
Group Activity 2
In your opinion, what are the most important
curriculum elements that should be in a
Software Engineering degree that are not in
the core of a Computer Science degree?
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
37
Consideration of Group Responses
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
38
Software Engineering Degrees
• Several degrees in
–
–
–
–
–
Australia
UK
Canada
New Zealand
USA
• Some with engineering accreditation
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
39
Designing an SE Degree
• The Swinburne BSE is an engineering
accredited degree
• It has evolved over 6 years
• It is presented as an implementation rather
than as a model!
• It will be interesting to evaluate this against
the emerging CC’2001 criteria!!
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
40
The Swinburne BSE
First Year
Computer Systems
Database 1
Software Development 1 (Java)
Software Development 2 (Java)
Introduction to SE
Electronic Systems
Engineering Mathematics 1
Engineering Mathematics 2
Second Year
Human-Computer Interaction
Data Structures & Algorithms (Java)
C++ for Java Programmers
Software Project Management
Operating Systems
Advanced Web Development
Engineering Maths 3
Engineering Maths 4
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
41
The Swinburne BSE
Third Year
Intelligent Agents
Data Communications
Real-Time Programming
Personal Software Process
Software Testing and Reliability
Software Maintenance Project
Engineering Minor Stream (x 2)
Fourth Year
Software Engineering Project (x 2)
Professional Issues in IT
Large Scale System Design
Engineering Minor Stream (x 2)
IT Elective (x 2) (inc research option)
Engineering Minor Streams available include
Robotics, Telecommunications and Electronics
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
42
References
• CC’2001
– http://www.computer.org/education/cc2001
• SWEEP
– http://www.acm.org/serving/se/sweep.htm
• SWEBOK
– http://www.swebok.org/
Second Argentine Symposium on Software Engineering, Buenos Aires, 10 – 12 Sept 2001
43