Thursday, December 4, 2014

CIS 120 Teaching Assistant, Bethany Davis

Here's a blog post from Bethany Davis:

It has been said that the best way to learn is to teach.  That is why I was so excited when I found out I was chosen to be a CIS 120 Teaching Assistant at the beginning of this semester.

My name is Bethany Davis and I’m a sophomore at SEAS studying Computer Science.  CIS 120, or Programming Languages and Techniques I, was the first computer science course I took at Penn.  During the first half of the semester, I learned my first functional programming language, OCaml, through a series of increasingly challenging weekly assignments that build off of previous concepts and syntax structures. The OCaml portion of the course culminates in a GUI project similar to Microsoft Paint.  The second half of the course transitions from OCaml to Java, and culminates in a largely self-directed project in which each student designs a Java game.  When I took the course, I built a version of the Snake game from scratch.  I found the course to be rewarding because I learned a new programming language, constantly challenged my programming abilities, and produced tangible projects that I could demo for my friends.

The spring semester of my freshman year, two of my hall-mates enrolled in the course.  I found myself staying up late to help them with the assignments.  I found it very rewarding to share my own CIS 120 experiences with my friends, and it was also very fulfilling to see the influence I had on my peers:  one of my hall-mates ended up declaring a minor in CS, while another hall-mate went so far as to consider a second major in CS.  I realized that I had a passion for spreading my love of programming to others, and I wanted to find a way to give back to the CS community at Penn, so I decided to apply to become a CIS 120 teaching assistant.  After an application and an interview, I was hired as a CIS 120 TA for the Fall 2014 semester!

The infrastructure of the entry-level CIS courses at Penn is very well established.  Every week, I attend a CIS 120 staff meeting to debrief on the previous week’s lecture concepts and assignments, review plans for the upcoming week, and discuss the overall trajectory of the course.  As a new TA, I also attend weekly TA training sessions with first-time teaching assistants and Head TA’s from the other entry-level courses.  During training sessions, we discuss a variety of topics ranging from how to best conduct a recitation to how to increase diversity within computer science.  Training sessions definitely help me think critically about my teaching and my role as a TA.

While it may seem that being a teaching assistant primarily entails helping others, I have found that my role as a TA has also been beneficial for my own sake.  As a TA, I am responsible for teaching a weekly recitation, holding weekly office hours, and grading students’ weekly assignments for style, testing, and efficiency.  Once of the most challenging (yet rewarding) parts of being a TA is helping individual students during office hours.  It is difficult to strike a balance between guiding a student towards the right answer while still allowing the student to solve the problem independently.  The most fulfilling part of being a TA is when I am helping a student in office hours and the student suddenly reaches that “AHA!” or “eureka!” moment of understanding.  Whenever I help a student reach this moment while solving a difficult problem, I am reminded why computer science is such an incredible field to be a part of, and why computer science sparked my interest in the first place.  Furthermore, although grading assignments can be tedious and time-consuming, I have found it to be very beneficial to my own journey as a computer science student.  Reading other students’ code allows me to visualize many different solutions and approaches to the same problem.  Additionally, when I am forced to be critical of other students’ code, it teaches me to be more critical of the code I write myself, and I have found that through grading poorly written code, I am inspired to write more readable, well-written code for my own assignments.  Finally, being a TA has helped me prepare for technical interviews.  It can be very challenging and uncomfortable to discuss algorithms and code segments with an interviewer, but because I get practice explaining algorithms and code during recitations every week, I have felt much more at ease whenever I approach questions in a technical interview.

I am grateful for the opportunity to be a teaching assistant even though I am only an undergraduate student in computer science.  While my role as a TA is primarily to teach others, I am also grateful for everything that being a TA has taught me!

No comments:

Post a Comment