IDATG2001
Programming 2
Last taught 2022
Spring
Gjøvik
Norwegian
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.