Deep Learning Course Wrap-up

My thoughts and reflections on teaching my first college-level workshop

From the moment I signed up to the last lecture, it was an overall amazing experience getting to teach my first course. What’s nice about the class is that I was involved in both the front and back end. My team began designing the labs and lectures back in November, and throughout the process we had to be extremely creative. Coming up with new ideas for labs, giving example problems in the lectures, and providing ample resources for our students were all necessary steps to ensure everyone did well. On the last day of lecture, one fo the students asked if we could all be photographed before she and her peers embarked on their return trip to China. Eagerly, we took the photo, documenting the successful completion of our workshop! Afterwards, I chose to write some thoughts and reflections on what went well during the course, and what areas needed improvement.

Organization

One of the top comments we received in our course evaluations was how organized the lectures and assignments were. We had created a sense of structure that clearly guided each student through their lecture slides and assignments. Some tools that we utilized to truly add form and clarity to the workshop include:

DropBox helped the teaching team store and share files like lecture slides and lab Jupyter notebooks. Piazza was heavily used by students when they asked questions or had some concerns they wished to communicate to the instructors. Finally, Google Colab was a great resource to store, share, and run .ipynb Notebooks in the cloud on Google machines and GPUs. This was a great resource, as many of the students were working mostly on their laptops, and could not work with more powerful GPUs to run their programs. This was especially handy during the convolutional neural network phase of our course.

Communication

Because most of the students were visiting from China, I had to cross a language barrier in order to be an effective communicator. Now, obviously, all of them spoke English, however it was not their first language. On the first day of the lecture, my supervisor warned me to speak slower and explain concepts thoroughly to account for this gap in language. I took his advice to heart and spent minutes instead of seconds on most concepts. I also utilized my iPad to draw pictures and diagrams on the slides themselves to visually depict certain equations and concepts. I didn’t just encounter communication concerns while lecturing. When working on their assignments, many students faced bugs and other software issues. Instead of just describing their code, I asked them to post screen-shots of their issues onto Piazza, where I could then walk them through the logic of their algorithms.

This is an example of how a student would ask a question and the instructor could easily respond.

Teamwork

By far I believe the most valuable skill this experience reinforced is teamwork. At the beginning of designing the course, we sat down and delegated tasks and action items amongst the three TAs such that we all could contribute our strengths. We agreed to designate one TA for making the slides and assigned two TAs the task of making the Jupyter Notebook labs. This delegation process fairly distributed the workload such that we each could invest our time to making our assigned parts great. We utilized cloud sharing tools like DropBox to store our work, give each other feedback, and share our projects with each other. The course itself also reinforced teamwork by requiring students to work in pairs during their final projects.

Final Thoughts

I had a great experience developing and teaching this workshop. I enhanced my learning by a great deal, as well as greatly improved my understanding of how to be an effective communicator and receptive instructor. Hopefully, this is but the first of many more courses to come!