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
            
            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).
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
            
            Literature:
- A book about functional programming in F#.
Software:
Other:
- Some papers about the general programming concepts and languages.
- 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
            
                
                01-02-2024 00:00
            
            Course type
            
                
            
            Keywords
            
                
                Type systems, traits, lambda functions, higher-order functions, pattern matching, type interference, currying, closures, web services, microservices, etc.