Teaching Philosophy and Research Statement Computer science is a relatively new field where the incredible rate of innovation helps to accelerate the rate of change in all fields of study. But as in any discipline, there are core ideas in computer science that a student must grasp in order to effectively analyze new ideas. In terms of teaching, students must be taught both the specific programming skills and languages which meet the needs of current industrial employers as well as the underlying structures, algorithms, and analytic skills which give them the solid foundation to further develop new knowledge and skills as lifelong learner. My experience has led me to believe it is very important to let students become excited about a subject, become inspired by a subject, and be motivated in a class. No student will want to learn unless he or she is excited, inspired, and motivated. So when I teach a course the first thing I do is to engage students’ interest by using real world examples. I also maintain connections to industry, and thus I am able to recommend some students to have internship in industry. My typical class includes a balance of lecture, discussion and hands on practice. I present a large number of examples in my lectures. Education research has shown that the best way to explain abstract concepts is through examples. I encourage active learning by asking questions and proposing problems for students to solve. This is particularly important in programming language courses. For example, in my Introduction to Computing via C++ course, the class is held in lab setting where students have their own computer to work on the problems. I expose students to concepts three times in class room: once in the lecture via examples, a second time via short questions and answers exercise, and a third time via hands on practice on coding. After repeating the fundamental concepts three times, the material to be learned is well understood by students. Outside of the classrooms, I usually assign homework that requires and exercises critical thinking and problem solving skills. The aim of homework is not only to reinforce the understanding of the concept but also to prepare student to solve real world problems. I find some students need significant support outside of the classroom. During my office hours, the one-on-one contact I provide is important for the success of many students. In addition to allowing me to give targeted guidance, the one-on-one session gives me the opportunity to pinpoint where many students seem to be struggling with understanding the material. For most of the courses I taught, I used a multimedia approach whenever possible. This avoids the tedious work at a chalkboard. I also make extensive use of electronic educational tools like E-Blackboard. I use Blackboard to post the syllabus, lecture slides, project guidelines, sample code online, so that students can focus on the concepts being presented in the classroom. Blackboard also allows the students to review and study the materials before class so that they can inform me as to which parts are difficult and confusing. This results in better interactions with me as the teacher and enables me to focus on the key points in the lecture and thus the teaching and learning are more effective. A brief description of my research (which I will use to get under graduate involved in research) deals with the explosive growth of the World Wide Web. Popular Web sites receive an enormous share of Internet traffic. These sites have a competitive motivation to offer better service to their clients at lower cost. One of the solutions is to make use of the content distribution network (CDN). CDN is a group of geographically dispersed servers deployed to facilitate the distribution of information generated by web publishers in a timely and efficient manner. When we design a CDN we need to find a replica hosting system to provide its clients with the best available performance while consuming as little resources as possible. In a sense, we are dealing with an optimization problem. This problem is proved to be NP-complete. The research community has seldom addressed replica placement and only few solutions have been proposed. In my research I developed a mathematical model for the optimization problem. I am able to give details about how to apply genetic algorithm to the proxy server placement problem. Simulation results for a simple topology and a more realistic topology are presented for both greedy algorithm and genetic algorithm. I have analyzed the impact of varying the parameters. In particular I experimented with different initial populations, mutation rates, mutation step sizes, different methods of crossover, selection
strategies and finally I studied under what condition to terminate the genetic process. My future research plan is to further investigate CDN in the multimedia domain.