andy gravell feb 2007 n.
Download
Skip this Video
Download Presentation
Software Engineering Education

Loading in 2 Seconds...

play fullscreen
1 / 16

Software Engineering Education - PowerPoint PPT Presentation


  • 154 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Software Engineering Education' - dea


Download Now 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
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
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