Algorithms and Computer Programming with Python

FOR14 Algorithms and Computer Programming with Python

Høst 2025

Vår 2025
  • Topics

    In today's business landscape, computer-based tools have become indispensable for professionals. And at the heart of all of these applications lie algorithms - systematic sets of instructions that are aimed at solving computational problems. This course equips its participants with the ability to identify computational problems, and design and implement efficient algorithms to solve them.

    The intertwining of algorithms and programming within the business realm is evident across various domains. For instance:

    • In finance, the utilization of advanced algorithms has led to the emergence of high-frequency trading, revolutionizing market dynamics.
    • Modern data analysts are tasked with processing vast volumes of data to extract actionable insights crucial for informed decision-making.
    • Blockchain technology facilitates the creation of smart contracts, leveraging computer programs to automate transactions involving digital assets.
    • Network analysis is used to detect large-scale fraud.

    Across these scenarios, a common thread emerges: the identification of a problem, the design of an algorithm to address it, and the delivery of solutions through software implementations. While a solid business background is essential for defining objectives, a nuanced understanding of the power of algorithms and programming is equally vital to design software that solves the task at hand.

    This course provides business students with a basic understanding of the technical aspects underlying digital innovation by teaching:

    • The fundamentals of programming using Python, one of the most widely used programming languages at the moment.
    • The ability to detect computational problems hidden in various scenarios.
    • The conceptual tools to design and implement efficient algorithms to solve basic computational problems related to networks and data.

    This will further empower the participants to collaborate effectively with computer science professionals and engineers, actively contributing to the development of innovative digital products in business and economics contexts, and beyond.

  • Learning outcome

    Upon completion of this course, students can:

    Knowledge

    • Exhibit a basic understanding of the fundamental concepts underpinning the development of contemporary digital applications.
    • Elaborate on the fundamental building blocks of Python: (1) the control flow structures and (2) the fundamental data structures: compare them to each other, and list their advantages and disadvantages.
    • Discuss several algorithmic strategies for solving real-world problems related to networks and data.
    • Explain the essential principles within the object-oriented programming framework.

    Skills

    • Use Python to implement algorithms effectively.
    • Devise efficient algorithmic solutions to problems arising in several real-world scenarios.
    • Analyze the efficiency of basic computer programs and estimate whether they satisfy given requirements.
    • Apply standard software practices adeptly, including documentation, debugging, and program testing.

    General competence

    • Communicate proficiently with software development teams, facilitating productive collaboration.
    • Play an active and contributory role in the development lifecycle of software applications, leveraging acquired skills and knowledge effectively.

  • Teaching

    The sessions in this course are a seamless blend of lectures and coding exercises, utilizing online resources. To effectively meet the course's learning objectives, students are encouraged to engage in intensive individual and group study and practice.

    The course is designed to be conducted on campus, with students attending in person.

  • Recommended prerequisites

    No prerequisites are required to take this course. It is suggested as a complement to MET3.

    This course is an introduction for students to the fundamental concepts of algorithms and programming, as such it is self-contained and requires no previous knowledge.

  • Credit reduction due to overlap

    None.

  • Compulsory Activity

    There will be two assignments given during the semester that must be completed and approved for course approval.

  • Assessment

    4 hours digital school exam with access to Python. The exam must be answered in English.

    Retake: compulsory activity from a previous semester is valid for the exam.

    An assessment will not be organised in the non-teaching semester (spring).

  • Grading Scale

    A - F

  • Computer tools

    The course will use Python, which is open source. Students are recommended to install Visual Studio Code. More details regarding the installation of different packages and additional tools will be provided at the beginning of the semester.

  • Literature

    • Al Sweigart - Automate the Boring Stuff with Python, 2nd Edition. (Free official online edition at https://automatetheboringstuff.com/).
    • Tim Roughgarden - Algorithms Illuminated. Part 2: Graph Algorithms and Data Structures. (The full book with Parts 1-4, called ``omnibus edition'', also works but Part 2 covers all necessary material.)
    • Links to additional material such as articles/reports/chapters and to coding materials will be posted on canvas and handed out in lectures.

  • Permitted Support Material

    All written support material permitted (category III)

    Calculator

    One bilingual dictionary (Category I)

    All in accordance with Supplementary provisions to the Regulations for Full-time Study Programmes at the Norwegian School of Economics Ch.4 Permitted support material https://www.nhh.no/en/for-students/regulations/https://www.nhh.no/en/for-students/regulations/and https://www.nhh.no/en/for-students/examinations/examination-support-materials/https://www.nhh.no/en/for-students/examinations/examination-support-materials/

Oppsummering

Studiepoeng
7.5
Undervisningsspråk
English
Teaching Semester

Autumn. Offered autumn 2025

Course responsible

Assistant Professor Lars Jaffke, Department of Business and Management Science.