Python. Functional Programming (Stepik)

Python. Functional Programming (Stepik)

The course is about functional elements available in Python and their usage. Functional programming is a programming paradigm -- that is, a style of building the structure and elements of computer programs in some distinct way.

In some sense, any programming style may be characterized by the way that abstractions are built within that style. For example, the widespread Object Oriented Programming (OOP) paradigm is about building data-based abstractions, making "smart data" in a way, treating the computation as a process of interactions within a system of complex entities called objects. Functional programming is about building procedure-based abstractions, treating the computation as a chain of evaluations of functions. These functions are somewhat close to the mathematical ones. Code written in functional manner emphasizes reliability, reusability, abstractness.
A style of designing a program is essentially a style of designing solutions for problems. If you are not familiar with the functional manner of problem solving, exploring it can teach you a lot of patterns, approaches, and tools for program design. You should be warned, however, that no particular approach may be thought of as "the silver bullet". But you can still successively combine various techniques, including functional programming techniques, to approach better results.
I invite you to discover the basic tools that will allow you to implement some of the functional programming techniques in a popular multi-paradigm language called Python. Though Python is more inclined towards Object Oriented Programming, it still is a multi-paradigm language and writing some elements of the code in a functional manner may sometimes give a considerable amount of advantages and it is possible if desired.

Recommend Background
You should be familiar with the basics of Python programming (variables, data types, if-else statements, loops, functions, exception handling, objects, methods and properties). It is also assumed you have at least a bit of experience in Python programming.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Uso de bases de datos con Python (Coursera) Coursera
University of Michigan

Uso de bases de datos con Python (Coursera)

Este curso presentará a los estudiantes los conceptos básicos del lenguaje de consulta estructurado (Structured Query Language, SQL), así como el diseño básico de bases de datos para almacenar datos como parte de una iniciativa de varios pasos para recopilar, analizar y procesar datos. El curso utilizará SQLite3 como base de datos. También crearemos rastreadores web y procesos de visualización y recopilación de datos de varios pasos. Utilizaremos la biblioteca D3.js para realizar la visualización básica de datos.

Oct 12th 2026
5-12 Weeks
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Oct 12th 2026
5-12 Weeks
Learn HTML and CSS (Coursera) Coursera
Scrimba

Learn HTML and CSS (Coursera)

This course is perfect if you want to learn how to code websites from scratch. You will learn the basics of HTML and CSS through interactive challenges. Along the way, you will build multiple projects, like a Google.com clone, a Space Exploration page, and a fun birthday site filled with GIFs. While most of the challenges are done in Scrimba's interactive editor, you will also learn how to use professional tools like VS Code for code editing, GitHub for hosting your code, and Netlify for deploying your projects to the world wide web.

Oct 12th 2026
5-12 Weeks
Estructuras de datos de Python (Coursera) Coursera
University of Michigan

Estructuras de datos de Python (Coursera)

Este curso presentará las estructuras de datos básicas del lenguaje de programación Python. Veremos los conceptos básicos de la programación de procedimientos y exploraremos cómo podemos usar las estructuras de datos integrados de Python, como listas, diccionarios y tuplas, para realizar análisis de datos cada vez más complejos. Este curso abarcará los capítulos 6 a 10 del libro de texto “Python para todos”. Este curso cubre Python 3.

Oct 12th 2026
5-12 Weeks
Problem Solving Using Computational Thinking (Coursera) Coursera
University of Michigan

Problem Solving Using Computational Thinking (Coursera)

Have you ever heard that computers "think"? Believe it or not, computers really do not think. Instead, they do exactly what we tell them to do. Programming is, "telling the computer what to do and how to do it." Before you can think about programming a computer, you need to work out exactly what it is you want to tell the computer to do. Thinking through problems this way is Computational Thinking. Computational Thinking allows us to take complex problems, understand what the problem is, and develop solutions. We can present these solutions in a way that both computers and people can understand.

Oct 12th 2026
5-12 Weeks
Data Processing Using Python (Coursera) Coursera
Nanjing University

Data Processing Using Python (Coursera)

This course is mainly for non-computer majors. It starts with the basic syntax of Python, to how to acquire data in Python locally and from network, to how to present data, then to how to conduct basic and advanced statistic analysis and visualization of data, and finally to how to design a simple GUI to present and process data, advancing level by level.

Oct 19th 2026
5-12 Weeks