Teaching CMPINF 0010: Big Ideas in Computing and Information this Fall is both similar and different to last Spring. The largest deviation from last semester is the change in student population: most students taking the course in the Fall are freshmen, while those in the Spring tend to be upperclassmen. Although this has positively affected lab attendance overall, the same topics that caused confusion last semester continue to be pain points. So far, my CUTF project has been moving in the right direction to address these problems. I’ve been able to find at least one correlation between the each of the lab notebooks and the lectures up to this point and made additions to the lesson notebooks accordingly. I was initially concerned that some of the more technical labs would be too far removed from the lecture material, but, fittingly, the concepts in Big Ideas are so ubiquitous across computing that even the most technically scoped lessons are still related to them. While the curriculum restructure has been smooth, I’ve yet to implement an automatic grading solution for the class. JupyterHub is a complicated system under the hood, and even implementing off-the-shelf solutions requires a deep understanding of the software architecture that I haven’t developed yet. I’ve been making incremental progress, though, and hope to have a system working in the next few weeks.
An example lesson notebook for Big Ideas inside the JupyterHub platform.
Before the end of the semester, to get a better gauge of what aspects of the Big Ideas lab are important to Pitt students, I plan to send a survey to previous students asking for their experience with and opinions on the course. Hopefully, if we garner enough student responses, we can use this information to center our focus on the important details.
The work I’ve been performing under the CUTF hasn’t only been related to my project — I have taken on a new role of leadership within the teaching staff. Each week, the instructors for Big Ideas meet to discuss the previous week’s lab and the future of the course. As the undergraduate teaching fellow, if the professors are unable to attend the meeting, I am expected to lead the dialogue, listening to my fellow teaching assistants and taking notes on their thoughts. I am also expected to resolve the issues we discuss: if technical problems arise in a lab notebook, I should make changes to the code. Although these added responsibilities are a deviation from those of a typical undergraduate teaching assistant, I have found that by offering a student’s viewpoint to the curriculum design, I can help ensure the material matches the knowledge level and needs of the student body.
Over the course of my time as a teaching assistant, and now as a teaching fellow, several of my peers and students have asked me about the process for getting involved with teaching. Luckily, the School of Computing and Information places a large focus on peer learning, so this process is relatively straightforward. I would recommend any students interested in becoming a teaching assistant in SCI read the guide created by the Pitt Computer Science Club; it covers how to get started and addresses some common problems facing teaching assistants. As part of the process, you’ll have to provide a letter of recommendation from a faculty member indicating your academic ability, complete some training, and schedule your section. If you meet the criteria, you’ll get to lead a lab or recitation section!
Although the process of becoming a teaching assistant appears simple, it’s important to establish yourself in the academic community both before and during your time teaching. Coming into college, I knew I wanted to be a professor, so it was important for me to get experience teaching as quickly as I could. When I took Big Ideas with Dr. Lee, I visited his office hours to discuss research opportunities and started attending meetings in his lab outside of class. Additionally, I joined the SCI Academic Council, which he chaired, as the Student Representative. Through this established connection, when it came time for professors to pick teaching assistants for their courses, Dr. Lee selected me for Big Ideas. Even though he didn’t teach the course that semester, my relationship with him through research and Academic Council led to discussions about the course’s future and, eventually, the proposal for my CUTF project.
Getting involved in other ways continues to be a driving force in how I receive teaching opportunities. I recently started working on a new project that focuses on teaching students from Pittsburgh Public Schools programming and other technical skills through game design with the Unity engine. The professor in charge of the project, Dr. Dmitriy Babichenko, also teaches CMPINF 1201: Digital Narrative and Interactive Design, centering around using microcontrollers for interactive storytelling. A few weeks ago, he asked me to offer technical support for his class while he was away at a conference. Attending the class not only gave me an opportunity to hone my technical communication skills through teaching, but also get a better understanding of the other interdisciplinary programs offered through SCI. So, above all else, getting involved as much as you possibly can is the best advice I could give to students who want to start teaching. Even if it takes time to find the right teaching opportunity for you, getting involved will open new doors that you didn’t even know existed.