Print

Programming Concepts and Languages

Code

IT-PCL1

Version

2.2

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

Topics:
Overview of programming concepts, paradigms and languages
Imperative paradigm with Imperative Programming in F# and Python
Concurrent paradigm with Concurrent Programming in F#
Functional paradigm with Functional Programming in F# and Python
Object-Oriented paradigm with Object-Oriented Programming in Python
Python Distributed Computing in a nutshell (Web services, Microservices, Django, Flask, RabbitMQ).

Knowledge

Having successfully completed this course, the student should be able to:

- describe the key concepts and have a basic understanding of different programming paradigms and languages.
- understand and use the functional paradigm.
- develop small and medium size programs/apps using F# and Python programming languages.
- Understand and use the Python language with various middleware such as Django, Flask, and RabbitMQ

Skills

Having successfully completed this course, the student should be able to:

- use the different programming paradigms to solve a particular programming problem.
- Use one of the Web Frameworks to develop a distributed application.

Competences

​-

Topics

Teaching methods and study activities

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

Required workload for students is estimated to 150 hours.

Resources

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

Evaluation

Examination

The final examination is a three-hour written examination, with internal assessment.

Grading criteria

​Graded according to the 7-point grading scale.
Examination accounts for 100% of the final grade.

Additional information

Responsible

Joseph Okika

Valid from

2/1/2023 12:00:00 AM

Course type

Keywords

Type systems, traits, lambda functions, higher-order functions, pattern matching, type interference, currying, closures, web services, microservices, etc.