Addressing challenges in computer programming education: an action research approach for effective student support.