I teach generating functions as part of my Discrete Mathematics course for undergraduate Computer Science students. Over the years, I have experimented with different approaches to introduce this topic. My current approach involves:
- Explaining that generating functions are not actually functions in the traditional sense.
- Defining operations like addition and multiplication for generating functions.
- Discussing why we use closed forms like $-\log(1-x)$ to perform arithmetic on generating functions, despite the divergence concerns.
However, students often appear confused. This semester, I devoted a full 75-minute lecture to these foundational aspects, but the response was still subdued compared to lessons on more concrete topics.
My Question: Would it be more effective to de-emphasise the rigorous mathematical foundations of generating functions and instead focus on their application to solve combinatorial problems? (I do have the authority to make minor adjustment to the syllabus like this.)
I am particularly interested in hearing from educators who have faced similar dilemmas. What strategies have worked for you in balancing the abstract mathematical theory with practical applications, especially for students whose primary focus is not pure mathematics?