Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Education Andy Gravell, Feb 2007.

Similar presentations


Presentation on theme: "Software Engineering Education Andy Gravell, Feb 2007."— Presentation transcript:

1 Software Engineering Education Andy Gravell, Feb 2007

2 The Situation at Southampton Our programmes –BSc/MEng Computer Science –BEng/MEng/MSc Software Engineering –BSc/MSc Information/Web Technology This year’s intake was (roughly) –64 Computer Science –27 Software Engineering –34 Information/Web Technology –75 BEng/BSc –50 MEng/MSc

3 The ACM/IEEE Perspective The US professional bodies have produced computing curriculum guidelines –ACM Computer Science Curricula 1968, 1978 –ACM/IEEE Computing Curricula 1991, 2001 In 2004 the ACM/IEEE produced their first set of guidelines for software engineering programmes –SE2004 (a three year effort, 130 pages)SE2004 –earlier software engineering curricula were published by Freeman 1976 & 1978, and Bagert (SEI) 1999 They are now working on guidelines covering 5 areas (CS, CE, SE, IT, & IS)

4 SE2004 Steering committee had members from the US, Canada, UK, Israel, Japan, Australia Eight main chapters 1.Introduction 2.The Software Engineering Discipline 3.Guiding Principles 4.Software Engineering Education Knowledge (SEEK) 5.Curriculum Design and Delivery 6.Courses and Course Sequences 7.Alternative Environments 8.Implementation and Assessment

5 SEEK Areas and Units Computing Essentials 172Software V & V42 Mathematical & Engineering Fundamentals 89Software Evolution 10 Professional Practice 35Software Process13 Software Modelling & Analysis 53Software Quality16 Software Design45Software Management 19

6 The Knowledge Areas Each area is broken down into topics –about one per hour of lectures The first three areas are a subset of the standard computer science curriculum –introduction to CS & IT, programming, program construction methods, discrete maths, measurement and statistics, software economics, teamwork, communication skills, and professionalism The other seven areas are more specialised –200 lecture hours, about 10 of our modules –yet we only have ~7 specialist modules ourselves

7 The Gaps in our Curriculum Software Modelling & Analysis Software Design –except Architectural Design (9)  Software V & V –except Testing (21)  –and Problem Analysis & Reporting (4)  Software Evolution (10)  Software Process Software Quality Software Management

8 Specialist Areas In addition, SE2004 recommends that students should specialise in one or more areas such as –networking, information systems, e-commerce, fault- tolerant/security/embedded/real-time/safety-critical systems, biomedical systems, scientific computing, telecommunications, transportation, process control, multimedia & entertainment systems, agent-based systems, and mobile applications We cover 10 or more of these 15 subject areas –but do our students learn “how the characteristics of typical products in these areas influence a system’s design and construction”?

9 A Key Skill Software engineers need to be able to make rational and justified decisions Not just design decisions, but also their selection of methods, tools & techniques So the curriculum must give them opportunities to make decisions and explain the reasons for their choices

10 Going Further Actually, students should learn several specialist areas, as the methods used vary so much –critical systems: hazard analysis, requirements engineering, formal methods –mass market software: open source, “synchronise and stabilise” –business systems: agile methods, customisation, system integration, outsourcing This should help them to “compare and contrast”

11 Gaps in SE2004 SE2004 has good coverage of the methods used for critical systems But there is not much on agile methods –only ~3 hours on some agile practices: unit testing, refactoring, test-first programming Nor on outsourcing –only ~2 hours on a couple of the issues stakeholder interaction, multi-cultural environments And nothing about open source software!

12 Other Classic Questions How to teach programming –object-first or procedures-first –command line versus IDE Of course, professional software engineers should be comfortable with the full range of techniques –so most of these questions are about educational effectiveness – what to cover first Which programming languages?

13 Classic Programming Taxonomies One classification is by generation –1 st G: machine code –2 nd G: assembly language –3 rd G: high level languages –4 th G: very high level languages? Another is based on English grammar –imperative: structured, object-oriented –declarative: functional, logic programming –interrogative: regular expressions, SQL

14 Top Ten Languages 1.SQL 2.C# 3.C++ 4.Java 5.XML 6.C 7.VB 8.HTML 9.JavaScript 10.UML Query language OOPL Mark-up language Structured language Mark-up language Scripting language Modelling language

15 A Modern View The main kinds of computer languages are now 1.query language 2.object-oriented programming language 3.mark-up language 4.modelling language 5.structured language 6.scripting language A modern curriculum should include at least one the first four types, for example: –SQL, C#, XML, UML, … SE2004 does not mention mark-up languages

16 Summary Our Software Engineering degrees are popular Our curriculum follows SE2004 –but with some gaps testing, evolution, architecture SE2004 itself have some gaps –three or more specialist areas (not just one) relevant methods: agile, open source, and outsourcing –how to make rational, justified decisions –a mark-up language such as XML


Download ppt "Software Engineering Education Andy Gravell, Feb 2007."

Similar presentations


Ads by Google