Download presentation
Presentation is loading. Please wait.
Published byEstella Dixon Modified over 9 years ago
1
Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)
2
Our Challenge To construct a coherent education for a future software developer 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 Stay within the scope of a major in a generalist degree approx 1.5 yrs total relevant content cf Software Engineering degree
3
Generalist degrees University of Sydney has a tradition of broad degrees with lots of choice 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 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
4
Multiple IT majors IT Professions are quite diverse IT Professions are quite diverse they need diverse preparation content and approach differ As a field, “IT” is as widespread/important as “Science” 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)
5
Software Development We focus on knowledge and skills needed to develop sophisticated OO software 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 traditional DP applications cf safety-critical systems, with high assurance, high cost approaches cf safety-critical systems, with high assurance, high cost approaches
6
Context A research-intensive university A research-intensive university ~30 academic staff Large student numbers 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
7
First Year: core software subjects 2 semesters of Programming 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
8
First Year: support subjects 2 semesters of Mathematics 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 this amount of maths (though not specific topics) are enforced by degree rules in BSc, BIT, BCST
9
Second Year 6 subjects each 1/6 th of a full semster! 6 subjects each 1/6 th of a full semster! 2 core software subjects 2 core software subjects Software Development Methods Concurrent Programming 2 subjects shared with information systems 2 subjects shared with information systems 2 recommended support subjects 2 recommended support subjects
10
Second Year: software subjects Software Development Methods Software Development Methods memory handling issues in C testing regimes use of scripts to combine existing tools Concurrent programming Concurrent programming multithreaded programs in Java esp in GUIs synchronisation issues
11
Second Year: shared subjects Systems Analysis & Design Systems Analysis & Design requirements elicitation process models ought to be more OO in approach (UML)! Database Management Database Management relational model and SQL data modeling and normalisation ought to have more coding (JDBC)!
12
Second Year: support subjects Computer System Organisation Computer System Organisation from Networks major Data Structures & Algorithms Data Structures & Algorithms from Principles of CS major these are recommended but not enforced for Software Development majors these are recommended but not enforced for Software Development majors
13
Third Year 6 subjects each 1/6 th of a full semester! 6 subjects each 1/6 th of a full semester! 3 core software process subjects 3 core software process subjects design, coding, testing 1 of 4 domain-specific subjects 1 of 4 domain-specific subjects UI, distributed objects, client-server database applications, network programming a double weight group project a double weight group project
14
Third Year: process subjects Design Design patterns, architectures, sophisticated UML features Coding Coding complexities of C++ (templates, namespaces, etc), version control, personal process Testing and V&V Testing and V&V coverage methods, automated testing tools
15
Third Year: domain subjects User Interfaces User Interfaces both design and programming Distributed Object Systems Distributed Object Systems components and middleware Network Programming Network Programming socket-level, from Networks major Database Applications Database Applications client-server, from Information Systems major
16
Third Year: project counts as two subjects counts 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 topics students choose from a list of possible topics supervised by academic staff or externally assessment covers process, product, and reflection assessment covers process, product, and reflection
17
Status first year in Java in 2001 first year in Java in 2001 similar approach, content taught in Blue for several years second year will be taught in 2002 second year will be taught in 2002 third year subjects taught from 2003 third year subjects taught from 2003 some (eg UI) already taught in existing curriculum first graduates at end of 2003! first graduates at end of 2003!
18
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 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 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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.