Syllabus academic year 2011/2012
(Created 2011-09-01.)
SOFTWARE DEVELOPMENT IN TEAMS – PROJECTEDA260
Credits: 6. Grading scale: UG. Cycle: G2 (First Cycle). Main field: Technology. Language of instruction: The course will be given in Swedish. EDA260 overlaps following cours/es: EDA321 and EDA322. Compulsory for: D2. Optional for: C4, E4, E4pv, F4, F4pv, Pi4. Course coordinator: Professor Boris Magnusson,, Boris.Magnusson@cs.lth.se and univ. lektor Görel Hedin, Gorel.Hedin@cs.lth.se, Computer Science. Prerequisites: The compulsory course items of EDA061 or the compulsory course items of the first study period of EDAF10. Also a passing grade on the written exam of at least one of the courses EDAA01, EDA027, EDA061, EDAF10. The number of participants is limited to 120 Assessment: To qualify for a passing grade the students must have completed the laboratory work, the planning meetings, the development sessions and the presentation of the developed product. They must also pass a small written examination. Further information: Project course. Home page: http://cs.lth.se/eda260.

Aim
The aim with this course is to give knowledge about and practical experience on cooperation within a software development team.

Focus is on the method Extreme Programming, which uses a highly iterative work process.

The course covers principles for customer cooperation, planning, sustainable design and implementation, testing, and delivery of the product.

The course also gives additional training in object-oriented programming.

Knowledge and understanding
For a passing grade the student must

Skills and abilities
For a passing grade the student must

Contents
A concrete iterative software development method is used where the students are trained to work in a team. The method is based on Extreme Programming (XP), with practices like iterative planning, automated testing, test-driven development, pair programming, refactoring, and frequent releases.

Customer requirements are formulated and prioritized in cooperation with the students. This way, the students get an insight into the different roles in the work process, e.g., as customer, project leader, and developer, and insight into the needs of the customer and how they can be handled. The course gives practical experience from how a small project can be run and thereby a frame of reference for subsequent courses that treat methodology for software development in larger projects and organizations.

The course covers two study periods. During the first period a series of lectures are given, supported by lab sessions on specific topics like planning, testing, version control, and refactoring. During the second period, the students work in teams of around 10. Each team carries out a software development project structured as a sequence of iterations, each consisting of a planning meeting and a development session.

At the end of the course, the teams present their developed products.

Literature
chromatic: Extreme Programming Pocket Guide. O'Reilly 2003. ISBN: 0-596-00485-0.
Additional material (articles) distributed by the department.