Print as pdf if you want a pdf! If you want a nicer printout, click off the browser's automatically added header and footer.

Blekinge Institute of Technology
Department of Computer Science

Revision: 2
Reg.no:


Course syllabus

Performance Optimization

Performance Optimization

7.5 credits (7,5 högskolepoäng)

Course code: DV1674
Main field of study: Computer Science, Software Engineering
Disciplinary domain: Technology
Education level: First-cycle
Specialization: G1F - First cycle, has less than 60 credits in first-cycle course/s as entry requirements

Language of instruction: English
Applies from: 2023-03-01
Approved: 2023-03-01

1. Descision

This course is established by Dean 2022-12-16. The course syllabus is approved by Head of Department of Computer Science 2023-03-01 and applies from 2023-03-01.

2. Entry requirements

Admission to the course requires completed course in Programming, 12 credits and Datastructures and Algorithms, 6 credits, Computer communication 4 credits and Operating systems 6 credits.

3. Objective and content

3.1 Objective

Performance is an important aspect of all software. To develop good and high-performance software, it is essential that students have a good understanding of and can apply the different methods and techniques to analyze and optimize the performance of a software system.

3.2 Content

The course includes the following elements:
- overview of the factors that impact the performance of a system.
- the hardware and software platform components that impact the performance of the software
- methods for performance measurements and instrumentation
- methods for performance and scalability testing
- introduction to performance principles, performance patterns, and performance anti-patterns
- application of high-level and low-level software optimization techniques
- techniques for analyzing and improving the memory management and streaming I/O functionality
- overview of multiprocessors and methods for improving software performance and scalability through multithreading.

4. Learning outcomes

The following learning outcomes are examined in the course:

4.1. Knowledge and understanding

  • Provide an overview of modern computer system construction and its impact on performance
  • Provide a detailed account of different ways to test and measure software performance and scalability
  • Provide a detailed account of different techniques to improve the performance and scalability of software systems, including utilization of multi-core processing units

4.2. Competence and skills

  • Test, measure, and analyze the performance of a software system to identify performance bottlenecks
  • Apply appropriate optimizations to improve the performance and scalability, including parallelization of applications to utilize the available resources of modern processors

4.3. Judgement and approach

  • Explain and justify their solutions of project assignments in both speech and writing
  • Independently and critically evaluate their own and others’ solutions

5. Learning activities

The lectures present the theoretical basics of the course. The student is also expected to gain theoretical knowledge through independent study of relevant literature. Theoretical knowledge is then applied in teacher-led mandatory laboratory exercises, and in project assignments carried out individually or in groups within a given time frame.

6. Assessment and grading

Modes of examinations of the course

Code Module Credit Grade
2310 Project assignment 1 2.5 credits AF
2320 Project assignment 2 2.5 credits AF
2330 On-campus examination 2.5 credits AF

The course will be graded A Excellent, B Very good, C Good, D Satisfactory, E Sufficient, FX Failed result, a little more work required, F Fail.

The information before the start of the course states the assessment criteria and make explicit in which modes of examination that the learning outcomes are assessed.

An examiner can, after consulting the Disability Advisor at BTH, decide on a customized examination form for a student with a long-term disability to be provided with an examination equivalent to one given to a student who is not disabled.

7. Course evaluation

The course evaluation should be carried out in line with BTH:s course evaluation template and process.

8. Restrictions regarding degree

The course can form part of a degree but not together with another course the content of which completely or partly corresponds with the contents of this course.

9. Course literature and other materials of instruction

Optimized C++: Proven Techniques for Heightened Performance, Kurt Guntheroth, 2016, O’Reilly Media Inc, ISBN: 978-1-491-92206-4

Software Performance and Scalability: A Quantitative Approach, Herry H.Liu, 2009, Wiley-Blackwell, ISBN: 978-0-470-46253-9

Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software, C.U. Smith & L.G. Williams, Addison-Wiley, 2001, ISBN: 0201722291

The Software Optimization Cookbook: High Performance Recipes for IA-32 Platforms, 2nd Edition, Richard Gerber, Kevin Smith, and Xinmin Tian, 2006, Intel Press, ISBN: ? 978-0976483212

10. Additional information

This course replaces DV1567