Python. Functional Programming

The course is about functional elements available in Python and their usage
The core of the course could be covered in about a day

About this course

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.

Who is this course for

Those who are already familiar with basics of Python programming and want to expand the arsenal of programming techniques

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.

Meet the Instructors

User picture
Vitaliy Polshkov
Mathematics & Mechanics Faculty of St. Petersburg State University, Computer Science Center. Data analyst at Yandex
Currently studying at St. Petersburg State University (Mathematics & Mechanics Faculty) and Computer Science Center. Academic interests are primarily in probability theory. I'm also fond of algorithms, algebra, functional programming and curious about…

Course content


Learners' reviews

Exercises are mostly good-quality. I look forward to see more courses like this on Stepik! Thanks the team behind the course and Stepik.
Very useful and fun course.
Great course

Share this course