Author Archives: nnn2112

End-of-Semester Reflection (Python Open Labs – Spring 2018)

It’s hard to believe that the end of the semester has arrived and that Python Open Lab sessions for Spring 2018 have come to an end. Instead of writing a sappy post about “the end,” I’d like to share five things I learned while teaching my students Python this semester.

# 1 – Teach with Examples – Different programming languages vary in syntax, but they all share similar concepts such as variable usage, conditionals, and loops. Explaining such concepts to students unfamiliar with programming is certainly helpful, but can probably only get them so far. To show how to use a language to creatively solve problems, examples – especially multiple examples showcasing the same concept – are a must. I would also encourage instructors to create examples that reflect the demographics of their students when given the opportunity (i.e. initialize a list of more diverse names versus solely American names).

# 2 – Teach with the Right Tools – The agile method in software development encourages reiteration, and I like to encourage my students to think in a similar manner when writing code. The easiest way to test whether or not your code has worked is to run it and see the output. As an instructor, I live-coded each lesson. I wanted to my students to see me run my code block, examine my output, and fix my errors if need be. Using Jupyter Notebooks really allowed me to do this in a clear manner. I was able to isolate each example within a code block, which was especially helpful. Another IDE would work in regards to teaching a programming language as well, but I would not recommend teaching via a Google doc or a Powerpoint presentation for a non-lecture style session.

# 3 – Incorporate Wait Time – In addition to studying computer science, I also studied (English) education as an undergraduate. I learned a lot about teaching methodologies and one concept that has stuck with me is the idea of wait time. Wait time is the time an instructor waits after asking a question before calling on a student. Sometimes, it can be easy to answer your own question right away if no one has raised their hands, but waiting gives students time to think about their answer. If no hands are raised after some amount of waiting, then you can possibly provide a hint or make the judgement call whether or not to answer your own question.

# 4 – Have a Positive Attitude – If you are not excited about the material you’re teaching or the lessons you’re crafting, it may be a little harder to get your students excited about the subject as well. I like to use varying examples to keep things fresh as well as think back to my earlier days when I started learning about Python for the first time – and how incredibly fulfilling it is now to be able to code on my own with no instruction. When I imagine and see my students feeling the same way, I feel all the more positive. As Jim Henson says, “[students] don’t remember what you try to teach them. They remember what you are,” and I’d like to be remembered as someone who was wildly passionate about computer science education.

# 5 – Ask Students for Feedback – Not every lesson you create is something your students are satisfied with. Ask them what they’d specifically like to see more of or less of. From student feedback, I learned to spend more time coming up with examples for loops and functions and less time reviewing classes. Students also wanted to see more of a workshop-style lesson towards the end and with feedback, I created a data visualization lesson that ended up being quite well-received. Always be sure to ask for your students’ inputs – you are not the only one in control of the class and its structure.

I hope you found these takeaways valuable and can apply them to your own lessons if you are an instructor. I’ve greatly enjoyed serving as one this semester and hope to take on more teaching-related opportunities in my spare time after I graduate this May. Working as a teaching intern at the Digital Social Science Center for Columbia University Libraries has been an incredibly fulfilling experience – I would do it again in a heartbeat. If you are encouraged by my post and love teaching as well, I hope that you apply to be an intern for the upcoming semester!

Navie Narula

Mid-Semester Reflection (Python Open Labs – Spring 2018)

Stuart Walesh, an author and consultant, once said: “The computer is incredibly fast, accurate, and stupid. Man is unbelievably slow, inaccurate, and brilliant. The marriage of the two is a challenge and opportunity beyond imagination.”

Many of us use computers. Sometimes, the time we spend on them consume the majority of our day. Whether or not this is a good or bad thing can be debated in another blog post, but the fact is…technology is an overwhelming part of our diet.

Taking my first computer science class as an undergraduate made it apparent to me that learning about how code and algorithms work was a really important thing, especially if I wanted to solve problems on my own. I declared my major in computer science and focused on  learning more about how code could be used to analyze large amounts of text more efficiently. I have not regretted it since, and am beyond happy to see a good number of students show up to the Python Open Labs to learn more about how to write code to perhaps automate their own tasks.

The people who show up to our class are diverse in terms of major – coming from backgrounds ranging from education to international affairs to pure math/analytics. It’s been really nice to see people actively show up to our labs with a desire to learn how to code and truly curious about how to solve problems. It’s proven to me again and again that anyone can learn how to code, and it’s been wildly encouraging to see people who think they cannot do it actually do it!

This is my first semester helping to lead the Python Open Labs. I find that lessons introducing a new programming language or new programming concepts are best taught in a step-by-step manner. Jupyter Notebooks have allowed me to accomplish this very well, allowing for space to write comments in markdown and running code in cell blocks. The students in class love this medium as well, and at the end of the lesson, they can easily look back over the notebook and remember what we learned about.

I’ve really enjoyed helping out with the labs so far and answering so many questions from the students who show up. Anyone is welcome to stop by the Python Open Labs – even if you have never written a line of code before in your life. I look forward to learning more from my students as the semester goes on.

Navie Narula