Teaching Philosophy

Computer science is the study, design, and implementation of processes, information (data), and their representations in computational systems coupled with a deep understanding of how such systems interact with human users and other systems. Its outcomes pervade every aspect of modern daily life, and yet, few truly understand what it means to be a computer scientist. I strive to convey the message to students of all majors that, at the core, computer scientists are builders and problem solvers, architects of new virtual and physical technologies used by real people. At the same time, I believe that computing is inherently a skills-based discipline. Thus, just as in music, sports, or creative writing, knowledge in the theory of computing must be accompanied by hands-on practice aimed at building skill. That is, I believe computing is learned best through actively doing computer science, rather than just talking about it. Learning is further enhanced by high levels of student-engagement and self-motivation, and these are fostered through the integration of authentic, real-world problems early and often throughout the curriculum.


Links to Teaching Resources

Current students, be sure to check the course Blackboard Site for the most up to date information.

Example code and other notes from class will be posted (where applicable) on the course materials page linked below. Click your course number and provide the login credentials to access materials (see Blackboard for password).

Fall 2017

  • CSCI4250/8256 -- Human Computer Interaction
  • CSCI1620 -- Introduction to Computer Science II

Spring 2017

  • CSCI4260/8266 -- User Experience Design

Fall 2016

  • CSCI4250/8256 -- Human Computer Interaction
  • CSTE8030 -- Computer Science Principles for Teachers

Summer 2016

  • CSTE8040 -- Object Oriented Programming for Teachers (co-taught)

Spring 2016

  • CSCI4260/8266 -- User Interface Design and Development
  • CSTE8020 -- Exploring Computer Science for Teachers (co-taught)

Fall 2015

  • CSCI4250/8256 -- Human Computer Interaction
  • CSTE8030 -- Computer Science Principles for Teachers

Spring 2015

  • CSCI4260/8266 -- User Interface Design and Development

Fall 2014

  • CSCI4250/8256 -- Human Computer Interaction
Affinity diagramming project

Spring 2014

  • CSCI3320 -- Data Structures
  • CSCI4260/8266 -- User Interface Design and Development

Fall 2013

  • CSCI4250/8256 -- Human Computer Interaction
Screenshot of an infoviz lab project

Courses taught prior to Fall 2013 at the University of Hartford.

Spring 2013

  • CS114 -- Fundamentals of Computing I -- using Scribbler robots in Java
  • MWD110 -- Foundations of Web Design and Development

Fall 2012

  • CS114 -- Fundamentals of Computing I -- using Scribbler robots in Java
  • MWD110 -- Foundations of Web Design and Development
  • MWD410 -- Senior Capstone
A Scribbler 2.0 Robot

Spring 2012

  • CS114 -- Fundamentals of Computing I -- using Scribbler robots in Java
  • CS391 -- ST: Human-Computer Interaction
  • MWD110 -- Multimedia Web Design and Development I (intro)

Fall 2011

  • CS175 -- Introduction to Internet Programming
  • MWD110 -- Multimedia Web Design and Development I (intro)
  • MWD410 -- Multimedia Web Design and Development III (capstone)
Pic of HTML source code

Spring 2011

  • CS110 -- Introduction to Computers
  • CS114 -- Computer Programming I
  • MWD110 -- Multimedia Web Design and Development I (intro)

Fall 2010

  • CS175 -- Introduction to Internet Programming
  • MWD110 -- Multimedia Web Design and Development I (intro)
  • MWD410 -- Multimedia Web Design and Development III (capstone)