Design of a Major in Software Development

advertisement
Design of a Software
Development Major
Alan Fekete
Bob Kummerfeld
(University of Sydney)
Our Challenge
To construct a coherent education for a
future software developer
 distinct from education for sysadmin,
systems analyst, etc
 Stay within the scope of a major in a
generalist degree
 approx 1.5 yrs total relevant content
 cf Software Engineering degree

Generalist degrees
University of Sydney has a tradition of
broad degrees with lots of choice
 was BSc, BA, BCom; now also BCST
 Student must pick one relevant major
 about half the degree (1.5 yrs)
 also choose 0.5 yrs from the general area
 approx 1 yr is completely free

Multiple IT majors


IT Professions are quite diverse
 they need diverse preparation
 content and approach differ
As a field, “IT” is as widespread/important as
“Science”
 there is no “Science” major; instead we have
Physics, Chemistry, Biology etc
 cf “Computer Science” major from ACM
CC2001 which gives common core of topics
(with bias to theory)
Software Development



We focus on knowledge and skills needed to
develop sophisticated OO software
 work in small groups (< dozen people)
 varied, unpredictable, changing projects
 for a small company or splinter group
 job titles: “Java Developer”, “Ecommerce
Application Developer”, etc
cf traditional DP applications
cf safety-critical systems, with high assurance,
high cost approaches
Context


A research-intensive university
 ~30 academic staff
Large student numbers
 1200 EFTS
 900 in first year programming
 150-200 each year choose to major in IT, in
many different generalist degrees
 plus 150 software/computer engineers
First Year: core software subjects

2 semesters of Programming
 agile process with “design by contract”
 Problem Based Learning pedagogy
 3 projects on simulation, information
storage/retrieval, language processing
 technical content (using Java)
 objects-early, collections, inheritance,
exceptions, recursion
 scalability, file I/O, ethics/access control,
Composite pattern, grammars/parsing
First Year: support subjects
2 semesters of Mathematics
 linear algebra and calculus
 discrete mathematics and statistics
 this amount of maths (though not specific
topics) are enforced by degree rules in BSc,
BIT, BCST

Second Year
6 subjects each 1/6th of a full semster!
 2 core software subjects
 Software Development Methods
 Concurrent Programming
 2 subjects shared with information systems
 2 recommended support subjects

Second Year: software subjects


Software Development Methods
 memory handling issues in C
 testing regimes
 use of scripts to combine existing tools
Concurrent programming
 multithreaded programs in Java
 esp in GUIs
 synchronisation issues
Second Year: shared subjects


Systems Analysis & Design
 requirements elicitation
 process models
 ought to be more OO in approach (UML)!
Database Management
 relational model and SQL
 data modeling and normalisation
 ought to have more coding (JDBC)!
Second Year: support subjects
Computer System Organisation
 from Networks major
 Data Structures & Algorithms
 from Principles of CS major
 these are recommended but not enforced for
Software Development majors

Third Year
6 subjects each 1/6th of a full semester!
 3 core software process subjects
 design, coding, testing
 1 of 4 domain-specific subjects
 UI, distributed objects, client-server
database applications, network
programming
 a double weight group project

Third Year: process subjects



Design
 patterns, architectures, sophisticated UML
features
Coding
 complexities of C++ (templates, namespaces,
etc), version control, personal process
Testing and V&V
 coverage methods, automated testing tools
Third Year: domain subjects




User Interfaces
 both design and programming
Distributed Object Systems
 components and middleware
Network Programming
 socket-level, from Networks major
Database Applications
 client-server, from Information Systems major
Third Year: project




counts as two subjects
students form own groups (4-5 students per group)
students choose from a list of possible topics
 supervised by academic staff or externally
assessment covers process, product, and reflection
Status
first year in Java in 2001
 similar approach, content taught in Blue
for several years
 second year will be taught in 2002
 third year subjects taught from 2003
 some (eg UI) already taught in existing
curriculum
 first graduates at end of 2003!

Conclusion
we have chosen topics that seem most
beneficial to producing students who will be
good software developers for sophisticated
applications in fluid situations
 we have kept total content to only 1.5 years
 we can’t cover all SWEBOK
 but students have room for other topics
that interest them

Download