Subject description PG3302

Software Design

2023 Fall

  • Subject code

    PG3302
  • Version

    1
  • English name

    Software Design
  • Subject points

    7.5
  • Study level

    First cycle degree
  • Semester

    3rd semester- Bachelor in Information Technology - Programming

    5th semester - Bachelor in Data Science

  • Number of semesters

    1
  • Subject's supervisor

    Noha El-Ganainy
  • Decision

    Translated version. The Norwegian version of this course description is approved by The Education Committee 24.04.2023 UU/EIT-case no. 24/23.

Introduction

The course will enable the students to design and further develop larger software systems in line with known techniques for modeling, testing and implementation.

Learning Outcomes

Knowledge

The student...

  • knows the background and content of the UML standard, with focus on class diagrams.
  • understands Unit Testing
  • can explain the principles of test-driven development (TDD)
  • knows what design patterns are, and is able to identify some important design patterns when the student sees them in code
  • knows what refactoring is
  • knows what multi-threading is
  • understands how locking can be used to program thread-safe applications
  • can explain the principles of event handling

Skills

The student...

  • has an overview of and can use the basic syntax in an object-oriented programming language
  • masters the class diagram and can use UML to design application architecture
  • can implement common design patterns in code
  • can apply design guidelines, such as layers and the most common GRASP or SOLID principles
  • can carry out refactoring on existing code
  • can implement applications that use multiple threads
  • can master an integrated development environment (IDE)
  • can write and edit source code with this tool

General competence

The student...

  • can reflect on multi-threading and its uses
  • can collaborate with other programmers to develop good programs and to further develop their skills
  • can assess the quality of existing programs and assess structural improvements

Degree

Bachelor in Information Technology - Programming

Bachelor in Data Science

Learning activities

Lectures, lab exercises and self-study.

Student work load

Participation in lectures and exercises - 48 hours

Self study - 104 hours

Execution and preparation for the exam - 48 hours

Recommended use of time in total - 200 hours

Compulsory assignments

No compulsory activity in this course.

Examination

Exam: Semester assignment in group

Duration: 2-12 weeks

Grading scale: The Norwegian grading system uses the graded scale A - F, where A is the best grade, E is the lowest pass grade and F is fail

Weighting: 100 % of the overall grade

Support materials: All support materials are allowed

Re-sit examination

Re-sit exam: revise and resubmit an adapted or new individual semester assignment

Comments

Recommended prerequisites: basic skills in object-oriented programming.

The teaching will be given in Norwegian or English depending on the lecturer.