IT-Universitetet i København
  Tilbage Kursusoversigt
Kursusnavn (dansk):Performance og test 
Kursusnavn (engelsk):Performance and Test 
Semester:Forår 2008 
Udbydes, softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:15,00 
Min. antal deltagere:12 
Forventet antal deltagere:20 
Maks. antal deltagere:80 
Formelle forudsætninger:Basic ability to program in some imperative programming language (Java, Python, C/C++/C#, etc.), using conditions, loops, arrays, methods/procedures/functions, and simple recursion. This may be obtained by following Object Oriented Programming - Introduction Object Oriented Programming - Introduction, or Introductory Programming/GP Introductory Programming or similar courses.

Knowledge of basic mathematical concepts like: sets, functions, graphs, and trees. These can be obtained by following the Modelling and Design Modelling and Design
Læringsmål:This course builds on your prior knowledge of programming, modelling and design.
It will teach essential theory and tools for designing efficient and correct programs. The three areas covered are: Performance, test and software development practices.

After the course the student should:
  • Be able to analyze time and space usage of programs.

  • Be able to argue for correctness of programs.

  • Be able to assess scalability of a given software solution, using asymptotic analysis.

  • Be able to choose among and make use of the most important algorithms and data structures in libraries, based on knowledge of their complexity.

  • Know about the most important hardware factors influencing the speed at which a program runs.

  • Be able to incorporate systematic testing in software development.

  • Be able to design test cases from requirements.

  • Be able to implement and perform tests.

  • Be able to apply to software engineering tools for configuration management, knowledge sharing and documentation.

Fagligt indhold:Performance will be taught in a series of around 9 lectures with associated exercise classes.
Topics covered are among others:
complexity analysis, big-O, correctness (loop invariants, assertions), algorithmic problem solving techniques including divide-and-conquer, concrete algorithms and data structures for search trees, sorting, hashing, graphs, shortest paths.

The lectures will cover theory and the exercise classes and a large project will train practical issues of applying the theory.

Test and software practices will be taught in a series of 5 lectures with associated lab exercises and applied systematically in the project.
Topics covered are:
testing against a specification (whitebox, blackbox, regression testing), testing objectives (coverage, performance, functionality, user interaction, writing test scripts with JUnit, code inspection, limitations of testing, knowledge sharing (maintaining documentation, wiki mechanisms, tracking requirements and issues, maintaining documentation), and configuration management (versioning and build automation).

The project will be started after 5 weeks and runs in groups of 3-4 people. It will implement a substantial piece of software with a non-trivial algorithm using the software tools introduced and systematic application of testing. 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger, øvelser og vejledning

Around 14 lectures with exercise classes. Twice a week for the first 5 weeks. A larger project corresponding to half the course. All material will be made available on the Web.


NB! Please note that classes on Wednesdays have been rescheduled from afternoon to morning.


I intro-ugen (uge 5) er der ændrede kursustidspunkter:
Link til skemaoplysninger

In the intro week (week 5) the course time table is changed:
Link to the time table

Information om studiestruktur / Information about study structure
Dette kursus er en del af SDT¿s obligatoriske moduler, som du kan finde beskrevet her: SDT studiestruktur
For at blive i SDT skal du bestå SDT¿s backbonekurser, og desuden gennemføre en 22,5 ECTS specialisering samt to 7,5 ECTS valgfag.

This course is part of the SDT mandatory modules ¿ find them described here:
SDT study structure
In order to graduate as a MSc in SDT, you need to pass the SDT backbone courses, and also take a 22,5 ECTS specialization and two 7,5 ECTS electives.

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur


Litteratur udover forskningsartikler:
  • Robert Sedgewick, ¿Algorithms in Java, Third Edition (Parts 1-5)¿ (two books). Can be bought as a bundle.

  • John D. McGregor. David A. Sykes. A Practical Guide to Testing Object-Oriented Software. 1st Edition. Addison Wesley Professional 2001. ISBN: 0201325640.

  • + various online notes. 
    Afholdelse (tid og sted)
    Kurset afholdes på følgende tid og sted:
    Onsdag 09.00-12.00 Forelæsning ITU 3A14
    Onsdag 13.00-15.00 Øvelser ITU 3A52
    Fredag 10.00-12.00 Forelæsning ITU 3A14
    Fredag 13.00-16.00 Øvelser ITU 3A52

    Eksamen afholdes på følgende tid og sted:
    2008-05-21 No later than 3 PM (kl. 15.00) Skriftlige arbejder ITU The Examination Office, ITU
    2008-06-12 Kontakt kursusansvarlig Mundtlig eksamen ITU 4A16
    2008-06-13 Kontakt kursusansvarlig Mundtlig eksamen ITU 4A16