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
© Copyright 2026 Paperzz