design of a software development major alan fekete bob kummerfeld (university of sydney)

18
Design of a Software Development Major Alan Fekete Alan Fekete Bob Kummerfeld Bob Kummerfeld (University of Sydney) (University of Sydney)

Upload: estella-dixon

Post on 26-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Design of a Software Development Major

Alan FeketeAlan Fekete

Bob KummerfeldBob Kummerfeld

(University of Sydney)(University of Sydney)

Page 2: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Our Challenge

To construct a coherent education for a To construct a coherent education for a future software developerfuture software developer distinct from education for sysadmin, distinct from education for sysadmin,

systems analyst, etcsystems analyst, etc Stay within the scope of a major in a Stay within the scope of a major in a

generalist degree generalist degree approx 1.5 yrs total relevant contentapprox 1.5 yrs total relevant content cf Software Engineering degreecf Software Engineering degree

Page 3: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Generalist degrees

University of Sydney has a tradition of University of Sydney has a tradition of broad degrees with lots of choicebroad degrees with lots of choice was BSc, BA, BCom; now also BCST was BSc, BA, BCom; now also BCST

Student must pick one relevant major Student must pick one relevant major about half the degree (1.5 yrs)about half the degree (1.5 yrs) also choose 0.5 yrs from the general areaalso choose 0.5 yrs from the general area approx 1 yr is completely freeapprox 1 yr is completely free

Page 4: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Multiple IT majors

IT Professions are quite diverseIT Professions are quite diverse they need diverse preparationthey need diverse preparation content and approach differcontent and approach differ

As a field, “IT” is as widespread/important as As a field, “IT” is as widespread/important as “Science” “Science” there is no “Science” major; instead we have there is no “Science” major; instead we have

Physics, Chemistry, Biology etcPhysics, Chemistry, Biology etc cf “Computer Science” major from ACM cf “Computer Science” major from ACM

CC2001 which gives common core of topics CC2001 which gives common core of topics (with bias to theory)(with bias to theory)

Page 5: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Software Development We focus on knowledge and skills needed to develop We focus on knowledge and skills needed to develop

sophisticated OO software sophisticated OO software work in small groups (< dozen people)work in small groups (< dozen people) varied, unpredictable, changing projectsvaried, unpredictable, changing projects for a small company or splinter groupfor a small company or splinter group job titles: “Java Developer”, “Ecommerce job titles: “Java Developer”, “Ecommerce

Application Developer”, etcApplication Developer”, etc cf traditional DP applications cf traditional DP applications cf safety-critical systems, with high assurance, high cf safety-critical systems, with high assurance, high

cost approachescost approaches

Page 6: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Context

A research-intensive universityA research-intensive university ~30 academic staff~30 academic staff

Large student numbersLarge student numbers 1200 EFTS1200 EFTS 900 in first year programming900 in first year programming 150-200 each year choose to major in IT, in 150-200 each year choose to major in IT, in

many different generalist degreesmany different generalist degreesplus 150 software/computer engineersplus 150 software/computer engineers

Page 7: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

First Year: core software subjects 2 semesters of Programming2 semesters of Programming

agile process with “design by contract”agile process with “design by contract” Problem Based Learning pedagogyProblem Based Learning pedagogy

3 projects on simulation, information 3 projects on simulation, information storage/retrieval, language processingstorage/retrieval, language processing

technical content (using Java) technical content (using Java) objects-early, collections, inheritance, objects-early, collections, inheritance,

exceptions, recursionexceptions, recursionscalability, file I/O, ethics/access control, scalability, file I/O, ethics/access control,

Composite pattern, grammars/parsingComposite pattern, grammars/parsing

Page 8: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

First Year: support subjects 2 semesters of Mathematics2 semesters of Mathematics

linear algebra and calculuslinear algebra and calculus discrete mathematics and statisticsdiscrete mathematics and statistics

this amount of maths (though not specific this amount of maths (though not specific topics) are enforced by degree rules in BSc, topics) are enforced by degree rules in BSc, BIT, BCST BIT, BCST

