Course syllabus for Object-oriented programming and design

The course syllabus contains changes
See changes

Course syllabus adopted 2023-11-06 by Head of Programme (or corresponding).

Overview

  • Swedish nameObjektorienterad programmering och design
  • CodeTDA553
  • Credits7.5 Credits
  • OwnerTKITE
  • Education cycleFirst-cycle
  • Main field of studySoftware Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language Swedish
  • Application code 52128
  • Open for exchange studentsNo
  • Only students with the course round in the programme overview.

Credit distribution

0122 Examination 3 c
Grading: TH
3 c
  • 09 Jan 2024 pm J
  • 23 Aug 2024 pm J
0222 Laboratory 3 c
Grading: UG
3 c
0322 Written and oral assignments 1.5 c
Grading: TH
1.5 c

In programmes

Examiner

Go to coursepage (Opens in new tab)

Course round 2

  • Teaching language Swedish
  • Application code 52150
  • Open for exchange studentsNo
  • Only students with the course round in the programme overview.

Credit distribution

0122 Examination 3 c
Grading: TH
3 c
  • 14 Mar 2024 pm J
  • 23 Aug 2024 pm J
0222 Laboratory 3 c
Grading: UG
3 c
0322 Written and oral assignments 1.5 c
Grading: TH
1.5 c

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

General entry requirements for bachelor's level (first cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

The same as for the programme that owns the course.
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

This course directly follows the course TDA548 Introductory software development, which, or equivalent, is the prerequisite for this course.

Aim

Software development is central to a software engineer. This course presents the object-oriented programming paradigm and puts emphasis on the design of object-oriented programs.

Learning outcomes (after completion of the course the student should be able to)

Knowledge and understanding
  • Describe and explain object-oriented design principles.
  • Recognize and explain different object-oriented design patterns, including their purpose and effect.
  • Explain concepts in object-oriented design using adequate terminology
  • Communicate object-oriented design in writing, as well as visually using a graphical modelling language (UML)

Skills and abilities
  • Use and explain basic object-oriented concepts, such as classes and objects, primitives and references, methods and constructors, variables and fields, etc.
  • Use and explain more advanced language mechanisms and techniques, such as exceptions, generics, threads, defensive copying, etc.
  • Use and explain inheritance and parametric types, and associated mechanisms, to achieve polymorphism and code reuse.
  • Apply design principles and design patterns to achieve sound object-oriented design.
  • Design, implement and modify object-oriented programs for a given domain in a sound manner with respect to correctness, modifiability and reusability.
  • Perform and describe testing of object-oriented programs.
  • Form a clear and well structured reasoning text, following basic principles for argumentation and discussion
  • Identify and apply effective methods supporting an inclusive cooperation in group work

Judgement and approach
  • Argue for design- and implementation choices, in accordance with principles for good object-oriented design
  • Analyse and evaluate code according to sound object-oriented design and implementation principles
  • Reflect over different strategies promoting an inclusive cooperation in group work

Content

The course presents the object-oriented programming paradigm and places great emphasis on program construction and design.

The concepts and techniques are expanded and deepened: methods, objects, abstract and anonymous classes, initialisation, polymorphism, overloading and overriding, implementation and interface inheritance, use of generic types, construction of simple generic classes, exceptions, immutability and defensive copying, and introduction to threads and thread safety etc.

Handling of states, dependencies, modular programs, programming techniques, mutability, design principles, design patterns and the MVC model.

To communicate design, basic parts of the Unified Modelling Language (UML) is used.

Organisation

Exercises, lectures and computer assignments, with supervision.

Literature

Information about literature will be posted on the course web page before the course starts.

Examination including compulsory elements

The course is examined through:

- Written examination (3 hp, grading scale: U, 3, 4, 5)
- Laboratory assignment (3 hp, grading scale: U, G)
- Written assignment (1.5 hp, grading scale: U, 3, 4, 5)

Computer laboratory assignments are conducted in groups of typically 3 students.

The whole course is graded with the scale: Failed (U), 3, 4, 5. To pass the course, at least a grade 3 on both the written examination and the written assignment must be achieved, as well as a passing grade (G) on the computer laboratory assignments. The grade for the whole course is based on the grades for the written examination and written assignment. The grade for the written exam has more weight in the grade for the whole course.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.

The course syllabus contains changes

  • Changes to course rounds:
    • 2023-06-21: Examinator Examinator changed from Robin Adams (robinad) to Magnus Myreen (myreen) by Viceprefekt
      [Course round 1]
    • 2023-05-11: EDU_LANG EDU_LANG changed from en to sv by Utbildningssekreterare/examinator
      [Course round 1]
    • 2023-05-10: EDU_LANG EDU_LANG changed from en to sv by Utbildningssekreterare/examinator
      [Course round 2]
  • Changes to course:
    • 2023-11-03: Examination Examination changed by PA
      Update information about examination in English
    • 2023-10-31: Examination Examination changed by PA
      Update information about examination