Skema til oplysninger af kurser på kandidatdelen og valgfri kurser på bachelor- og kandidatdelen i foråret 2008 (Blok 3 og 4) 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/PE-lab/Courses/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