Upcoming Course Dates:
Instructor: David Beazley
Many tutorials on functional programming in Python focus on surface-level programming language features like lambda, callbacks, and list comprehensions. This is not that. Instead, you'll find a more in-depth treatment of functional programming techniques and thinking. Normally, I teach it as part of my Advanced Programming with Python course, but I decided to break it out into its own thing. Hopefully you'll join me! -- Dave
When and how can you use functional programming in your program? In this course, we'll focus on some foundational topics:
Many of these topics have a reputation for being rather mind-bending if not mind exploding. However, I will introduce them through practical examples and connect them to other programming techniques that are more commonly known. Expect a lot of thinking and group discussion.
This course is for intermediate programmers who want to improve their understanding of functional programming techniques in Python. I think it is of particular interest to people designing libraries and APIs.
This course only involves Python functions and exceptions. You should know the basic techniques for defining functions including different argument passing styles (positional, keyword, *args, **kwargs). There is also a small amount of string processing. No third party libraries are used.
The course is split into two distinct projects consisting of a mix of group discussion, live coding, and hands-on exercises. There are no powerpoint slides. The programming language is Python although the topics discussed are widely applicable to other programming languages.
This course is taught by David Beazley. David is a former university professor who used to enjoy torturing students with courses in operating systems and networks. David is better known in the Python world as the author of the Python Distilled (Addison Wesley) and Python Cookbook, 3rd Edition (O'Reilly Media). He has also given various conference talks including a few infamous bits of live coding.