API Design and Best Practices

7.5 credits

Syllabus, Bachelor's level, 5SD815

Education cycle
First cycle
Main field(s) of study and in-depth level
Computer Science G1F
Grading system
Fail (U), Pass (G), Pass with distinction (VG)
Finalised by
The Department Board, 30 October 2019
Responsible department
Department of Game Design

General provisions

The course is a freestanding course and an elective course in the Bachelor's Programme in Game Design and Programming, 180 credits.

Entry requirements

22.5 credits in computer science including Programming with C/C++ 1: Introduction, 5 credits and Programming with C/C++ 2: Algorithms, Data Structures and Design Patterns, 5 credits or 10 credits from courses with corresponding content.

Learning outcomes

In terms of knowledge and comprehension, after completed course the student should be able to:

  • describe what makes for a high-quality API,
  • explain what clean and expressive code is, and why it is important,
  • reference established standards and recommended best practices for writing idiomatic code.

In terms of skill and ability, after completed course the student should be able to:

  • design and implement an API in service of a documented user need,
  • apply recommended best practices and established standards for writing idiomatic code,
  • document and motivate choices that have been made during the design, implementation and testing of an API.

In terms of evaluation and analysis, after completed course the student should be able to:

  • critically evaluate an API and code base.


The course teaches students to produce high quality, highly usable and efficient-by-default code for others to use.

The course is taught in C++ and focuses on interface design, clean code and testing. Through lectures and practical application we will understand idiomatic modern C++, expressive code, automated testing and test-driven design.

  • Reading- and writing idiomatic modern C++,
  • Evaluating code quality as a function of correctness, testability, robustness / error handling, expressiveness and cleanliness,
  • Documenting the needs of users, and setting tests to confirm that those needs are met, and finally,
  • Designing- and developing usable and expressive APIs.


Lectures and compulsory in-class workshops, and hand-in work assignments.


The course is graded on the basis of Pass with Distinction, Pass or Fail. Examination is based on active participation during workshops, and project work including the design and development of an API, code reviews, and a final design reports.

For the grade Pass with Distinction, the submitted API, review and design report must be of high technical quality and demonstrating a higher level of analytical- and problem solving ability. The assignments should also be submitted within the deadline.

If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the University's disability coordinator.

Uppsala University does not accept cheating or plagiarism. Suspected incidents of cheating or plagiarism are reported to the Vice-Chancellor, which may issue a formal warning to the student or suspend the student from studies for a certain period.

No reading list found.