Page 9: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Second Year

6 subjects each 1/66 subjects each 1/6thth of a full semster! of a full semster! 2 core software subjects2 core software subjects

Software Development MethodsSoftware Development Methods Concurrent ProgrammingConcurrent Programming

2 subjects shared with information systems2 subjects shared with information systems 2 recommended support subjects2 recommended support subjects

Page 10: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Second Year: software subjects Software Development MethodsSoftware Development Methods

memory handling issues in Cmemory handling issues in C testing regimestesting regimes use of scripts to combine existing toolsuse of scripts to combine existing tools

Concurrent programmingConcurrent programming multithreaded programs in Javamultithreaded programs in Java

esp in GUIsesp in GUIs synchronisation issuessynchronisation issues

Page 11: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Second Year: shared subjects Systems Analysis & DesignSystems Analysis & Design

requirements elicitationrequirements elicitation process modelsprocess models ought to be more OO in approach (UML)!ought to be more OO in approach (UML)!

Database ManagementDatabase Management relational model and SQLrelational model and SQL data modeling and normalisationdata modeling and normalisation ought to have more coding (JDBC)!ought to have more coding (JDBC)!

Page 12: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Second Year: support subjects Computer System OrganisationComputer System Organisation

from Networks majorfrom Networks major Data Structures & AlgorithmsData Structures & Algorithms

from Principles of CS majorfrom Principles of CS major these are recommended but not enforced for these are recommended but not enforced for

Software Development majorsSoftware Development majors

Page 13: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Third Year

6 subjects each 1/66 subjects each 1/6thth of a full semester! of a full semester! 3 core software process subjects3 core software process subjects

design, coding, testingdesign, coding, testing 1 of 4 domain-specific subjects1 of 4 domain-specific subjects

UI, distributed objects, client-server UI, distributed objects, client-server database applications, network database applications, network programmingprogramming

a double weight group project a double weight group project

Page 14: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Third Year: process subjects DesignDesign

patterns, architectures, sophisticated UML patterns, architectures, sophisticated UML featuresfeatures

CodingCoding complexities of C++ (templates, namespaces, complexities of C++ (templates, namespaces,

etc), version control, personal processetc), version control, personal process Testing and V&VTesting and V&V

coverage methods, automated testing toolscoverage methods, automated testing tools

Page 15: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Third Year: domain subjects User InterfacesUser Interfaces

both design and programmingboth design and programming Distributed Object SystemsDistributed Object Systems

components and middlewarecomponents and middleware Network ProgrammingNetwork Programming

socket-level, from Networks majorsocket-level, from Networks major Database ApplicationsDatabase Applications

client-server, from Information Systems majorclient-server, from Information Systems major

Page 16: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Third Year: project

counts as two subjectscounts as two subjects students form own groups (4-5 students per group)students form own groups (4-5 students per group) students choose from a list of possible topicsstudents choose from a list of possible topics

supervised by academic staff or externallysupervised by academic staff or externally assessment covers process, product, and reflectionassessment covers process, product, and reflection

Page 17: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Status

first year in Java in 2001first year in Java in 2001 similar approach, content taught in Blue similar approach, content taught in Blue

for several yearsfor several years second year will be taught in 2002second year will be taught in 2002 third year subjects taught from 2003third year subjects taught from 2003

some (eg UI) already taught in existing some (eg UI) already taught in existing curriculumcurriculum

first graduates at end of 2003!first graduates at end of 2003!

Page 18: Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)

Conclusion

we have chosen topics that seem most we have chosen topics that seem most beneficial to producing students who will beneficial to producing students who will be good software developers for be good software developers for sophisticated applications in fluid situationssophisticated applications in fluid situations

we have kept total content to only 1.5 yearswe have kept total content to only 1.5 years we can’t cover all SWEBOKwe can’t cover all SWEBOK but students have room for other topics but students have room for other topics

that interest themthat interest them