General Information
Details
Database Systems, primarily Relational Systems and hybrid Relational & Non-Relational Designs
Automation Support for Computer Science Instruction, including Visualization Systems, Interactive Learning Environments, and Automated Assessment and Evaluation Systems
Computer Architectures and Operating Systems
Data Structures and Algorithms, especially with respect to Virtualization, Parallelism and Concurrency
Programming Languages including Functional, Object-Oriented, Declarative, and other Paradigms
Software Architecture, Design, and Engineering
I’ve had the honor and pleasure of teaching in various environments over the past twenty-eight (28+) or more years. And though my philosophy on teaching has continued to evolve over the years, a few “core concepts” have always shaped my thinking about computing education:
[1] Engaging my students in the learning process as actively as possible.
[2] Helping my students develop the competence and confidence to reason about and solve problems in this discipline.
[3] Demonstrating to my students that making errors – and learning how to identify and correct them – is a normal part of the learning process.
[4] Sharing my passion for this discipline with my students.
[5] Affirming that learning is – and should be – a lifelong process.
Finally, I’m constantly experimenting with new computing concepts and technologies so that I can share these advances with my students. And I always treasure the opportunity to talk to my students about the learning experience from their perspective to consider how I can incorporate their observations and suggestions into my courses.
Interests
Automation Support for Computer Science Instruction, including Visualization Systems, Interactive Learning Environments, and Automated Assessment and Evaluation Systems
Developing Alternative Course Structures and Techniques for the Flow & Sequencing of Course Topics
Contributions
Adapted courses to use the resources provided by Canvas (as our official Learning Management System) as effectively as possible, to including recording videos and writing electronic assessments
Implemented automated practice and assessment systems to support teaching the Database Systems, Software Architecture and Design, Computer Architecture, and Operating Systems Courses
Developed new courses to teach computing concepts to students without traditional Computer Science backgrounds, including a course titled Operating System Principles for Information Assurance