Print

Programming Concepts and Languages

Code

IT-PCL1

Version

3.0

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

​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.

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).​

Resources

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

Evaluation

Examination

​Exam prerequisites
None

Type of exam
Individual written exam, three hours
Internal assessment

Tools allowed
All aids are allowed included access to online material. However, it is not allowed to use AI tools such as ChatGPT and similar AI and Machine Learning driven tools and chatbots.

Re-exam:
Same as the ordinary exam.

Grading criteria

​Grading based on the Danish 7-point scale. 

Additional information

Responsible

Joseph Okika (jook)

Valid from

2/1/2024 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.