top of page
  • Writer's pictureKate

Day 18: The What + Why of Our Teaching

Three weeks fly by quite quickly! It's sad that we'll be leaving our wonderful students after this week. While our time teaching them was relatively short, we're really proud of how much they've learned! We came here to Universidad Mayor to teach Scratch and Python, but more so we aimed to teach problem-solving and computational thinking.


Sure, it's great if someone can remember the .sorted() function to put a list's elements in order, but it's far more important to us that our students learn how to break problems down into discrete steps. As we've edited our curriculum throughout our time here teaching, we have relied more and more upon example exercises. We teach some new coding concepts from slides, but then we let our students actually work with the concepts and experiment. For instance, we taught them about how to define new functions. However, this was just the tip of the iceberg.


Functions are the keystone of modularity, and it was important for us to show them not just what a function is but why it is useful. Creating blocks of organized, reusable code makes a program easier to write, with fewer lines of code and spots for error. If you make a mistake, you likely only have to fix it in the body of the function one time. On the contrary, if you were to not write the code in a function but copy and paste or rewrite a bunch of lines of code, you would have to manually fix the issue in every spot it appears.


Ok, sorry, enough about the glory of functions in programming... what I mean to talk about is how we are trying to challenge the students to figure out how to solve problems. To be honest, it's not a big issue if they forget the name of a method or forget the format of what you type to access a specific value in a dictionary using its key. That's what the internet is for. What the internet often can't do, however, is break a problem into tangible steps.


Especially since many of our students are studying non-STEM topics in their own academic careers, this sort of computational thinking and problem solving can be a new and challenging concept. The way I view it is that we are teaching them the basics of how to code in Python so that they can then use that language as a tool to practice solving problems. Each day, we write up several problems using topics we've learned, and we give students time to work on their own. We circulate around the classroom, trying to identify when students need or want help. Of course, this varies student to student. Some prefer to ask many small questions at each step whereas others prefer to let themselves ponder in confusion for a bit. This can be tricky to gauge as a teacher, but I hope we've improved at this as we've gotten to know our students.


After giving them some time to work and individual help, we put up our coded solutions and talk it through step by step, both what the code is and why we chose to do it that way. When I first started programming, I found it extremely helpful when my teacher would show multiple ways to do the same problem. I probably sound like a broken record in my classroom as I always say "Hay muchas maneras de hacerlo," which means that there are many ways to do it. I never want students to feel boxed in, or that their solution is wrong because it's not the same as mine. Sometimes, I've shown up to 4 ways to do the same problem. It's a fine line between overwhelming students versus empowering them to think creatively.


Trying to gauge how this benefits the students, I asked them this morning which of the two ways I had shown made more sense to them. Half the class preferred the first way, half the second. This really reassured me that showing multiple ways to do something helps me reach all of the students in some way. Even better, the students normally have only focused on their one idea of how to do it. Exposing them to another thought process or methodology helps open their thinking and unleash their creativity. Hopefully, this enables them to become more dynamic future problem-solvers.


While there is so much more that I want to teach them, I am really proud of how hard our students have worked. They really want to learn programming, both the explicit coding and the problem-solving aspects. One of my students is in the midst of medical school, and she is taking our course because she missed doing math and she thought that the logical thinking involved would be a cool mental exercise. Another one of our university students is studying business and stayed after class to ask us how Python could be applied to the Markov chains that she studies in her research. It's so inspiring to see how our students are so self-motivated and purposeful.


Although I feel like there's so much more I want to show them, it's also nice to take a step back and realize that most of them had never written a line of code until about 2.5 weeks ago! To see them breaking down problems and solving them creatively is so rewarding. I hope that their brief exposure to programming in this class empowers them to continue exploring the field of computer science or at least apply bits of computational thinking to problems in their own fields of interest.

31 views0 comments

Recent Posts

See All
bottom of page