TSS

advertisement
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
Download