Algorithms and Computer Programming with Python

FOR14 Algorithms and Computer Programming with Python

Autumn 2021

  • Topics

    Today business professionals require basic knowledge about algorithms and computer programming. These two concepts, although similar, differ in their scope. An algorithm refers to a set of instructions to be followed to solve a problem. A computer program is a set of instructions that a computer must follow, and thus constrained by what a computer can achieve with its finite nature. The aim of this course is to learn how to define algorithms and to use computer programs to implement them.

    Algorithms and programming are intrinsically involved in the business world. Consider for example the following cases where a combination of business skills and programming is required:

    • Apps are common both as a commercial channel and as a product.
    • In the financial industry, the use of sophisticated algorithms has given birth to the technology of high-frequency trading.
    • A modern data analyst must be capable of processing big amounts of data to provide relevant insights for decision-making.
    • The block-chain technology is allowing the creation of smart contracts with computer programs that define the conditions to exchange digital currency and assets.

    In all these cases, there is a common pattern. There is a problem, algorithms are used to address it, and a software application delivers a solution. In this process, a business background is essential to define the goals and the requirements to properly serve the customers' needs and find a market. However, a technical understanding of what may be achieved with a computer program and what challenges are involved is important in the design process of the software. In this course, we aim to provide an overall understanding of the technical side for business students.

    This course will allow business students not only to communicate with computer science professionals and engineers but also to play an active role in the development of new digital products. We discuss using algorithms and computer programming to solve problems in a business environment. The course is organized as follows. First, we discuss how to define a business problem and the requirements for its solution. Second, we review the principles and fundamental concepts of algorithms. Third, we use Python to translate a generic algorithm to a computer program. This structure covers the basic software development cycle.

  • Learning outcome

    The course will guide the students in the development of the skills needed to address a problem, define a solution approach, and develop a basic computer program. The course also provides the basic knowledge about algorithms and computer programming, preparing the students to interact with other people developing a digital product.

    After completing this course, students:

    (Knowledge):

    • Understand how to use a computer to implement an algorithm.
    • Have an overall view of the key concepts used for the development of modern digital applications.
    • Understand the fundamental concepts about the framework of object-oriented programming.
    • Understand how a specific problem can be broken up into manageable sub-problems and how the problem can be represented/solved with an algorithm.
    • Use standard software practices to document, debug and test a program.

    (Skills):

    • Are able to define the appropriate input and output requirements for a computer program.
    • Are able to design an algorithm to specify a solution approach to a problem.
    • Implement intermediate computer solutions and analytical tasks in Python.

    (General):

    • Are able to communicate with software development teams.
    • Are able to play an active role in the development of software applications.

  • Teaching

    This course will use a blended learning approach, where traditional l ectures, and computer workshops, will be mixed with online material for the students to complement their learning process. 

    It will be possible to follow the course digitally.

  • Recommended prerequisites

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

    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. 

  • Required prerequisites

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

  • Credit reduction due to overlap

    None.

  • Requirements for course approval

    During the semester there will be 4 mandatory practice home assignments.

  • Assessment

    8 hour take home group exam (hackathon, in groups of 1-2 students). The exam will be in English.

  • Grading Scale

    A - F

  • Computer tools

    The course will use Python, which is open source. Details regarding the installation of different packages and additional tools will be provided at the beginning of the semester.

  • Literature

    Course textbook:

    • Python for everyone, 3rd edition, by Cay Horstmann and Rance Necaise, Wiley.

    Suggested readings:

    • Python tutorial online: https://docs.python.org/3/tutorial/
    • Grokking Algorithms: An illustrated guide for programmers and other curious people, 1st Edition, by Aditya Bhargava, Manning Publications.
    • Introduction to computing using Python, 2nd Edition, by Ljubomir Perkovic, Wiley.

Overview

ECTS Credits
7.5
Teaching language
English
Semester

Autumn. Offered Autumn 2021.

Course responsible

Associate Professor Julio C. Góez, Department of Business and Management Science (main course responsible).

Assistant Professor Isabel Hovdahl, Department of Business and Management Science.