What skills do students need to use programming environments?
Students in programming courses are expected to learn a new programming language while simultaneously mastering programming environments. These environments are essential for designing, building, and testing programs and include integrated development environments, text editors, and command-line interfaces. Previous research in Computer Science Education has focused on the challenges of learning to program. However, limited research has addressed the challenges students face with programming environments. To bridge this gap, I conducted interviews with 15 undergraduate students and surveyed 300 students at two R1 institutions, finding that the majority of them faced multiple challenges with programming environments. Students also shared that programming courses do not provide foundational instruction on programming environments, so they often relied on online sources, AI agents, and friends to solve these challenges. To better equip students in programming classes, we must further integrate content on programming environments into the curriculum. However, we do not know the foundational knowledge needed for effective use and problem-solving of programming environments. In my dissertation, I aim to identify the foundational knowledge and skills needed for effective use of programming environments by conducting interviews and collaborating with educators, researchers, and programmers. These conversations will help me gain a deeper understanding of their mental models and the skills they employ when setting up, using, and debugging programming environments, so that they can be broken down and scaffolded for the curriculum.