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!