Print

Programming Concepts and Languages

Code

IT-PCL1

Version

1.1

Offered by

ICT Engineering

ECTS

5

Prerequisites

Considerable programming experience with e.g. Java, C# and C.

Main purpose

The purpose of the course is to qualify the student to:
  • Understand various programming concepts, paradigms and get knowledge about how different paradigms appear in different programming languages
  • Get thorough knowledge about the functional programming paradigm
  • Apply different paradigms to specific problems in different languages

Knowledge

Skills

Competences

Topics

Overview of programming concepts, paradigms and languages
Imperative paradigm with Imperative Programming in Python
Object-Oriented paradigm with Object-Oriented Programming in Scala
Concurrent paradigm with Concurrent Programming in Erlang
Functional paradigm with Functional Programming in F#
Integration of different programming paradigms in system development.
 

Teaching methods and study activities

Activities will vary between theory, programming exercises, and mini project work.

Resources

Some papers about the general programming concepts and languages.
A book about functional programming in F#.
Lesson notes.

Evaluation

Written programming hand-in exercises and presentations: 30 %.

Examination

​Three-hour written examination (70 %) and hand-in exercises/presentations (30 %) with marks according to the 7-point grading scale.

External examination.

Grading criteria

According to the 7-point grading scale.
 
Mark 12 Awarded to students who have shown excellent comprehension of the below-mentioned competences. A few minor errors and shortfalls are acceptable.
 
Mark 02 Awarded to students for the just acceptable level of comprehension of the required competences.
 

Additional information

Required workload for students is estimated to 150 hours.

Responsible

Joseph Okika

Valid from

8/1/2019 12:00:00 AM

Course type

6. semester
7. semester
Electives

Keywords

Types, type systems, classes, traits, lambda calculus, functions and higher-order functions, pattern matching, type inference, currying, closures etc.