IDATG1003

Programming 1

Autumn

Gjøvik

Norwegian

Overview

53 candidates

Average grade

B

3.55

0.17

Pass rate

100%

2 points

Grade distribution
Average over time
Pass rate over time

About this course

Content

The course will cover the following topics:

  • Basic principles of object-oriented design and object-oriented programming (OOP) - definitions and concepts in OOP (classes, objects, encapsulation)
  • Modelling - Datatypes, logical conditions, loops, logical and arithmetic operations, read and write operations
  • Arrays, lists and collections
  • Interaction between objects
  • Lambda expressions, streams and functional programming used with collections
  • Basic exception handling
  • Debugging and unit-testing
  • Introduction to Integrated Development Environment (IDE)

Learning outcomes

Knowledge

The candidate:

  • can demonstrate knowledge in OOP.
  • can explain what a software program is.
  • has knowledge of principles such as encapsulation, modularization and interaction of objects within object-oriented programming.
  • can explain the concepts of modular architecture and its importance in software program design.
  • can explain good design practices such as coupling and cohesion.
  • has knowledge of typical life cycles of software design at a high level (design, development and testing).
  • can model a class diagram for a given problem and can create basic UML diagrams (e.g., activity diagram, class diagram, sequence diagram, package diagrams).

Skills

The candidate:

  • can set up a programming environment to develop, test and run object-oriented programs
  • can use professional tools for software development, including AI-based tools, in a critical and reflective manner
  • can create structured and well-documented code based on principles of good design practices
  • can make use of classes, controls and interaction between objects
  • can reuse classes from existing libraries and find relevant classes in API documents
  • can apply basic object-oriented programming paradigms to analyse and solve simple problems.
  • can apply elements from functional programming
  • can test and analyse software programs through unit-testing
  • can write robust code including throwing and catching exceptions (simple exception handling)
  • can use an Integrated Development Environment (IDE) and debugger along with other tools to assure the quality of code
  • can apply the concepts of source control and actively use it (theory taught in IDATG1004)

General competence

Candidate:

  • can explain and make use of knowledge for solving problems in simple application scenarios and across different topics.

Teaching methods

Teaching activities every week:

  • Lectures using student-active learning methods such as teacher-led programming tasks and co-coding (livecoding) to solve programming tasks.
  • Guided lab sessions will be conducted with teaching assistants with individual mentoring and assignment solving.

Mandatory assignments: Mandatory assignments will be provided and 90 % of the assignments must be approved to qualify for the final exam.