Functional Python Programming in Introductory Computer Science Courses
Rajshekhar Sunderraman

TL;DR
This paper advocates teaching a purely functional subset of Python in introductory courses to help students learn immutability, pure functions, and stateless programming, bridging functional programming concepts with beginner education.
Contribution
It introduces a defined functional subset of Python and demonstrates its use as a best practice for teaching functional programming to beginners.
Findings
Students learn functional programming concepts effectively.
Pure functional subset improves understanding of immutability and statelessness.
The approach is practical and applicable in introductory courses.
Abstract
The functional programming paradigm has a long and storied history, with its beginnings in the Lambda Calculus. In recent decades, pure functional languages such as Haskell have been shown to be highly effective in producing robust software due to immutable data structures, among other functional features. The advantages of programming with immutable data structures can also be had in non-functional languages such as Python. Over the years, non-functional languages have introduced immutable data structures as well as comprehension and lambda expressions, and it is possible to program in a purely functional style in them. In this paper, we present a ``best practice'' idea in introductory programming classes that forces students to learn and complete programming assignments in a purely functional subset of Python. By doing so, the student can learn functional ideas such as immutability,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsTeaching and Learning Programming · Computational Physics and Python Applications · Parallel Computing and Optimization Techniques
