Algorithms and computer programming with Python

FOR14 Algorithms and computer programming with Python

  • Topics

    Topics

    Today business professionals require basic knowledge of algorithms concepts and computer programming. These two concepts differ in their scope. An algorithm refers to a set of instructions to be followed to solve a problem. A computer program is as a set of instructions that a computer must follow. 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 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 consists of three modules. 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 will cover the software development basic cycle.

  • Learning outcome

    Learning outcome

    The course provides the students with the skills to address a problem, define a solution approach, and develop a basic computer program to implement it. The course also provides with the basic knowledge about algorithms and computer programming, allowing them to interact with other people developing a digital product.

    After completing this course, students:

    (Knowledge):

    • Understand how to use a computer to implement a problem solution.
    • Have an overall view of the key algorithm concepts currently used for the development of modern digital applications.
    • Understand the framework of object-oriented programming.
    • Understand how a specific problem can be broken up into manageable subproblems and how the problem can be represented/solved with an algorithm.

    (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

    Teaching

    Lectures, computer workshops, guest lectures, team project.

  • Recommended prerequisites

    Recommended prerequisites

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

  • Required prerequisites

    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. 

  • Assessment

    Assessment

    The course assessment will be a final group-based portfolio consisting of a set of problems and exercises delivered in four different submissions through the semester (2-3 students in each group). One final grade will be given on the portfolio. The submissions must be in English and must be submitted in the same semester. For students who wish to retake the course, all the group-based portfolio submissions must be retaken.

  • Grading Scale

    Grading Scale

    A - F

  • Computer tools

    Computer tools

    The course will use Python, which is open source. Details regarding the installation of different packages and additional tools will be provided in the computer workshops.

  • Semester

    Semester

    Autumn. Offered Autumn 2018.

  • Literature

    Literature

    Suggested readings:

    • Grokking Algorithms: An illustrated guide for programmers and other curious people, 1st Edition, by Aditya Bhargava, Manning Publications, 2016.
    • Problem Solving with Algorithms and Data Structures using Python, By Brad Miller and David Ranum, Luther College. Franklin, Beedle & Associate, 2nd Edition, 2011.  (Available online: http://interactivepython.org/runestone/static/pythonds/index.html)
    • Python tutorial online: https://docs.python.org/3/tutorial/

Overview

ECTS Credits
7.5
Teaching language
English
Semester
Autumn

Course responsible

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