Teaching Statement Vivek K. Pallipuram December 2014 Teaching Missions – Within my goal of becoming a successful university professor, I have two primary teaching missions. The first mission is in the classroom where my ambition is to provide quality education to undergraduate and graduate students, thereby preparing them to tackle challenging real-world problems. The second mission is in the research laboratory where my objective is to lead a group of dedicated students to perform cutting-edge research and generate new knowledge for the advancement of our society. These missions have been motivated by my six years of ingratiating experience in teaching and mentoring; my teaching methodologies are geared towards fulfilling these missions. Teaching Experience – As a graduate teaching assistant in the Electrical and Computer Engineering (ECE) department at Clemson University, I had the privilege of teaching the following two undergraduate courses for several semesters: 1) assembly language programming in the position of Instructor and 2) digital logic design in the capacity of Guest Lecturer. These opportunities were instrumental in sharpening my teaching skills and methods, which I continually refine. In my lectures, I always emphasized on building a strong basic foundation by acquiring an impeccable understanding of each newly encountered principle. To this end, my teachings often included interactive animation slides and visualization. I firmly believe that students can truly imbibe theoretical concepts by seeing them in action. For instance, to learn the concept of stacks and subroutines in the undergraduate programming class, my students and I would enact the processor using an interactive slide. Each one of us would take turn to execute a program instruction and watch on the slide how stacks, registers, and variables are modified. This role-playing not only enabled students to implement complex subroutines, but also helped them to understand adverse programming situations such as stack overflow and out-of-bound memory accesses. Similarly, in my digital logic design lectures, I urged my students to visualize the modular components in their Verilog/VHDL codes and think how they work in parallel inside FPGAs. All of my major theoretical lectures were supplemented immediately by challenging, yet interesting programming assignments. I also had the tremendous opportunity of co-developing and teaching a graduate course in Spring 2013 called High-Performance Computing (HPC) with graphical processing units (GPUs). The class was taken by graduate students from ECE, computer science, and chemical engineering departments. To address such a diverse target audience, my principle of building strong basic foundation worked well. Using my aforementioned interactive visualization and animation techniques, I facilitated students to understand complex architectural concepts including memory coalescing, divergent warps, and shared memory. Consequently, students were able to effectively think in parallel, which is a highly coveted skill in the contemporary computing field. Similar to my undergraduate classes, the theoretical concepts were reinforced with programming assignments using Compute Unified Device Architecture (CUDA) and Open Computing Language (OpenCL), however they required an in-depth algorithm analysis and performance assessment. The course concluded with a final project where students, in groups of two, successfully accelerated complex applications including edge-detection algorithms and shallow water wave equation simulation on multiple GPUs. At the end of the course, the students were confident to incorporate GPU-based solutions in their research. In addition to classroom teaching, I continually took feedback from student performance and kept myself approachable via office hours and e-mails for discussions. I seek to apply the above methods while co-teaching the Operating Systems course in the next semester. Mentoring Experience – I firmly believe that effective teaching is not only limited to classrooms, but it is also required in the research laboratory to shape students into impactful researchers. In my academic career thus far, I have had the opportunity to mentor several students. I stimulated them to think critically, intuitively, and creatively, encouraging them to perform quality research. From Clemson University, I closely mentored two graduate students who applied my performance 1 Teaching Statement Vivek K. Pallipuram December 2014 modeling concepts to conduct design space exploration studies with general-purpose GPUs. One of these students took my HPC with GPUs class and extended his final project to a thesis. The both of the students graduated with a Master’s degree (thesis option) in August 2013 and 2014, respectively. At University of Delaware, I closely managed another graduate student to successfully produce a conference paper, which was recognized amongst the top 6 at the 2014 IEEE Cluster conference. Currently, I am guiding students from both universities and continually refining my mentoring skills. Owing to my fulfilling mentoring experience, I am confident in assuming the role of an academic leader and in guiding undergraduate, graduate, and post-doctoral researchers. Future Teaching and Mentoring – My teaching philosophy is built on three essential pillars namely, theory, practice, and experience. I want to apply my teaching philosophy to computer science and engineering (CSE) courses and equip students with all the tools necessary to succeed in academia and industry. To achieve these goals, my broad undergraduate teaching interests include, but are not limited to, Computer Architecture, Parallel Programming, Machine Organization, and Operating Systems. I am especially interested in introducing heterogeneous systems courses that align with my research interests. The specific courses include HPC with GPUs and DataIntensive Computing. These graduate courses share a similar outline, which is as follows. The HPC with GPUs course will provide students with the theoretical knowledge and hands-on experience in developing applications with massively parallel architectures. The first five weeks of the course will be devoted to learning CUDA programming concepts and primary optimization techniques. These lectures will be supplemented with programming assignments that will ask students to implement matrix-vector algorithms, report application speed-up, and identify performance bottlenecks via profiling. The student performance will also be gauged using written Homeworks and a mid-term exam. The next two weeks will be spent in refreshing Message Passing Interface (MPI) concepts and learning how to write MPI+CUDA applications. The students, in groups of two, will also decide on their final project, the complexity of which will be atleast twice their regular assignments. Until their final exam, the class will meet to discuss state-of-the-art research and project road-blocks. The students’ participation will contribute towards their final grades. For the final exam, the students will submit an 8-page IEEE style paper and present it in a conference setting on the exam day. The Data-Intensive Computing course will provide students with techniques to handle massive data produce by X-Informatics (X is Bio, Chemo, Business, etc.). The first quarter will be devoted to learning MapReduce and Hadoop concepts, and basic algorithm design strategies. In the next half, the class will program data-intensive problems including sorting, text processing, and machine learning in the form of bi-weekly assignments. The last quarter will be devoted to reading and presenting the literature, and working on a final project. The class will also touch the principles behind Amazon Elastic Compute Cloud (EC2). The course will conclude with a final exam similar to the HPC with GPUs course. For the course development, I intend to collaborate with colleagues teaching similar courses in the department and elsewhere 1 . Akin to classroom teaching, my goal is to maintain high mentoring standards in the research laboratory, encouraging students to think critically and intuitively to address complex real-world problems. In addition to shaping students into quality researchers, I envision training them to become skilled speakers and effective writers. To help broaden students’ research perspective, I aim at helping students to find lucrative internship opportunities in esteemed industrial organizations and national laboratories. My teaching and mentoring methods will always strive to adapt, evolve, and re-cast to yield highly trained, quality professionals that will make a mark in the society. 1 Many thanks to Jimmy Lin from University of Maryland and Trilce Estrada from University of New Mexico for sharing their syllabi online. 2