IDATT2001

Programming 2

Last taught 2022

Spring

Trondheim

Norwegian

Overview

104 candidates

Average grade

B

3.81

0.01

Pass rate

100%

same

Grade distribution
Average over time
Pass rate over time

About this course

Content

This course will cover the following topics:

  • Collaboration between objects. Lists, search and sorting. Compare objects.
  • Inheritance and polymorphism
  • GUI
  • Data files and serialization
  • Exception handling
  • Functional programming.
  • Design patterns
  • Integrated development environment. Debugging. Unit testing. Version control.
  • Databases and object-relational mapping (ORM)

Learning outcomes

Knowledge

The candidate must:

  • be able to explain how inheritance and polymorphism contribute to the generalization of problem-solving
  • be able to model class diagrams that consist of several classes with aggregation, composition and generalization given a problem
  • be able to show how references and objects are connected in a given program
  • know key concepts in object-oriented and functional programming and be able to account for these
  • be able to explain what an object-relational mapping (ORM) / database solution is and justify when it may make sense to use such solutions

Skills

The candidate must:

  • be able to use inheritance and polymorphism to create flexible, expandable and sustainable solutions
  • be able to use and understand the API documentation to find information about classes and methods (D)
  • be able to use ready-made methods in the API for sorting and searching in tables and lists
  • be able to program an object-oriented solution given a class diagram consisting of several classes with aggregation, composition and generalization
  • be able to use an integrated development environment (IDE), debugger, device testing and version control

The candidate can create a program:

  • with the delegation of tasks between objects and where inheritance and polymorphism are used
  • with simple graphical user interfaces
  • which uses functional programming and higher-level functions
  • using ORM (object-relational mapping)

General competence

The candidate must:

  • be able to apply object-oriented thinking to analyze and solve problems
  • be able to apply elements from functional programming
  • shall be able to assess ethical issues related to OOP, unit testing and version control

Teaching methods

Lectures/workshops and exercises.