School of CSE - Details Needed for New Course Proposal Course Title: Industrial Software Development Proposer: John Plaice Rationale Why is the new course being proposed? There is no course taught in CSE where students are forced to build deliverable softwared, with full automatic testing suites. What are the academic objectives? To teach them how to build deliverable software, mastering all of the tools that are considered standard for producing free and open-source software. Which programs/stage does it serve? This course could be taken from 3rd year on, in any program. It could also be included in any of the Coursework Masters programs. Why can the same objectives not be achieved with existing courses? In theory, this stuff might be taught in COMP 2041/9041, but the students have too little maturity and too few programming skills when doing those courses to be able to master software delivery. How does the proposed course relate to other courses? This is the course that I would hope students took before starting SENG 3010/3020. What overlap is there? None. If there is any overlap, why is this justified/not a problem? Stakeholders and Consultation Who are the potential stakeholders, who was consulted about the proposal (inside the School as well as outside), what was the result of that consultation? The proposal was informally discussed with Paul Compton and with Boualem Benatallah. Both were very supportive of the idea. Enrolment Impacts Likely enrolment (with justification), and impact on enrolments of other courses. I don't know. Justification of Prerequisites (or lack thereof) Prerequisites should be 2 years of programming. Any Courses this is Replacing, and Why? None Delivery and Assessment Weekly lectures, with tutorials. Anything noteworthy about delivery mode, assessment (with justification). Assessment will all be done automatically, with very stringent requirements for submission. Apart from scripting languages, main programming language will be C++. Handbook Entry Introduction to delivery of large software systems. Use of industrial tools for maintaining the code base and for producing quality portable, deliverable code. Methods for producing systematic test suites. Textbooks/References Manuals for GNU and other free software tools. Syllabus Indicative syllabus / overview of contents (at a level of detail well beyond that of the handbook entry) multiple-author configuration management autoconf/automake building distributions building unit test suites building regression test suites use of external libraries writing portable code and so on. Effect on School Resources: 1. Who is proposed to teach the proposed new course, and what impact would this have on their planned/current allocation? John Plaice. Currently teaching SENG 3010 and SENG 3020. Would likely continue with these courses. 2. What sort of tutorial component is proposed, if any? Weekly tutorials, corresponding to the content of the week. 3. What is the likely impact on lab utilisation (this relates to assignment and project work as well as scheduled labs? Standard, with one major asssignment, with several partial submissions. 4. Any other resource needs? E.g. special print/disk quota, access to servers, access to special machines, special labs. Standard.