J8A.6 Programming in Meteorology: Taking the Coding Out of Programming

Tuesday, 14 January 2025: 5:45 PM
206 (New Orleans Ernest N. Morial Convention Center)
Zachary J. Lebo, Univ. of Oklahoma, Pasadena, CA

Developing computer programs is an integral component of scientific analysis and visualization, and undergraduate programs in meteorology and atmospheric science have included required computer science/programming courses for several decades now. Many such programs have converted or are in the process of converting these courses to Python. However, the open-source nature of Python and thus the wealth of code available online has made it relatively easy to develop codes applicable to meteorology and atmospheric science but without a solid understanding of syntax, and arguably more importantly, programming logic. Recent experience in the first-year programming course in meteorology at the University of Oklahoma has revealed that students often struggle less with the syntax and more with the logic. We argue that a solid foundation in progamming logic is critical to success in students’ careers, especially data science careers.

In the Fall 2024 semester, we applied a different approach to programming in the first-year programming course in meteorology, namely one that removes the code and focuses on logic. In-class activities aimed at teaching programming logic are developed based on everyday activities (e.g., making breakfast, morning routine, etc.) and inspired by no-code progamming apps (e.g., controlling a robot). Students are introduced to sequences, selections, loops, and functions using a variety of props, including play food and instructions on paper. The activities evolve with each lecture, culminating in a “program” that instructs a robot, i.e., the instructor, to complete tasks in the classroom using the core programming structures but without actual code, and each group of students runs their “program” with the instructor responding to the instructions. These activities are then intertwined into subsequent lectures where Python syntax is introduced, thus connecting the initial logic-focused instruction to actually writing code to make the computer complete tasks. Not only does this give the instructor a break from acting like a robot, but it also allows the students to apply the logic first and the syntax second.

This talk will discuss the activities conducted in class in detail, present feedback from students, compare with student success in prior iterations of the class using a more conventional approach to programming, and identify future directions for programming instuction in meteorology.

- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner