Algorithms and Computer Programming with Python

FOR14 Algorithms and Computer Programming with Python

Spring 2024

Autumn 2024
  • 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 highfrequency 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 to communicate with computer science professionals and engineers, and 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.

  • 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:

    • Identify how to use a computer to implement an algorithm.
    • Recognize the key concepts used for the development of modern digital applications.
    • Identify the fundamental concepts of the object-oriented programming framework.
    • Break down a specific problem into manageable sub-problems and solve the problem with an algorithm.

    Skills:

    • Use standard software practices to document, debug and test a program.
    • Determine the appropriate input and output requirements for a computer program.
    • Formulate an algorithm to specify a solution approach to a problem.
    • Develop intermediate computer solutions and analytical tasks in Python.

    General competence:

    • 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 traditional lectures, and computer workshops, mixed with online material for the students to complement their learning process. 

    The course is planned to be developed on campus with students present.

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

  • Credit reduction due to overlap

    None.

  • Compulsory Activity

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

  • Assessment

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

    You may reuse any code you have from previous assignments. However, the use of code from any other source is not allowed and it will be considered cheating.

    This exam can only be taken in the teaching semester (autumn).

  • 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/

Overview

ECTS Credits
7.5
Teaching language
English
Semester

Autumn. Will be offered Autumn 2023.

Course responsible

Associate Professor Julio C. Góez, Department of Business and Management Science.