FOR14 Algorithms and Computer Programming with Python
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 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 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.
- Use standard software practices to document, debug and test a program.
- 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.
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.
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.
Requirements for course approval
During the semester there will be 4 mandatory practice home assignments.
8 hour take home group exam (hackathon). The exam will be in English.
A - F
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.
- Python for everyone, 3rd edition, by Cay Horstmann and Rance Necaise, Wiley.
- 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.
- ECTS Credits
- Teaching language
Autumn. Offered Autumn 2020.
Associate Professor Julio C. Góez, Department of Business and Management Science