Skip to main content

Service Based Software Development (5cr)

Code: 5G00GC13-3002

General information


Enrolment period
17.05.2025 - 30.08.2025
Registration for the implementation has begun.
Timing
25.08.2025 - 21.12.2025
The implementation has not yet started.
Credits
5 cr
Mode of delivery
Contact learning
Unit
Software Engineering
Campus
TAMK Main Campus
Teaching languages
English
Degree programmes
Bachelor's Degree Programme in Software Engineering
Teachers
Jussi Pohjolainen
Person in charge
Esa Kunnari
Course
5G00GC13

Objectives (course unit)

The student understands the concept of service-based software development, knows the common technologies, and has practical skills to create software services in cloud environment. Student knows how to use existing software interfaces and build service-based software systems and is aware of their challenges.

Content (course unit)

Different types and technologies of software services: APIs, microservices, REST, GraphQL. Developing software services to cloud, versioning, and documenting APIs. Developing and consuming services with a modern programming language.

Assessment criteria, satisfactory (1-2) (course unit)

The student knows about some technologies for software services like APIs, microservices, REST, GraphQL. The student can develop a software service to a cloud with an example. The student can produce versioning and a documentation for the APIs with an example. The student can develop a service with an example.

Assessment criteria, good (3-4) (course unit)

The student knows different technologies of software services: APIs, microservices, REST, GraphQL. The student can develop a software service to a cloud. The student can produce versioning and a documentation for the APIs. The student can develop and exploit services with a modern programming language in an application.

Assessment criteria, excellent (5) (course unit)

The student knows comprehensively the different technologies of software services: APIs, microservices, REST, GraphQL. The student can develop different software services to cloud. The student can produce versioning and a comprehensive documentation for the APIs. The student can develop and exploit services with a modern programming language in different applications.

Location and time

See the calendar.

Exam schedules

Week 51 (2025) to Week 04 (2026) in exam.tuni.fi

Assessment methods and criteria

✅ Completion Methods

METHOD 1 (Requires Attendance in Contact Teaching)

- Weekly exercises, which are only accepted if presented in person during contact teaching.
- If more than 40% of the exercises are completed, the grade is 1.
- Completing additional exercises earns extra points for the exam.
- To achieve a grade higher than 1, students must take an exam in exam.tuni.fi.
- Even if the exam result is a fail, the grade remains 1 based on completed exercises.

METHOD 2 (Does Not Require Attendance in Contact Teaching)

- Student go directly to the exam without participating in any contact teaching.
- The exam is graded on a 0 - 5 scale (failing is possible).

Exam

The maximum score for the exam is 24 points.

Students can earn extra points for the exam based on completed exercises:

50% of exercises completed → +1 extra point
70% of exercises completed → +2 extra points
90% of exercises completed → +3 extra points

Exercise points are only awarded if the student participates in the lectures.

The exam is conducted on exam.tuni.fi during the autumn.

Instructions for Earning Exercise Points

Instructions for Earning Exercise Points

See: https://github.com/pohjus/common-course-assets/blob/main/exercise-points-guidelines.md

Assessment scale

0-5

Teaching methods

The course combines lectures, weekly home exercises, and an exam. The lectures cover key programming concepts and principles through practical examples. In the weekly home exercises, students complete programming tasks and practice code review based on peer assessment principles. Code review supports the production of high-quality, readable code and enhances problem-solving skills. The course concludes with a programming exam that assesses the understanding of essential programming principles and practices.

Learning materials

The primary learning materials are the lecture and exercise materials provided during the course.

But if interested here are books that covers the concepts of the course:

“Spring Boot in Action” - Craig Walls
“Spring Start Here” - Laurentiu Spilca
“Full Stack GraphQL Applications” - William Lyon

Student workload

The course is worth 5 ECTS credits, and one credit corresponds to 27 hours of student work. This means the total workload for the course is:

5 ECTS × 27 hours = 135 hours

The course runs over 9 weeks, so the average weekly workload is:

135 hours ÷ 9 weeks = 15 hours per week

This workload includes attending lectures, completing weekly assignments, studying independently and preparing for the final exam.

Content scheduling

Week 43:
Introduction to Service-Based Software Development & Gradle
Key topics: Introduction to Gradle, build automation, recap of Java

Week 44:
RESTful APIs and HTTP
Key topics: REST principles, HTTP methods, CRUD API, JSON and Java, Hello World Spring Boot

Week 45:
Spring Boot Basics
Key topics: Spring Boot dependency injection, RESTful API introduction with Spring Boot

Week 46:
Spring Boot RESTful API
Key topics: Error handling, meaningful HTTP status codes, logging, API versioning, validation

Week 47:
Databases
Key topics: Spring Boot and database connection

Week 48:
API Documentation & Versioning
Key topics: Swagger/OpenAPI, API versioning strategies, error handling, security basics

Week 49:
Introduction to GraphQL in Spring Boot
Key topics: GraphQL vs. REST, schema, queries, mutations, GraphQL implementation

Week 50:
Deploying Services to Render.com
Key topics: Dockerizing apps, cloud deployment, database configuration

Week 51: Exams

Completion alternatives

No optional completion methods available.

Practical training and working life cooperation

This course is designed for learning the fundamentals of programming and does not include actual work placement or direct collaboration with industry. However, the course content reflects current industry requirements. Lectures and home assignments focus on practical programming tasks that enhance students’ problem-solving skills and prepare them for further studies as well as real-world challenges. The instruction emphasizes industry best practices and programming concepts commonly used in professional environments, supporting a smooth transition into working life.

International connections

This course does not include specific international collaboration arrangements or opportunities for internships abroad. However, the course content is based on internationally recognized programming practices and standards, preparing students for the demands of modern work environments. Students are also encouraged to make use of international resources and networks to further expand their skills and knowledge.

Go back to top of page