Teaching Philosphoy


My teaching philosophy revolves around identifying, sustaining, and expanding students' motivation in a way that leads to effective and sustained learning. I teach not only to provide guidance, knowledge, and expertise to my students but, more importantly, to motivate them to keep an inquisitive mind. This mindset encourages them to investigate and invent novel and efficient ways of solving complex problems. Motivation impacts students' learning and behavior, including effort, persistence, cognitive processing, and performance.


I believe that my responsibility as a teacher is to challenge and guide students to achieve three crucial goals: (1) cultivate interest and intellectual curiosity in the subject matter}, (2) develop robust problem-solving strategies, and (3) learn to work collaboratively. Therefore, I am devoted to developing and adopting data-driven, evidence-based pedagogical practices that help my students achieve these goals. These practices are based on established educational theories and my teaching and research experience. 


Cultivating interest and intellectual curiosity in the subject matter.

When students are motivated, their behavior is directed towards the pursuit of mastery, their failure tolerance is increased, their initiation and persistence of learning activities are improved, and their cognitive processing is enhanced. Thus, I design my course curriculum based on theories of academic motivation, which suggest that feelings of autonomy, competence, and purpose are the stimuli for intellectual curiosity and for developing adaptive and constructive learning. (Seifert, T., 2004. Understanding student motivation. Educational Research, 46(2), pp.137-149). 


Sparking interest and curiosity with autonomy and competence. When students are offered a degree of freedom and a sense of competence, they are more willing to engage deeply in meaningful learning activities. Students make independent choices within the framework of the core course objectives due to autonomy and competence focused design of my curricular activities. For example, a significant component of the Database Systems course I teach here at Illinois is the semester-long project in which students build a database-centered web application. In this project, students have the autonomy to choose the application domain, the web development platform, the data model, and data sources. Such independence ignite students' interest and intellectual curiosity, evident by the quality and innovation of the numerous projects that exceeded the project requirements and expectations. 


Aligning course activities with students' purpose. To determine students' motives for taking my course, I ask them to fill out a pre-course survey on the first day of classes. I use this feedback to design course activities that align with students' interests. For example, I found that students often take the Database Systems course to learn SQL (Structured Query Language) to prepare for job interviews. Thus, I design course assignments based on interview questions and real-world data management scenarios. When students knew that these assignments used real interview questions, considerably more students were highly engaged with this material and provided positive feedback about these assignments and the course in general. It is also crucial to connect course content to real-world applications. Students are more interested to learn new concepts and techniques when their connection to real-world applications is made clear. For instance, when I teach query optimization in my database course, I discuss how cost-based optimization is a core technique used in virtually all commercial database systems and how these techniques can be used in building other software systems.


Developing robust problem-solving strategies. Critical thinking is an important learning goal embedded in every component of curriculum I develop. I firmly believe that teaching students to explore various ways of thinking and developing robust problem-solving strategies is as crucial, if not more important, than teaching the course content itself. When I teach students how to identify a problem, generate potential solutions, evaluate these solutions, implement the best solution, and examine its effectiveness, I have equipped them with a lifetime skillset that will enable them to solve any problem effectively.


A crucial component of teaching critical thinking is designing assessments in which students can explore and examine potential solutions. To that end, I developed sophisticated cloud-based external graders that automatically generate new (relational [SQL], document [MongoDB], and graph [Neo4J]) databases and load them with randomly generated data based on constraints defined by the question designer. With this grading infrastructure, I offered database programming assignments where students could develop and examine potential solutions. Because students receive new data instances for every new query attempt, they must develop a solution that works regardless of the data stored in the database. Also, we do not debug students' solutions. Instead, we ask them to explain their logic and discuss their solution at a conceptual level. Such policy is in place to ensure that students rely on themselves and develop their captious thinking strategies and build confidence in their problem-solving skills. 


Another evidence-based technique for teaching critical thinking is assigning open-ended assignments with multiple (varying quality) solutions. For example, as part of the Data Management in the Cloud course, students were provided with real-world big data sets and asked to identify the most suitable data model (e.g., key-value stores, document database, column-family store, relational database). Determining the best model would have students carefully examine the tradeoffs among various data models and align their chosen model with the application requirements and the characteristics of the could infrastructure.


Learning to work collaboratively. I strive to create a learning environment that cherishes and promotes collaborative learning in all classes I teach. Allowing teams of two or more students, often with the support of the teaching staff, to work jointly on a learning task have social, psychological, and academic benefits, as suggested by social and behavioral sciences research. Benefits include greater productivity and higher achievement, more supportive and committed relationships among classmates, and better psychological health, social competence, and self-esteem (Laal, Marjan, and Seyed Mohammad Ghodsi. ``Benefits of collaborative learning''. Procedia-social and behavioral sciences 31 (2012): 486-490).


To support the offering of collaborative learning, and as part of a project funded by The Grainger College of Engineering, My colleagues and I designed and created new functionality in Prairielearn (an online service that offered individualized assessments) to support group assessments. This new functionality allowed instructors to offer group assignments and track student collaboration via assessment logs. Instructors can create groups or let students create or join teams to work on collaborative assignments. This new functionality was used to transform the student instructional time; the traditional passive lecture experience was replaced with hybrid flipped-classroom. Students can now work in teams of three to four people to solve challenging problems with the support of the teaching team. This model worked very well for both in-person and remote instruction. I cannot fully describe the joy I feel observing students engaging in thoughtful and deep discussions about the task at hand. These discussions would not happen in a class where students are not offered the opportunity to learn collaboratively. 


By igniting students' intellectual curiosity, engaging them in critical thinking activities, and helping them learn collaboratively, I am confident that my students can take on any challenge they may encounter in their academic or professional careers.