Andy gravell feb 2007
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Software Engineering Education PowerPoint PPT Presentation


  • 118 Views
  • Uploaded on
  • Presentation posted in: General

Andy Gravell, Feb 2007. Software Engineering Education. 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

Download Presentation

Software Engineering Education

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Andy gravell feb 2007

Andy Gravell, Feb 2007

Software Engineering Education


The situation at southampton

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


The acm ieee perspective

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)

    • 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)


Se2004

SE2004

  • Steering committee had members from the US, Canada, UK, Israel, Japan, Australia

  • Eight main chapters

    • Introduction

    • The Software Engineering Discipline

    • Guiding Principles

    • Software Engineering Education Knowledge (SEEK)

    • Curriculum Design and Delivery

    • Courses and Course Sequences

    • Alternative Environments

    • Implementation and Assessment


Seek areas and units

SEEK Areas and Units


The knowledge areas

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


The gaps in our curriculum

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 


Specialist areas

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”?


A key skill

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


Going further

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”


Gaps in se2004

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!


Other classic questions

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?


Classic programming taxonomies

Classic Programming Taxonomies

  • One classification is by generation

    • 1st G: machine code

    • 2nd G: assembly language

    • 3rd G: high level languages

    • 4th G: very high level languages?

  • Another is based on English grammar

    • imperative: structured, object-oriented

    • declarative: functional, logic programming

    • interrogative: regular expressions, SQL


Top ten languages

Query language

OOPL

OOPL

OOPL

Mark-up language

Structured language

Structured language

Mark-up language

Scripting language

Modelling language

Top Ten Languages

  • SQL

  • C#

  • C++

  • Java

  • XML

  • C

  • VB

  • HTML

  • JavaScript

  • UML


A modern view

A Modern View

  • The main kinds of computer languages are now

    • query language

    • object-oriented programming language

    • mark-up language

    • modelling language

    • structured language

    • 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


Summary

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


  • Login