Please note! Course description is confirmed for two academic years, which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.

LEARNING OUTCOMES

After successfully completing the course you have gained further experience in programming and appreciation for problem solving with computers.
You will be able to describe the structure of a programmable computer and how it may be built using logic circuits. You can define computational resources (time, space, parallelism, ...) and connect these to the physical limitations and possibilities of the computer. You are able to analyse and explain the functionality and performance of basic programs and express the computational resources needed in terms of bounds. You can explain how basic data types are represented in a computer (bytes, integers, floating point numbers, ...). You will also have gained further familiarity with recursion, functional programming, and basic parallel computing. You will be able to employ these techniques in your own programming. You can describe the role of interfaces and collections. You have gained experience in debugging, testing, and explaining computer code. You are also familiar with basic searching and sorting tasks common in programming.

 

Credits: 5

Schedule: 24.02.2025 - 30.05.2025

Teacher in charge (valid for whole curriculum period):

Teacher in charge (applies in this implementation): Lukas Ahrenberg

Contact information for the course (applies in this implementation):

CEFR level (valid for whole curriculum period):

Language of instruction and studies (applies in this implementation):

Teaching language: English. Languages of study attainment: English, Finnish

CONTENT, ASSESSMENT AND WORKLOAD

Content
  • valid for whole curriculum period:

    Principles of binary representation of integers and floating point numbers. Bit-level operations. Gates as basic logic operators and how these can be combined to create circuits (e.g. for an adder). General computer architecture from gate level to high-level programming. Implementation of simpler functions in assembly language. The big-O definition, and concept of computational resources. Aspects of functional programming and recursion. Simple parallel programming constructs. Independent programming, knowledge of computer science, and problem-solving with computers.

Assessment Methods and Criteria
  • valid for whole curriculum period:

    Programming assignments and an exam

Workload
  • valid for whole curriculum period:

    Lectures: 24 h. Exercise sessions: 36 h; Independent work: 72 h, Exam: 3 h. Total 135 h [5 cr]

DETAILS

Study Material
  • valid for whole curriculum period:

    Listed on the course MyCourses page.

Substitutes for Courses
Prerequisites

FURTHER INFORMATION

Further Information
  • valid for whole curriculum period:

    Teaching Language: English

    Teaching Period: 

    2024-2025 Spring IV - V
    2025-2026 Spring IV - V