Functional Python Programming in Introductory Computer Science Courses

📅 2025-12-03
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This study addresses the absence of functional programming instruction in introductory Python courses by proposing a pedagogical pure functional subset tailored for beginners. Methodologically, it strictly prohibits mutable state and side effects, permitting only immutable data structures, pure functions—including lambdas and higher-order functions—and list comprehensions, while forbidding assignment statements and mutation of objects. Its key contribution is the first systematic design of a Python-syntax-compatible, pedagogically optimized pure functional subset, thereby bridging the gap between imperative-language instruction and functional thinking development. Empirical evaluation demonstrates significant improvements among students in program reliability, logical clarity, and code robustness, confirming the feasibility and effectiveness of this approach in introductory programming education.

Technology Category

Application Category

📝 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, pure functions with no side effects, and stateless programming. We define a functional subset of Python and illustrate the best practice using small examples. We strongly feel that students in computing need familiarity with pure functional programming and argue that this can be taught in introductory programming courses that use Python.
Problem

Research questions and friction points this paper is trying to address.

Teaching functional programming concepts in introductory Python courses
Using Python's functional subset to enforce immutable data structures
Introducing pure functions and stateless programming to beginners
Innovation

Methods, ideas, or system contributions that make the work stand out.

Teaching functional programming using Python's subset
Enforcing pure functions and immutable data structures
Introducing functional concepts in introductory CS courses
🔎 Similar Papers
No similar papers found.