ISEP1003 Software Design (5 op)

Opinnon taso:
Perusopinnot
Arviointiasteikko:
0-5
Suorituskieli:
englanti
Vastuuorganisaatio:
Informaatioteknologian tiedekunta
Opetussuunnitelmakaudet:
2026-2027, 2027-2028

Avainteksti

The course covers basic design principles, patterns, and modelling techniques for creating structured, maintainable, and flexible small-scale software systems.

Kuvaus

This course introduces the principles and practices of software design and the communication of design decisions. Building on prior programming experience, students learn to structure software systems, reason about design trade-offs, and communicate their choices clearly to diverse audiences.

In addition, the course introduces how to use AI/LLM tools judiciously within the software design workflow (e.g., exploring alternative design choices, generating checklists and risk analyses, and summarizing rationale), with explicit guidance on verification, limitations, and responsible/secure use.

Emphasis is placed on moving from code‑level thinking developed during Programming 1 and 2 courses to system‑level reasoning and articulating design choices at multiple levels of abstraction using industry‑standard modeling practices. 

Osaamistavoitteet

After completing the course, the student will be able to:

  1. Apply core software design principles, patterns, and architectural concepts to create reusable, maintainable, and flexible software systems.
  2. Use and interpret the most common Unified Modeling Language (UML) diagrams to model and communicate system structure and behavior.
  3. Recognize recurring problem structures (“patterns”) in complex or ambiguous situations and identify common pitfalls and anti‑patterns, proposing improvements when necessary.
  4. Demonstrate an understanding of how to utilize AI assistance in software design safely and effectively, including considerations of data handling, reliability, transparency, and responsible use. 
  5. Develop the interpersonal and self‑management skills needed to participate authentically and effectively in group and team settings while upholding the collaborators' perspectives, values, and professional identities. The student contributes meaningfully and supports the group in achieving its objectives. 

Oppimateriaalit

Optional:

  • Robillard, Martin P. Introduction to Software Design with Java. Springer, 2026, Third Edition. 

Suoritustavat

Tapa 1

Kuvaus:
1. Lectures/lab sessions, 2. Reading assigned materials, 3. Case studies, 4. Project
Arviointiperusteet:
Grade is based on completed assignments, self-evaluations and group-evaluations.
Valitaan kaikki merkityt osat
Suoritustapojen osat
x

Osallistuminen opetukseen (5 op)

Tyyppi:
Osallistuminen opetukseen
Arviointiasteikko:
0-5
Suorituskieli:
englanti
Ei julkaistua opetusta