Subject description PG3302
Software Design
2023 Fall
Subject code
PG3302Version
1English name
Software DesignSubject points
7.5Study level
First cycle degreeSemester
3rd semester- Bachelor in Information Technology - Programming
5th semester - Bachelor in Data Science
Number of semesters
1Subject's supervisor
Noha El-GanainyDecision
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.