EPN

MEK3100 Programming 2 Course description

Course name in Norwegian
Programmering 2
Study programme
Bachelorstudium i ingeniørfag - bygg / Bachelorstudium i ingeniørfag - elektronikk og informasjonsteknologi / Bachelorstudium i ingeniørfag - bioteknologi og kjemi / Bachelorstudium i ingeniørfag - maskin
Weight
10.0 ECTS
Year of study
2024/2025
Curriculum
FALL 2024
Schedule
Course history

Introduction

This course is a continuation of MEK1300 - Programming 1 and goes deeper into more advanced topics in Python such as Object-Oriented Programming (Abstraction, Encapsulation, Inheritance, and Polymorphism), Functional Programming (Lambda expressions, Map, Filter, Zip), List Comprehension, Generators, Decorators, and Metaprogramming. 

Recommended preliminary courses

MEK1300 - Programming 1

Learning outcomes

After completing the course, students are expected to have achieved the following learning outcomes defined in terms of knowledge, skills, and general competence.

Knowledge

The students:

  • will have a good overview of the Python programming language and can use it to solve real-life problems of moderate size. 

  • can understand the principles of object-oriented programming features (e.g., class, object, methods, inheritance, polymorphism, encapsulation, etc.) and can use these to write object-oriented codes. 

  • can understand the difference between functional and object-oriented features of Python and know when it is appropriate to use each. 

  • can develop robust and reliable programs with good object-oriented design, find alternative solutions for a given problem, and evaluate the pros and cons of the different solutions. 

Skills

The students:

  • can write clear and efficient programs in Python.

  • can identify and correct errors in their own programs.

  • can understand and familiarize themselves with other people's programs in order to troubleshoot, and modify them. 

General competence

The students:

  • can create effective programs in Python and solve relevant issues. 

  • can do a code review, document errors, and suggest improvements. 

  • can critically assess different programming approaches for a given problem. 

Teaching and learning methods

Lectures and exercises.

Course requirements

The following work requirement is mandatory and must be approved to sit for the exam:

  • Submission of one programming assignment.

Assessment

An Individual written exam of three hours.

Exam results can be appealed.

In the event of a resit or rescheduled exam, an oral examination may be used instead. In case an oral exam is used, the examination result cannot be appealed.

Permitted exam materials and equipment

No aids are allowed.

Grading scale

Graded scale A-F.

Examiners

One internal examiner. External examiners is used regularly. 

Course contact person

Hadi Zahmatkesh

Overlapping courses

The course has 2 ECTS overlaps with the course ELI1500 Digital Systems.