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

Applied Text Mining in Python (Coursera) Coursera
University of Michigan

Applied Text Mining in Python (Coursera)

This course will introduce the learner to text mining and text manipulation basics. The course begins with an understanding of how text is handled by python, the structure of text both to the machine and to humans, and an overview of the nltk framework for manipulating text. The second week focuses on common manipulation needs, including regular expressions (searching for text), cleaning text, and preparing text for use by machine learning processes. The third week will apply basic natural language processing methods to text, and demonstrate how text classification is accomplished. The final week will explore more advanced methods for detecting the topics in documents and grouping them by similarity (topic modelling).

Nov 9th 2026
4 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.

Nov 9th 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.

Nov 9th 2026
5-12 Weeks
Selenium WebDriver with Python (Coursera) Coursera
Whizlabs

Selenium WebDriver with Python (Coursera)

“Selenium WebDriver with Python” is a foundational course that aims to provide a comprehensive understanding of Selenium and its components. It also helps in understanding how Selenium WebDriver Operates. This course begins by demonstrating an environment setup for Selenium WebDriver with Python. A brief description of locating Web elements and web Interactions is provided in this course. This course covers an overview of testing frameworks with Selenium WebDriver. Some advanced topics such as Handling Popup, Alerts, Multiple Browser Tabs, Mouse and Keyboard interactions are also highlighted in this course.

Nov 9th 2026
3 Weeks
Basic Modeling for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Basic Modeling for Discrete Optimization (Coursera)

Optimization is a common form of decision making, and is ubiquitous in our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports. Good decisions in manpower and material resources management also allow corporations to improve profit by millions of dollars.

Nov 9th 2026
4 Weeks
Machine Learning Rapid Prototyping with IBM Watson Studio (Coursera) Coursera
IBM

Machine Learning Rapid Prototyping with IBM Watson Studio (Coursera)

An emerging trend in AI is the availability of technologies in which automation is used to select a best-fit model, perform feature engineering and improve model performance via hyperparameter optimization. This automation will provide rapid-prototyping of models and allow the Data Scientist to focus their efforts on applying domain knowledge to fine-tune models. This course will take the learner through the creation of an end-to-end automated pipeline built by Watson Studio’s AutoAI experiment tool, explaining the underlying technology at work as developed by IBM Research.

Nov 9th 2026
4 Weeks