In the beginning of week two we will concentrate on programming and work distribution from the point of view of code. We will consider interfaces, and design and documentation of them. In interfaces design we will focus on design-by-contract: to consider an interface as a contract. We will concentrate on the responsibilities of a caller (precondition) and an implementor (postcondition), and when an object can be expected to be in its right mind (invariant).
In addition we will discuss how the interface as a contract affects testing. Also, what other stuff needs to be agreed upon in general is discussed.