Syllabus for API Design and Best Practices

API-design och best practices

  • 7.5 credits
  • Course code: 5SD815
  • Education cycle: First cycle
  • Main field(s) of study and in-depth level: Computer Science G1F

    Explanation of codes

    The code indicates the education cycle and in-depth level of the course in relation to other courses within the same main field of study according to the requirements for general degrees:

    First cycle

    • G1N: has only upper-secondary level entry requirements
    • G1F: has less than 60 credits in first-cycle course/s as entry requirements
    • G1E: contains specially designed degree project for Higher Education Diploma
    • G2F: has at least 60 credits in first-cycle course/s as entry requirements
    • G2E: has at least 60 credits in first-cycle course/s as entry requirements, contains degree project for Bachelor of Arts/Bachelor of Science
    • GXX: in-depth level of the course cannot be classified

    Second cycle

    • A1N: has only first-cycle course/s as entry requirements
    • A1F: has second-cycle course/s as entry requirements
    • A1E: contains degree project for Master of Arts/Master of Science (60 credits)
    • A2E: contains degree project for Master of Arts/Master of Science (120 credits)
    • AXX: in-depth level of the course cannot be classified

  • Grading system: Fail (U), Pass (G), Pass with distinction (VG)
  • Established: 2019-10-30
  • Established by: The Department Board
  • Applies from: week 27, 2020
  • 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.
  • Responsible department: Department of Game Design

Decisions and guidelines

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

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.

Content

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.

Instruction

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

Assessment

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.

Reading list

The reading list is missing. For further information, please contact the responsible department.