Teaching Philosophy

As a teacher I like to compare myself to the Bing page, which allows you to search for keywords but at the same time provides the joy of discovering something new on every visit. My students can come to me with questions and I will provide them information or pointers to resources about things they want to know. At the same time I will provide interesting hints and nuggets of information that will pique their interest in topics that they need to learn. As a teacher I would like to introduce my students to the wealth of new information, without taking away the wonder and joy of self-discovery. I see teaching as a way of helping students understand established concepts, learn new skills, and discover creative ways of applying their newly learned skills.

Teaching Style

Computer Science is a discipline that involves a lot of self-learning. Computer programming especially requires a lot of learning by doing. The best way to master programming is by trial and error which can sometimes be a frustrating experience for the novice programmer. I view it as my job to reduce these frustrations by teaching students the fundamentals of programming. I emphasize on the need to break down computational problems into smaller pieces that can be handled easily. The individual solved pieces can finally be assembled to construct the complete solution. I highlight the importance of being able to identify and interpret error messages, learning effective debugging techniques and locating authentic resources for online-help. I encourage students to identify the problem that must be solved in a program and come up with multiple possible solutions. As a teacher of Computer Science I ask my students to treat me as a consultant, whose help they can seek in addition to other available resources like textbooks, sample code, online manuals as well as discussion with peers.

Teaching Experience

I have worked as a Teaching Assistant for various introductory Computer Science courses. I conducted computer-lab sessions, recitations and office hours for an average class size of 20-30 students. During one-on-one sessions I explained in details the problem sets assigned in class and guided students towards the correct approach to find solutions. I have worked with students from diverse academic backgrounds and helped them grasp concepts in computing and programming by creating additional online help materials.

As an instructor for the Duke Talent Identification Program I taught an online Java programming course to a class of about 25 high school students. I designed the curriculum, developed course materials, conducted online lectures, monitored student discussions, and assigned final grades using the Blackboard Learning Management System.

My graduate coursework included courses like Instructional Uses of Technology and Introduction to College Teaching where I learned about theories and best practices of teaching in today's classroom. I reviewed techniques successfully employed by teachers in incorporating technology in the curriculum for the tech-savvy student population. This helped me come up with my own ideas for using instructional technology to my advantage.

In addition to my academic experience I have also been a volunteer instructor for an online ESL class as part of the United Nations Online Volunteering Program and a science coach for the BOOST program at Duke. I have also helped with conducting brief sessions introducing programming to middle school children using Alice at SIGCSE 2010 Kid's Camp and Duke FEMMES outreach event.

Course Offerings

I would be like to offer introductory courses like Introduction to Computing Concepts and Competencies, Introduction to Computational Thinking, Alice Programming with Animation Movies, and Java Programming for Computer Games. These courses would be aimed at introducing computer science and its usefulness as well as excitement to non-majors and students who have never been exposed to Computer Science. My course offerings would also include advanced courses aligned with my research interests like Machine Learning and Computational Genomics. Through these advanced courses I would like to introduce students to the world of interesting research problems which can be solved with the help Computer Science.

Course Materials

Here is a link to some of the teaching materials I have developed.