(08) UC/12 BE(Hons)/1 UNIVERSITY OF CANTERBURY Te Whare Wānanga o Waitaha CUAP Proposal-New Qualification/Subject 2012 Section A Proposal Description Purpose of the proposal To introduce Software Engineering (SE) as a discipline in the BE(Hons) degree. Justification Our society relies in many ways on software or software-based systems, for example in transportation, avionics, telecommunications, government and business, health and many other areas, and many companies worldwide and in New Zealand offer software products or complex software-based systems. Very often software systems have a high degree of complexity (software systems often consist of millions of lines of code produced by large teams of engineers or programmers), and at the same time we critically depend on their timely and cost-effective provisioning as well as their reliable and efficient operation. To meet all these targets, a disciplined and well-founded approach to the design, creation and operation of software (or software-based systems) under real-world constraints (economical, legal) is needed. Our proposal addresses a societal need and hence addresses the “Challenge” and “Connect” components of the UC strategic plan. Several companies in and around Christchurch design and develop software-rich products and have a strong need for software engineers. We are confident that offering a focused software engineering degree will attract new students to the University of Canterbury, again addressing the “Challenge” component. Software engineering is a well-established academic and professional engineering discipline, with undergraduate programmes being offered at many universities worldwide and at most of New Zealand universities. The University of Canterbury will be the first university in the South Island offering a BE(Hons) degree in software engineering Many of our computer science graduates want to pursue a career as a software engineer. They have to compete with software engineering graduates on the labour market. Our curriculum follows a well-established international standard, the IEEE / ACM Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering (2004). Several parts of the planned curriculum can be covered with existing courses, staff and infrastructure. Software engineering is a research strength of the department of Computer Science and Software Engineering. Additional staff members supporting the software engineering programme will strengthen this strategic research area, lead indirectly to increased postgraduate opportunities, and create additional PBRF income. This addresses the “Concentrate” component of the UC strategic plan. The development of the SE programme is part of the College of Engineering strategic plan. At the university level, this initiative is a result of the required engagement with stakeholders, and the STEP objective of promotion of specialist skills that contribute to New Zealand development. Given the close consultation with NZ software industry in the development of the degree (an industrial advisory board has been formed, including representatives from HP, Clarus, Jade Software, and Orion Health), it will help us attain the goal that the “University will be acknowledged as an integral and important part of the community”. This close consultation will continue and therefore contribute to the “Connect” component of the UC strategic plan. It seems unlikely that the present proposal competes with other courses or degrees at the University of Canterbury. As compared to the most likely competitor, Computer Science, the Software Engineering programme is much more focused; its learning outcomes put much stronger emphasis on team-based construction of large-scale software-based systems under real-world constraints (cost, resources, etc.). When compared to Computer Engineering, the Software Engineering program clearly focuses on software, whereas Computer Engineering has strong emphasis on hardware. Acceptability We have followed a staged consultation process. We have from the very beginning included a representative of the Electrical and Computer Engineering department to the intra-departmental SE planning group. After having developed a first draft of the curriculum we have entered a discussion with an industrial advisory board. This board was strongly 1 (08) UC/12 BE(Hons)/1 supportive and has provided excellent direction for the refinement of the curriculum proposal. With a refined proposal we then have sought consultation with stakeholders at UC. Subsequently, a refined curriculum description has been developed and sent to external experts involved with teaching and research in software engineering, as well as to the members of the industry advisory board. This descriptive document also includes an analysis how the proposed curriculum compares against the IEEE/ACM proposed software engineering curriculum. We have received feedback from the following persons and groups: Dr Linda L. Werner, Associate researcher in Software Engineering, UC Santa Cruz Prof. Steve Reeves, Associate Dean and Software Engineering Programme leader, University of Waikato A/Prof. Jens Dietrich, Software Engineering Researcher, Massey University Prof. Stephen G. MacDonnell, Software Engineering Researcher and Director of Software Engineering Research Lab, Auckland University of Technology Prof. Rachel Cardell-Oliver, Software Engineering Researcher, University of Western Australia Prof. John Grundy, Software Engineering Researcher, Swinburne University of Technology Brett Cameron, HP, Member of Industry advisory board A/Prof. Brendan McCane, Head of Computer Science Department, University of Otago Prof. Paul Cragg, Dept. Of Accounting and Information Systems, University of Canterbury Prof. Gill Dobbie, Software Engineering Researcher and Head of CS Department, University of Auckland Dr. Stuart Charters, Software Engineering Researcher, Lincoln University Sam Jarman, Computer Science Student and Student Representative, University of Canterbury Daniel Schramm, Computer Science Student and Student Representative, University of Canterbury Jeff Wilkinson, Development Unit Manager, Orion Health This refined curriculum proposal has also been approved at a staff meeting in the department of Computer Science and Software Engineering. Subsequently the proposal was also discussed in the Faculty of Engineering .We have documented all the received feedback (including the recommendations of the industry advisory board) which is available on request. Goals of the programme Our overall aim is to educate software engineers in a research-rich environment to apply knowledge and skills to the creation of dependable and quality software-based systems. Graduate profile The learning objectives for students finishing the SE programme are: Develop knowledge and skills essential to start a career in software engineering, including the ability to work as part of and lead teams. Develop skills of inquiry, and critical and analytical evaluation. Develop an ability to pursue life-long learning. Develop an understanding of the role of engineering and the impact of software and software-based systems in a global society Our planned learning outcomes define the graduate profile and are derived from (but not identical to) the student outcomes defined in the ACM/IEEE software engineering curriculum guidelines, which are a widely accepted standard for software engineering programmes. We furthermore have ensured that all engineering graduate capabilities proposed by IPENZ in 2003 (IPENZ “Requirements for Initial Academic Education for Professional Engineers”, December 2003), are appropriately covered. The learning outcomes are: 1. Show mastery of the software engineering knowledge and skills, and professional issues necessary to begin practice as a software engineer. 2. Design, implement and judge appropriate solutions in one or more application domains. 3. Demonstrate an understanding of and apply current theories, models, tools, and techniques that provide a basis for problem identification and analysis, software design, development, implementation, verification, and documentation. 4. Reconcile conflicting project objectives, finding acceptable compromises within limitations of cost, time, knowledge, existing systems, and organizations. 5. Know, comprehend, appreciate and take into consideration ethical, social, legal, cultural (which in New Zealand specifically encompasses the Treaty of Waitangi), and economic concerns in the design, development and deployment of software artefacts. 6. Learn new models, techniques, and technologies as they emerge, to judge objectively and critically their 2 (08) UC/12 BE(Hons)/1 suitability for different tasks and appreciate the necessity of such continuing professional development. 7. Work as an individual and as part of a team to develop and deliver dependable and quality software artifacts. 8. Be able to communicate ideas, designs, outcomes or risks clearly and effectively. 9. Demonstrate an understanding and appreciation for the importance of negotiation, effective work habits, leadership, and good communication with stakeholders in a typical software development environment. 10. Understand the role of engineers and their responsibility to society by demonstrating an understanding of the general responsibilities of a professional engineer. Outcome statement Software engineering graduates will have core software engineering and computer science skills, including design, project management, and communication. In addition, graduates will have practical work experience and first aid skills to help them apply their knowledge effectively in the context of being a professional engineer. They will also have developed skills that enable them to be life-long learners. Programme overview We follow the common structure of all engineering programmes at the University of Canterbury in that students first enter the intermediate year and then subsequently three professional years, each of which requires students to pass courses with 120 points. The entry requirements for the intermediate year are the same as the general entry requirements for all engineering students. There is a limitation of entry of 30 students per year. In addition, students have to complete the nonacademic requirements for engineering students (compare http://www.engf.canterbury.ac.nz/practical/): A minimum of 800 hours (100 days) of work in industry in a software-engineering related role Two written reports describing the performed work and the roles observed First aid certificate Workshop training course An important feature of the proposed curriculum is that students have to go through three significant projects, including two whole-year projects. The first whole-year project (in the second professional year) is a project with focus on group work and interaction with stakeholders (including customers), the second whole-year project (in the third professional year) is a capstone project in which students are expected to apply essentially all of the software engineering skills obtained during their studies, and develop creative solutions to a complex software engineering problem. Proposed new regulations and prescriptions (use the Calendar Form at the end of Section A) Proposed teaching/delivery methods One of the distinctive properties of the proposed programme is the strong emphasis on project work, engaging students in one half-year and two whole-year projects, one with particular emphasis on group work and the second being a 3rd pro capstone project. The department has close links with industry, and will use guest lecturers from local companies to provide direct input to the courses. All lectures and labs will be delivered on-campus. First aid and practical work experience will be administered in the same way as in the other BE(Hons) disciplines. Assessment procedures Most of the courses, except the new courses SENG 202, SENG 402, and the 3rd pro advanced software engineering courses are already offered, and hence their assessment regime is well established. SENG 202 is a half-year, 15 point project course. Its assessment includes two written project submissions (worth 70% in total, the first report addressing requirements analysis, design and development of a prototype, the second report addressing development of the first prototype into a final product), a project presentation (10%), and a final report (20%). SENG 402 is a whole-year, 30 point capstone project. Its assessment includes two written project submissions (worth 70% in total, the first report focuses on analysing a complex software engineering problem and evaluating potential solutions, the second report focuses on experiences in developing prototype solutions and on experiences made with other aspects of the project, for example changes in requirements), a project presentation (10%) and a final report (20%). Predicted student numbers/EFTS 3 (08) UC/12 BE(Hons)/1 From the discussions at our advisory board, the main limiting factor is likely to be practical work experience placements. The board had estimated 20 students placements per year would be possible based on the demand they were aware of, although since then further interest from companies has indicated that 20 is too pessimistic. Based on these discussions, the number of students is expected to initially be limited to 30 per year, that is, potentially 120 extra over the 4 year degree. This limit also reflects the experiences of introducing Computer Engineering and Mechatronics. Some of the “new” students may have otherwise chosen to take a computer science degree instead, but conversely, the degree is expected to attract more students, and those who are not accepted for the limited group are likely to join the Computer Science degree instead. The programme will be phased over three years. The intermediate courses are already available and some students from 2012 will be eligible to enrol in 1st pro Software Engineering in 2013. 2nd pro will be introduced in 2014, and 3rd pro in 2015. Resources Physical facilities: additional lab space is needed to accommodate student projects, otherwise additional rooms are not required. There will a growth in demand for equipment and computational facilities (computers, network capacity, backup facilities etc.) to accommodate additional students. To cover the courses SENG 201, SENG 301, and SENG 401, the projects SENG 202, SENG 302, and SENG 402 and the three planned 400-level selective advanced lectures on advanced software engineering topics, we propose to appoint three new continuing academic staff members, two at the level of lecturers or senior lecturers, and one at a more senior level, at least associate professor (who would also act as Director of Studies). Ideally, these persons also have relevant industrial experience in addition to their academic qualifications. The appointments would be made gradually as the new courses are phased in; ultimately the new programme will generate an estimated 90 extra EFTs once it is fully phased in, and hiring three extra staff would correspond to a staff:student ratio of 1:30. Places for practical work experience of students Library resources: no new journals are needed. We propose to review the departmental library budget to accommodate an increased need of textbooks related to software engineering. Plans for monitoring programme quality The quality of the programme will be monitored in a number of ways: The quality of the individual courses will be monitored through established processes, including teaching and course surveys run by CEM, and regular feedback sessions with class representatives. Results will be monitored, reviewed and discussed by the faculty of Engineering and Forestry at the mid-year and end-of-year examiners meeting process. The programme has a strong advisory board representing four NZ companies, and regular monitoring and input from this group will help to keep the courses up to date. The programme will be reviewed in the regular departmental review process, which will include regular discussions with the industry advisory board, and which will also include representatives from IPENZ. We will seek IPENZ and NZCS accreditation, establishing that our programme is recognized under the rules of the Seoul and the Washington accord. Reviews will take place every 5 years as part of the normal UC review, and IPENZ Accreditation review process. A GYR will also be undertaken at the appropriate time. Calendar Form New Qualification Regulations Changes to the general BE(Hons) degree regulations page 154 2012 calendar: Regulation 3 Engineering Disciplines: add “Software Engineering” to the list of programmes 4 (08) UC/12 BE(Hons)/1 13 Intermediate Examination The Programme of Study shall consist of: (a) All courses in Schedule A (b) Courses from Schedule B to meet the pre-requisites of at least one engineering programme. (c) Additional courses, where required, to ensure a workload of not less than 120 points. (d) Subject to the approval of the Dean of Engineering and Forestry, candidates may be approved into a modified Intermediate Year based on high achievement in NCEA or other equivalent examination, or through recognised prior learning at another tertiary institution. Schedule A - Compulsory for all Engineering Intermediate students (1) (2) (3) (4) ENGR 101 Foundations of Engineering EMTH 118 Engineering Mathematics 1A EMTH 119 Engineering Mathematics 1B PHYS 101 Engineering Physics A: Mechanics, Waves and Thermal Physics Schedule B - Engineering specialisations Chemical and Process Engineering (1) CHEM 111 General Chemistry A (2) EMTH171 Mathematical Modelling & Computation Civil Engineering, Forest Engineering and Natural Resources Engineering (1) CHEM 111 General Chemistry A (2) EMTH171 Mathematical Modelling & Computation (3) ENGR 102 Engineering Mechanics and Materials Computer Engineering and Electrical and Electronic Engineering (1) COSC 121 Computer Science 1A (2) Either EMTH171 Mathematical Modelling & Computation, or MATH120 Discrete Mathematics (3) PHYS 102 Engineering Physics B: Electromagnetism, Modern Physics and "How Things Work" Mechanical Engineering (1) Either CHEM114 Introductory Chemistry or CHEM111 General Chemistry 1A (2) EMTH171 Mathematical Modelling & Computation (3) ENGR102 Engineering Mechanics and Materials At least one of: (1) COSC121 Computer Science 1A (2) PHYS102 Engineering Physics 2: Electromagnetism, Modern Physics and "How Things Work" Mechatronics Engineering (1) COSC 121 Computer Science 1A (2) PHYS 102 Engineering Physics B: Electromagnetism, Modern Physics and "How Things Work" (3) ENGR 102 Engineering Mechanics and Materials Software Engineering (1) COSC 121: Introduction to Computer Programming (2) COSC 122: Introduction to Computer Science (3) MATH 120: Discrete Mathematics Notes: Each of the Engineering Intermediate Courses is a prerequisite for the Engineering First Professional Examination. Introductory courses (MATH 101 and PHYS 111) will not be considered for credit towards the BE(Hons) Intermediate Year. Restricted Credit A candidate may enquire from the Dean of Engineering and Forestry as to the Faculty Guideline on the application of restricted credit as described in the General Course and Examination Regulations. Add to regulation Software Engineering 5 (08) UC/12 BE(Hons)/1 First Professional Year Examination (subject to UNZ CUAP approval) (1) (2) (3) (4) (5) (6) (7) SENG 201: Software Engineering I SENG 202: Software Engineering Project COSC 261: Foundations of Computer Science COSC 262: Algorithms COSC 265: Relational Database Systems ENCE 260: Computer Systems Sufficient courses selected from schedules A and B below. Courses selection must include at least one course from schedule A. Schedule A (a) EMTH 210: Engineering Mathematics 2 (b) MATH 220: Discrete Mathematics and Cryptography Schedule B (a) COSC264 Data Communications and Networking (b) EMTH211 Engineering Linear Algebra and Statistics (c) MATH230 Logic, Automata, and Computability Second Professional Year Examination (subject to UNZ CUAP approval) (1) (2) (3) (4) (5) (6) SENG 301: Software Engineering II SENG 302: Software Engineering Group Project SENG 365: Web computing architectures COSC 368: Humans and computers ENEL 301: Design and management Sufficient courses selected from: (a) COSC 362: Network and Data Security (b) COSC 363: Computer Graphics (c) COSC 364: Internet Technology and Engineering (d) COSC 367: Computational Intelligence (e) ENCE 360: Operating Systems (f) ENCE 361: Embedded Systems I (g) ENCE 362: Digital Electronics I (h) Any 15 point 300-level option to be approved by the Director of Studies Third Professional Year Examination (subject to UNZ CUAP approval) (1) (2) (3) (4) SENG 401: Advanced object-oriented design SENG 402: Software Engineering Research project COSC 424: Secure Software Sufficient 400-level courses selected from COSC, SENG and ENCE approved by the Director of Studies Course Catalogue entry Software Engineering Department of Computer Science and Software Engineering SENG 201 Software Engineering I 15 Points 0.1250 EFTS This course will provide students with an understanding of An introduction to the tools and techniques of software engineering. Topics covered include statically typed programming, object-oriented design, the Unified Modelling Language, collections, and testdriven development. P: (1) COSC 121; (2) COSC 122; (3) 15 points from Mathematics, Statistics, Engineering Mathematics or MSCI 110. MATH 101 is not acceptable. MATH 120/STAT 101 are strongly recommended. R: COSC 263, COSC 324 6 (08) UC/12 BE(Hons)/1 SENG201-13S1 (C) Semester 1 SENG 202 Software Engineering Project Workshop 15 Points 0.1250 EFTS The Software Engineering Project Workshop gives students in-depth experience in developing software applications using modern techniques. Participants work either individually or in small groups to develop a medium-complexity application. At the end of this course they will have practised the fundamental skills required to develop software systems using modern tools, practices and development environments.. P: SENG 201; or subject to approval by Dean of Engineering and Forestry SENG202-13S2 (C) Semester 2 SENG 301 Software Engineering II 15 Points 0.1250 EFTS P: COSC 263 and (COSC 261 or (ACIS /INFO 203 and ACIS/ INFO 213)). R: COSC 324, COSC 314 SENG301-13S1 (C) Semester 1 SENG 302 Software Engineering Group Project 30 Points 0.2500 EFTS The Software Engineering group project gives students in-depth experience in developing software applications in groups. Participants work in small groups (typically six students) to develop a complex real application. At the end of this course you will have practiced the skills required to be a Software Engineer in the real world, including gaining the required skills to be able to develop complex applications, dealing with vague (and often conflicting) customer requirements, working under pressure and being a valuable member of a software development team. P: COSC 263 and (COSC 261 or (ACIS /INFO 203 and ACIS/ INFO 213)). R: COSC 325, COSC 314 SENG302-13W (C) Whole Year (S1 and S2) SENG 365 Web Computing Architectures 15 Points 0.1250 EFTS This course introduces the fundamental concepts and techniques for developing applications that are delivered via the world wide web. Students will gain practical experience in developing software using a variety of current web application platforms, and will gain an understanding of the technical details of the underlying frameworks used and their implications when producing complex web-based software systems. P: COSC 265 or (INFO 203 and INFO/ACIS 233). R: COSC 365 SENG365-13S2 (C) Semester 2 SENG 402 Software Engineering Research Project 0.2500 EFTS The Software Engineering research project gives students in-depth experience in researching complex, open-ended Software Engineering problems, and developing and evaluating potential solutions. Participants work individually to investigate and develop solutions for a complex real-world problem. At the end of this course you will have practiced the skills required to be a senior Software Engineer, capable of leading a team of engineers to develop solutions for complex problems involving the development of substantial software solutions of significant complexity. You will also be comfortable with dealing with vague (and often conflicting) customer requirements, working under pressure and providing technical leadership. P: SENG 301, SENG 302 SENG402-13W (C) Whole Year (S1 and S2) 7