IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Performance og test 
Kursusnavn (engelsk):Performance and Test 
Semester:Efterår 2008 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:15,00 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:20 
Maks. antal deltagere:80 
Formelle forudsætninger:Basic ability to program in some imperative programming language (e.g. 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, modeling 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 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, and 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 around 5 lectures with associated lab exercises, and applied systematically in the project.
Topics covered include: testing against a specification (whitebox, blackbox, regression testing), testing objectives (coverage, performance, functionality, user interaction, writing test scripts (e.g. 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 around 5 weeks and runs in groups of 3-4 people. You will be asked to implement a substantial piece of software including 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.
------------------------------------
I intro-ugen (uge 35) er der ændrede kursustidspunkter ¿ se hvordan undervisningen er tilrettelagt her:
link til skemaoplysninger
Skemaoplysningerne for efterårssemesteret vil være tilgængelige fra august måned.

In the intro week (week 35) the course time table is changed ¿ see the schedule here:
link to the time table
The schedule for the fall term will be available in August.

-------------------------------------

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 cand.it. 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:
  • Kurt Mehlhorn, Peter Sanders,
    Algorithms and Data Structures - The Basic Toolbox,
    Springer 2008, ISBN: 978-3-540-77977-3
  • Anne Mette Jonassen Hass. Guide to Advanced Software Testing. ISBN-13: 9781596932852




  • Plus various notes and articles available on-line
  •  
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Onsdag 10.00-12.00 Forelæsning ITU 3A14
Onsdag 13.00-15.00 Øvelser ITU 3A14, 3A50, 3A52
Fredag 10.00-12.00 Forelæsning ITU 3A12

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2008-12-17 Written work to be handed in no later than 3 PM Skriftlige arbejder ITU The Examination Office
2009-01-22 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2009-01-23 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere