Service Based Software Development (5cr)
Code: 5G00GC13-3001
General information
- Enrolment period
- 15.04.2025 - 13.10.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
- Groups
-
23I260EADegree Programme in Software Engineering
- 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
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.