Teaching Philosophy

My goal as an instructor is to help students build their knowledge and skills in the domains of both science and design so as to 1) implement their own computational design and simulation tools, 2) make creative design outcomes using these tools, and 3) develop innovative packages exploring new markets in the real world. I would like them to bridge the gap between these two domains so that they can communicate and collaborate with top scientists/engineers as well as professional designers upon completing their studies.

I am interested in teaching the following courses:

• Computer Programming and Design Tool Development:
Basic programming skills to implement 2D/3D CAD, Building Information Modeling (BIM), Web applications, 3D Games, Database Management Systems using JAVA, C/C++/C#, Delphi, XML, HTML, ActionScript in Flash, MaxScript in 3DS Max, MEL in MAYA, etc.,

• City Modeling and Simulation:
Development of 3D virtual reality (VR) city models to visualize and simulate various urban and building issues such as traffic flow, noise and pollution, evacuation, human behavior, and a carbon footprint. In these types of simulations, a VR package, GIS data, and the other simulation tools are used and customized with the SDK. Tangible interfaces and devices are also developed to communicate interactively in the VR environments.

• Parametric Modeling and Fabrication:
Design workshop using parametric modeling tools and scripting such as Generative Components (C#), MEL & MaxScript, and Rhino Scripts (VBA). The students learn the tools by making algorithmic architectural/urban models and animations.

• AI programming and Procedural Architectural/Urban Modeling
Artificial intelligence (AI) topics in design such as neural networks, fuzzy systems, genetic algorithm, machine learning, decision trees, searching, and image processing. The students learn the procedural urban/architectural modeling technologies based on shape grammar.

My teaching method is simple. For each class I first explain the concepts and theories of a topic using slide files. Second, I demonstrate one example related to the topic by implementing codes in front of the students. After this, I assign one extended exercise to be completed during class time. Students who cannot finish it within the allotted time are asked to come to my office hours, and I help with debugging their codes. By repeating this workflow throughout a semester, students learn how to manage their time and skills and recognize how difficult problems can be solved by themselves. In addition to these weekly assignments, I give several core projects to develop more creative tools/designs that take several weeks. At the end of a semester, these projects are presented and reviewed by other instructors. I have used this approach for class sizes that have ranged from over 250 undergraduates to small seminar courses with less than 10 graduate students, and for class types from design studios to hands-on computer programming courses. Though it takes more time to prepare all of the slides and to respond to all of the questions and problems from students, I have concluded that this has been the best fit for me through my ten years of teaching. I have received relatively high evaluations from students because I am conscientious, tolerant, and spend as much as I can with them.

In order to keep students motivated, I try to show practical applications from my research activities. This has included topics such as procedural urban/building modeling, visualization and simulation in virtual reality (VR) urban environments, design information management, and scientific analysis using a drive simulator. I also introduce research projects by my collaborators from around the world. My students are very eager to see the most advanced technologies not only in science fields but also in art and design.

I evaluate student projects on creativity, quality, and management. For students who propose projects that are too complicated or difficult, it is important to change the goals to become more feasible. For those who propose projects that are too trivial or straightforward, it is important to suggest more intelligent goals by showing various sources. In implementing computational design products, I believe that it is most important for students to decide upon a proper solution that corresponds to their skill sets. On the other hand, how proper advice I can make at the proper stage for each project is the evaluation of my ability as an instructor.

As a junior faculty member, I am still searching to find better way to teach and always interested in continuing to grow and learn from the knowledge of students and colleagues. My dream is that my students will be top researchers that will collaborate or compete with me in future.