Teaching
Teaching Philosophy
Learning happens when students are engaged, active and curious participants. Only when students think, wonder and do can they actually begin to appreciate what they are learning and why. I believe this is particularly true for skills based courses in which students are expected to take away more than just knowledge but also abilities. When a student puts into practice a skill such as building a database or implementing an algorithm, he or she can begin to examine, see, appreciate and understand the skill. It becomes possible to identify difficulties, consider alternative solutions or uses of the skills or ideas which have been presented. It is important that the student routinely asks and thinks not only about the "how" but also the "why". Considering why something is learned or practiced allows the student to make connections with other concepts, value what is being taught and hopefully further simulates the student's intellectual curiosity.
The primary goals I have for my students are that they become general problem solvers and evaluators of information. In this fast pace world, we are constantly exposed with an ever increasing amount of ideas, information and problems. A student needs critical thinking and general problem solving skills to be able to evaluate this information, analyze arguments and find solutions. In my opinion, these are skills that will always be in demand and make a student relevant in any marketplace. Critical thinking and problem solving skills also allow the student to better communicate and articulate his or her ideas and to be a good, responsible citizen. Furthermore, I want my students to gain the skills and confidence needed to become life-long learners. They should know that with practice, curiosity, confidence and perseverance, they can continue to acquire new skills and find new solutions.
Recently Courses Taught
Fall 2021
- CPS270: Computational Analysis and Simulation
- CPS301: Social Issues of Computing and Professional Practice
- CPS580: Supervised Machine Learning
Spring 2021
- CPS270: Computational Analysis and Simulation
- CPS301: Social Issues of Computing and Professional Practice
- CPS542: Analysis and Design of Algorithms
Fall 2020
- CPS270: Computational Analysis and Simulation
- CPS301: Social Issues of Computing and Professional Practice
- CPS580: Supervised Machine Learning
Spring 2019
- CPS301: Social Issues of Computing and Professional Practice
- CPS340: Advanced Data Structures and Algorithms
- CPS396C: Programming as an Intro. to Data Sciences
- ITC686: Big Data Analytics
Fall 2018
- CPS340: Advanced Data Structures and Algorithms
- CPS596F: Machine Learning
Spring 2018
- CPS180: Principles of Computer Programming
Fall 2017
- ITC630: Cloud Computing
- CPS180: Principles of Computer Programming
Spring 2017
- CPS180: Principles of Computer Programming
Fall 2016
- ITC630: Cloud Computing
Spring 2016
- CPS340: Advanced Data Structures and Algorithms
- ITC686: Big Data Analytics
Fall 2015
- CPS180: Principles of Computer Programming
- CPS340: Advanced Data Structures and Algorithms
- CPS360: Computer Design and Architecture
Summer 2015
- ITC630: Cloud Computing
Spring 2015
- CPS340: Advanced Data Structures and Algorithms
- CPS360: Computer Design and Architecture
Fall 2014
- CPS340: Advanced Data Structures and Algorithms
- CPS360: Computer Design and Architecture
Spring 2014
- CPS 360: Computer Design and Architecture
Fall 2013
- CPS 360: Computer Design and Architecture