FOR14 Algorithms and computer programming with Python
Spring 2019Autumn 2019
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.
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:
- 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.
- 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.
- Are able to communicate with software development teams.
- Are able to play an active role in the development of software applications.
Lectures, computer workshops, guest lectures, team project.
No prerequisites are required to take this course. It is suggested as complement for MET3 and SOL17.
This course is an introduction for students to the fundamental concepts of algorithms and programming, as such is self-contain and no previous knowledge.
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.
A - F
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.
- 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/
- ECTS Credits
- Teaching language
Autumn. Offered Autumn 2018.
Assistant Professor Julio C. Góez, Department of Business and Management Science