teaching

TAing for 15122 - Principles of Imperative Computation

Spearheaded the creation of supplementary instruction bootcamps built into course infrastructure.

I realized there was a need for students to receive assistance with both conceptual and concrete skills; specifically debugging as well as memory and proofs were weakpoints for students. Liz Chu and I proposed the project and we have since fully developed and presented four bootcamps. We hope to observe improvement in these topics.

More personally, these bootcamps made me realize that I really enjoy the development and the process of teaching! They spur me on to pursue a PhD and likely continue in academia afterwards.

Below, I show examples of content from the bootcamps. The code for the examples is not made public, but I include some of the presentations that we have created. Each bootcamp typically has around 12 to 16 examples with a presentation, a resource document, and an examples instruction set as a reference for students.

Debugging Fundementals
Covered the core tools needed to become a successful programmer. Students were given practice to learn to use contracts, write good test cases and efficiently use print statements with targetted examples.


Memory & Pointers
Discussed and provided practice for conceptual frameworks regarding memory and pointers in C.


Debugging Data Structures
Discussed methods for debugging more complex structures and writing advanced test cases.


Valgrind (memory)
Re-introduced and offered examples of using valgrind as a memory management tool and how to efficiently understand and fix valgrind comments and errors.


Debugging in C (Pilot)
Pilot bootcamp that served as an amalgamation of fundementals and memory tools. This bootcamp provided a great understanding of the difficulty of examples, engagement to expect and manner in which we presented information to be most useful. We revised both materials and examples following this bootcamp which was proven to give better experiences for students during the following semester. The code for this bootcamp is available on my repositories page.


We plan on creating a few more bootcamps such as one targetting proofs and debugging when it comes to more complex data structures.