This semester, I returned to holding R open labs with another student intern, Hanying Ji. We made some adjustment about the structure of the open labs. Time flies, and now our R open labs have reached its end for this semester. I would like to summarize our journey and provide insights for both myself and future interns, hopefully.
A quick overview
We covered 9 topics this semester in total including the starter kit. This is almost twice as many as last semester. For the last open lab, we even ran out of major topics. This is unimaginable to me, and it is proof of success. We conducted open labs on the fundamentals, apply family, exploratory data analysis, character strings, data visualization, data manipulation, shiny, and randomness. These are pretty much everything a beginner needs to learn to use R without going too theoretical.
The flow of teaching is the same. I first introduce and do an example of the function quickly. Then, I show attendee the help page of the function so that they get a sense of arguments and results. Finally, I will talk about additional important arguments and do some examples with those arguments changed. For example, when I was introducing the function
matrix, I demonstrated examples with the argument
byrow = T and
byrow = F. By visualizing the output of both, students can understand that argument better.
We made some changes compared to last semester, and they are all positive based on our program’s performance.
- We started using Github repository as the way of sharing codes and data sets. It was messy to share files through google drive, and people had to come back to me asking for access. Using Github solves this problem. Plus, I think it is great to introduce Github to them since it is useful while handling and managing codes and projects.
- We promoted and advertised this program at the beginning of this semester. A lot of students told us that they wish they knew this program earlier. So I asked my friends to help me spread the words in SIPA and QMSS community. Also, my supervisors got the words out by sending emails to different departments. As a result, we have seen a decent population who attends our open labs consistently.
- We stuck with using examples and let the functions demonstrate themselves. Introducing and describing coding can be boring and dry. Having examples let students visualize the process in their heads, and thus, they can get familiar with the new functions quickly.
- The fundamental concepts, especially the part about loops, should have more examples and practice problems. I noticed that for people who had coding experience before, it is easy to grasp the basic concepts, but for those people with zero experience in coding, the loop and conditional part is the first obstacle. Having enough practice in this part will help students get used to R coding.
- The pace could be a little slower. As I mentioned above, we ran out of topics to cover by the end of this semester. I also felt that students didn’t fully understand some of the topics. I think in the future, the pace of open labs should always be adjusted according to the situation. Also, diverse examples can be added to help attendee learn important topics such as data manipulation.
This is my last semester at Columbia University, and I am honored to participate in this program again. It has been a fulfilling experience. Starting from my undergraduate years, I have been a TA for many years. I enjoy helping fellow students overcoming their difficulties and serving the university community. It is definitely pleasant to see that this program has a better performance this semester. For the ones who take this position in the future, I am more than happy to discuss with you about how to be a helpful TA and how to run this fantastic program.
Now the semester is halfway done, I think it is a good time to review our progress of this code teaching program. The R open lab’s performance has improved compared to the last one. We are having a consistent population of attendee, and we have already covered more topics than last semester. I am confident to say that our program is heading towards the right direction.
The people attending the open labs have diverse backgrounds: SIPA, SPS, GSAS, etc. I’m glad to see many people actively showing up to learn how to apply coding techniques to their customized scenarios. Another surprise is that we are having a decent number of the attendee in each open lab so far. Also, people are showing up consistently. One of the biggest problems in the past is that we are not having enough attendee, and people don’t attend continuously. That causes the issue that attendee’ coding levels have huge gaps; there could be complete beginners, and there could be people who’re already familiar with R. Now, the attendee will have the same level of R proficiency after a few workshops. That allows us to move further to new topics.
Also, using Github seems like a good idea. In the past, sharing my codes and data sets in open labs was troublesome and inconvenient. Now, students can always go to my Github repository to look at past materials without asking for access from me.
I am happy to see that our program is developing, and we are able to help more fellow students step in a new field. I invite all to our open labs regardless of your level; we welcome you to take a journey to explore the facts behind data.
This was the first semester I worked as a teaching intern at the Digital Center, and I was in charge of running the R workshops. As a great semester reaches its end, I would like to summarize this journey and reflect on it.
A Quick Summary
I conducted 5 workshops besides the starter kit. 4 of them are new topics, and the other one is an intermediate version of the starter kit which provides a deeper exploration on the fundamentals in R. For all the labs, I prepared all the scripts ahead without all the input parameters because I wanted to fill them in as examples during the labs. I always believe that the first step of learning is imitation. You don’t have to understand the content to be able to imitate, and by imitating again and again, you will be able to observe the pattern and comprehend the nature of it. The usual flow of my labs is:
- Introduce the function briefly.
- Show the help function output of this function so that students can see what the inputs look like and what the results are.
- Enter the input arguments and run it.
I believe this way of demonstrating codes is better than having it written in the script file and running it in a blink of an eye; students are actually seeing me coding, and it becomes easier for them to imitate.
I also started a new teaching practice in the middle of this semester: I started to add practice questions at the end of every lab. The purpose of it is to help fix the codes in memory. No matter how well you understand the new contents, they won’t become part of you skills unless you use it again and again; that’s how we learn: imitate and repeat. I figured that by implementing the functions to a real-world problem, it leaves a mark in student’s memory, and they will be more likely to recall it in the future. I even used the same dataset for several workshops. In that way, they are working with something they are already familiar with, and hopefully, it will help them connect everything we learned.
Challenges and Possible Solutions
Of course, there were quite a few challenges. I will list them below and provide possible solutions to them from my perspective.
- The outcome of the attendee’ amount could be better. Due to lower application popularity and high difficulty at entry level, fewer people choose to learn R. However, I still see a big potential group to which R will be helpful from the positive feedbacks from the attendee. The Digital Center could market the open labs(both R and Python) to specific communities which would be interested such as Economics programs and SIPA. If you are reading this post and you want to learn coding in R and Python, remember to check out the open labs this fall!
- Attendee don’t attend labs regularly. This has been troublesome. I didn’t build the labs consecutively because I didn’t want to review earlier material every time; I think that’s inefficient. But I think that didn’t encourage students to come back, and it forms a negative loop. A solution to that is to post the topics ahead of time. I’m still undecided whether I should have a syllabus for the whole semester due to the nature of high dependence on attendee, but I think for Fall 2018, we should post topics at least 2 weeks ahead, and make sure students know there will be continuous contents.
- Through all the labs of this semester, I found that students who were new to R needed longer time than what I expected to fully understand the syntax and logic. As mentioned above, R has a steep learning curve for beginners. The starter kit is not enough. I should conduct richer materials on the fundamentals, and I will bring more examples to demonstrate. I may also conduct one lab focusing on the
swirlpackage since some students thought it was a good tutorial.
All in a nutshell, this experience was exciting and informative. Now I have more understanding of how to teach. To be honest, I don’t really consider myself as an instructor or a teacher. I am just a student who tries to help others with what I know. This internship enlightened me of new ways to pass on the useful knowledge and to exchange information with others. I am looking forward to continuing my internship at Digital Center and serve the Columbia community and fellow students.