Course - Object-oriented programming and algorithms - AIS1002
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)
Recommended previous knowledge
- AIS1001 Mikrokontrollere
- INGA1001 Ingeniørfaglig innføringsemne
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 |
No
Version: 1
Credits:
10.0 SP
Study level: Foundation courses, level I
Language of instruction: Norwegian
Location: Ålesund
- Computer and Information Science
- Engineering
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.
For more information regarding registration for examination and examination procedures, see "Innsida - Exams"