Syllabus academic year 2009/2010
(Created 2009-08-11.)
SOFTWARE DEVELOPMENT IN TEAMS – PROJECTEDA260

Higher education credits: 6. Grading scale: UG. Level: G2 (First level). Language of instruction: The course will be given in Swedish. EDA260 overlap following cours/es: EDA321, EDA322, EDA321, EDA322, EDA321, EDA322, EDA321 och EDA322. Compulsory for: D2. Optional for: C4, C4da, E4, E4ps, I4ip, Pi4. Course coordinator: Professor Boris Magnusson,, Boris.Magnusson@cs.lth.se och univ. lektor Görel Hedin, Gorel.Hedin@cs.lth.se, Inst f datavetenskap. Prerequisites: EDAA01 Programming - Second Course or EDA027 Algorithms and Data Structures. The compulsory course items of EDA061 or the compulsory course items of the first study period of 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://www.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.