Associate Professor of Computer Science
Computer Science


  • Ph.D., Iowa State University (2012)

My Love for Teaching 

As the ancient Chinese philosopher Xunzi said, ‘Not having heard something is not as good as having heard it; having heard it is not as good as having seen it; having seen it is not as good as knowing it; knowing it is not as good as putting it into practice.’ The best way for one to learn and deepen their understanding is to put their knowledge into practice and involve themselves in learning activities. My essential goal in teaching is to engage students and foster active learning through practice, with which students consolidate their knowledge and absorb concepts faster. My role as a facilitator of educational experiences is to stimulate their creative thinking, assist them with forming good learning habits for lifelong learning abilities, and help them prepare for the real world. 

 The courses I teach include: 

  • CS105: Digital Media Computing: This is an introductory computer science course that covers various techniques for the creation and manipulation of multimedia. Students learn the concepts and skills of object-oriented programming by designing and implementing a series of digital effects. The final project I assign to students usually requires that they create a short movie that resembles an e-card for holidays, Mother’s Day, or Father’s Day. 
  • CS150: Data Structures and Algorithms: In this course, students learn multiple data structures and accompanying algorithms, and use them to analyze problems and develop object-oriented solutions to problems.
  • CS301: Principles of Programming Languages: The general objective of this course is for students to learn at a theoretical level about programming paradigms and their features so that students can quickly pick up a new language and make better use of any programming language they desire. 
  • CS303: Theory of Computation: This course is an introduction to the theoretical foundations of computer science and formal models of computation. Students learn the basic abstract machine types and the basic types of formal languages, as well as the correspondence between those machine types and languages. They also learn the difference between computable and incomputable problems, and tractable and intractable problems.
  • CS420 Artificial Intelligence: The course is an introduction to the basic artificial intelligence concepts and techniques. Topics include problem-solving techniques, heuristic searches, and knowledge representation.

My Research Interests

My research area is interdisciplinary in that it involves artificial intelligence (AI), theoretical computer science, and game theory. Since graduate study, I have been working on knowledge representation and reasoning (KRR) and modal logic. KRR is a field in AI that is dedicated to representing information about the world in a form a computer system can utilize, designing formalisms that make complex systems easier to devise and build, and incorporating theoretical findings from logic to automate reasoning. As intelligent agents such as robot vacuums and autonomous cars assume a larger and larger role in our daily lives, enabling an intelligent agent to determine consequences and to take best possible actions by reasoning about the real world becomes more and more important. My research has been centered around designing logical systems that represent information in situations involving intelligent agents and are equipped with symbolic reasoning capability. In designing such logical systems, we need to have languages that contain logical operators to qualify the truth of a judgment, such as, ‘An agent knows that …’ Such a logic is often called modal logic. Among all forms of modal logic, I am especially interested in epistemology—the theory of knowledge, often related to the context of interaction between multiple agents in a system in game theory, used in AI to describe and reason about real-world applications. 

Selected Publications