Date: 03 Aug 2007
From: jyrki@diku.dk
Subject: Course on software development

Kursustitel på dansk:

  Udvalgte emner indenfor softwareudvikling

Kursustitel på engelsk:

  Selected topics in software development

Antal rapportdokumenterede ECTS point:

  7.5 ECTS [(optional) empirical research project]

Antal ikke rapportdokumenterede ECTS point:

  7.5 ECTS

Placering i skemagruppe:

  B

Placering i blokstruktur:

  Blok 3

Omfang dansk/engelsk:

  Forlæsninger 7 * 2 timer
  Diskussionssesioner 7 * 2 timer

  Lectures 7 * 2 hours
  Discussion sessions 7 * 2 hours

Kontaktperson:

  Jyrki Katajainen, jyrki@diku.dk, 35 32 14 16

Andre undervisere:

  Claus Jensen, surf@diku.dk
  Lars Yde, larsyde@gmail.com

Antal ugentlige undervisningstimer/fordeling samt øvrige ønsker ifm.
skemalægningen:

  Tuesdays 9-11; Fridays 9-11

Undervisningsform:

  Lectures/seminar

Formål på dansk/engelsk:

  Kurset har til formål at øge de studerendes viden om
  softwareudvikling samt deres evner til at udvikle software. Dette
  gøres vid at studere den nyeste forskningslitteratur om
  softwareudvikling.
 
  The goal of the course is to increase the students' knowledge of
  software development and their ability to develop software. This is
  done by studying the latest research literature on software
  development.
 
Målbeskrivelse på dansk/engelsk:

  Ved kursets afslutning skal de studerende:

  1. have de grundlæggende kundskaber i videskbelig tænkning,
  2. kunne udføre sund forskning indenfor softwareudvikling,
  3. kunne foretage litteratursøgninger hurtigt og præcist,
  4. kunne producere tekst som er videnskabeligt acceptabelt,
  5. kunne formidle resultaterne af deres arbejde,
  6. ha de grundlæggende færdigheder til at granske andres arbejde,
  7. kunne teste et stort softwarekomponent,
  8. kunne planlægge og designe et empirisk forskningsprojekt.

  After the course, the students should:

  1. have the basic knowledge about scientific thinking,
  2. be able to do sound research within the field of software development,
  3. be able to find relevant research literature quickly,
  4. be able to produce text that is scientifically acceptable,
  5. be able to disseminate the results of their work,
  6. have the basic skills of criticizing and analysing other people's work,
  7. be able to test a sizeable software component,
  8. be able to plan and design an empirical research project.
 
Indhold på dansk/engelsk:

  En række udvalgte artikler og bogkapitler omhandlende
  softwareudvikling vil blive præsenteret af underviserne, samtidig
  med at de studerende selv skal udvælge og præsentere artikler
  indenfor emnet.  Udvikling af software vil blive behandlet med fokus
  på underområderne analyse, design, programmering og test. Af emner
  som vil blive diskuteret kan nævnes følgende:

  * development process models (agile development, etc.);
  * analysis patterns;
  * design patterns;
  * programming style;
  * programming psychology;
  * software testing;
  * software tools.

  De studerende kan efter kurset gennemføre et forskningsforløb hvor
  de ved hjælp af empiriske studier eller litteraturstudier
  fremstiller en artikel som præsenteres ved en efterfølgende
  workshop/konference.

  A collection of selected articles and book chapters concerning
  software development will be presented by the teachers.
  Additionally, the students will themselves select and present
  articles within the subject matter. Development of software will be
  presented with focus on the areas: analysis, design, programming,
  and testing. The following topics will be discussed:

  * development process models (agile development, etc.);
  * analysis patterns;
  * design patterns;
  * programming style;
  * programming psychology;
  * software testing;
  * software tools.

  After the course the students will be given an opportunity to write
  an article based on their own empirical study or literature study. A
  workshop/conference will be held in which the articles will be
  presented.

Litteratur/literature:

  Udvalgte artikler og dele af følgende bøger:

  Selected articles and parts of the following textbooks:

  Søren Lauesen,
  Software Requirements,
  Addison-Wesley (2002)

  Martin Fowler,
  Analysis Patterns: Reusable Object Models,
  Addison-Wesley (1996)

  Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,
  Design Patterns: Elements of Reusable Object-Oriented Software,
  Addison-Wesley (1995)

  Martin Fowler, Kent Beck, John Brant, William Opdyke,
  Refactoring: Improving the Design of Existing Code,
  Addison-Wesley (1999)

  Andy Oram, Greg Wilson (editors),
  Beautiful Code---Leading Programmers Explain How They Think,
  O'Reilly (2007)

  Gerald M. Weinberg,
  The Psychology of Computer Programming: Silver Anniversary Edition,
  Dorset House Publishing Company, Inc. (1998)

  Robert V. Binder,
  Testing Object-Oriented Systems: Models, Patterns, and Tools,
  Addison-Wesley (1999)

Formelle krav dansk/engelsk:

  150 ECTS

Eksamensform dansk/engelsk:

  Mundtlig eksamen, obligatoriske opgaver, aktiv deltagelse

  Karaktergivning

  Mundtlig eksamen: 30%
  Opgave 1 (skriv en oversigtsartikel): 30%
  Præsentation (præsenter en artikel): 10%
  Opgave 2 (gransk andres kode): 10%
  Opgave 3 (test et program): 20%

  Oral exam, mandatory assignments, active participation

  Grading

  Oral exam: 30%
  Assignment 1 (write a survey): 30%
  Presentation (present an article): 10%
  Assignment 2 (review code): 10%
  Assignment 3 (test a program): 20%

Studiekredit:

  7-skalakarakter

Eksamensafholdelse:

  Registration though course homepage; the second Tuesday in the exam 
period.

Intern/ekstern censur:

  Intern censur

Kursusevaluering:

  Individual debriefing of the students.

Deltagerbegrænsning:

  max. 48, min. 14 students

ISIS-Kursushjemmeside:

Kursets hjemmeside:

  http://www.diku.dk/~jyrki/Course/Software-development-2008/

Bemærkninger dansk/engelsk:

  Please, observe that the words "softwareudvikling" and "systemarbejde"
  are _not_ synonyms for us. This course is about software not systems.

Pensum:

  Material covered in lectures and seminar presentations.

Undervisningssprog:

  Dansk/English

Afholdes næste gang:

  Perhaps 2-3 years from now

Sæt et og kun et kryds i en af nedenstående rubrikker. Brug kun i "Diverse"
i yderste nødstilfælde.
Studieaktiviteterne emneinddeles i overensstemmelse med nedenstående.

[ ]Billedbehandling og datamatsyn m.v.

[x]Teori og praksis i programmeringssprog

[ ]Distribuerede systemer

[ ]Design, konstruktion og analyse af algoritmer

[ ]Systemarbejde

[ ]Vidensrepræsentation, simuleret intelligens, naturlige sprog,
logikprogrammering og databaser

[ ]Diverse