After completing the course, the student is able to participate in the implementation of a larger software product. The programming language is Java (no prior experience needed).
Course contents
- Modularity: Principle of locality, abstraction, encapsulation, interface, namespaces, design by contract
- Inheritance: Base and subclasses, ownership of objects, dynamic binding
- Team work: Version control in modern software development, division of labour
- Software quality: Unit testing
- Exceptions, exception guarantees
- Use of generic programming
Learning outcomes
After completing the course, the student
- knows how to use the typical programming tools and is able to explain their roles in software work.
- knows how to program modules that are in connection to their environment through predefined interfaces.
- is able to interpret interface documentation and understands the principles of design by contract.
- knows more programming language structures than before and is able to use them in their programs.
- can explain the concept of inheritance and is able to use it in their programs.
Completion methods
To complete the course, the student must obtain enough points from exercises and pass an electronic exam. Teaching is small groups in Tampere. (it might be possible to attend in Pori or Seinäjoki).
The course material is available in Finnish and English.
More information in the Tampere University study guide.
Previously the course was under the name Programming 3: Interfaces and techniques.
You can get a digital badge after completing this course.