course-details-portlet

AIS1002 - Object-oriented programming and algorithms

About

This course is no longer taught and is only available for examination.

Examination arrangement

Examination arrangement: Oral Examination
Grade: Letter grades

Evaluation Weighting Duration Grade deviation Examination aids
Oral Examination 100/100

Course content

The course consists of two main topics: object-oriented programming and algorithms and data structures.

Object-oriented programming covers the following:

  • Basic object-oriented program design and object-oriented programming
  • Basic concepts related to object-oriented programming (classes, class hierarchy, objects, encapsulation)
  • Introduction to modelling and design
  • Cooperation between objects
  • Introduction to integrated development environments (IDEs), debugging, unit testing, and version control

Algorithms and data structures covers the following:

  • Basic techniques and algorithms (e.g., recursion, sorting, search, hashing, graph algorithms, other well-known algorithms)
  • Basic data structures (a selection from table, array, list, queue, stack, tree, graph)
  • Introduction to complexity theory (O-notation, time and memory complexity)

Note that the topics may not be taught sequentially but may be interleaved.

The amount of in-depth study of each topic may vary each year. Other topics may also be presented. More details on the curriculum will provided during the start of semester.

Learning outcome

Knowledge

  • The candidate can explain simple concepts within object-oriented programming such as encapsulation, modularisation, and cooperative objects
  • The candidate can formulate principles for good design of code (coupling/cohesion), layered architecture, code quality and good coding style, and why this is important in software design
  • The candidate can explain typical disciplines in software development (life cycle of a program) on a high level
  • The candidate can model class diagrams consisting of several classes with aggregation and composition, given a particular problem
  • The candidate can identify and compare basic algorithms, e.g., for sorting, search, and graphs
  • The candidate can describe and explain various basic data structures (e.g., array, table, linked list, queue, stack, tree, graph)
  • The candidate can explain the concept of recursion/recursive method in problem solving and programming
  • The candidate can classify and compare simple algorithms complexity on a high level

Skills:

  • The candidate can apply a basic object-oriented mindset for analysis and problem solving
  • The candidate can configure simple programming environments for development, testing, and running object-oriented programs
  • The candidate can construct structured, clear and well-documented programs based on principles for good code design
  • The candidate can apply classes (including from libraries), control structures and cooperation between objects, as well as navigate in API documentation
  • The candidate can use an integrated development environment (IDE), debugger, unit tests, and version control
  • The candidate can use basic algorithms for solving practical programming problems efficiently
  • The candidate has some experience with advanced data structures, in particular trees and graphs

General competence

  • The candidate can use computational thinking and cybernetics systems thinking for solving engineering problems and for breaking larger problems into smaller ones that can be solved separately and joined together as more complex systems.
  • The candidate can discuss ethical aspects of the use of algorithms for automated decision-making.

Learning methods and activities

Learning activities generally include a mix of lectures, tutorials and practical lab/project work. A constructivist approach for learning is endorsed, with focus on problem solving and practical application of theory.

Further on evaluation

The final grade is based on an overall evaluation of the portfolio, which consists of a number of works delivered through the semester. The portfolio contains assignments that are carried out, digitally documented and submitted during the term. Both individual and team assignments may be given. Assignments are designed to help students achieve specific course learning outcomes, and formative feedback is given during the period of the portfolio. The re-sit exam is an oral exam.

Specific conditions

Admission to a programme of study is required:
Automation and Intelligent Systems - Engineering (BIAIS)

Required previous knowledge

The course has no prerequisites.

It is a requirement that students are enrolled in the study programme to which the course belongs.

Course materials

An updated course overview, including curriculum, is presented at the start of the semester and will typically also include English material.

Credit reductions

Course code Reduction From To
IDATA1001 6.5 AUTUMN 2021
IDATA2302 3.5 AUTUMN 2021
AIS1003 7.5 AUTUMN 2023
More on the course

No

Facts

Version: 1
Credits:  10.0 SP
Study level: Foundation courses, level I

Coursework

Language of instruction: Norwegian

Location: Ålesund

Subject area(s)
  • Computer and Information Science
  • Engineering
Contact information
Course coordinator: Lecturer(s):

Department with academic responsibility
Department of ICT and Natural Sciences

Examination

Examination arrangement: Oral Examination

Term Status code Evaluation Weighting Examination aids Date Time Examination system Room *
Spring ORD Oral Examination (1) 100/100

2024-06-03 - 2024-06-04

Room Building Number of candidates
  • * The location (room) for a written examination is published 3 days before examination date. If more than one room is listed, you will find your room at Studentweb.
  • 1) Siste gangs eksamen. Faglærer orienterer om eksamen via Blackboard.
Examination

For more information regarding registration for examination and examination procedures, see "Innsida - Exams"

More on examinations at NTNU