Teaching Experience:

Unless otherwise noted, all classes are actively being taught at Kentucky State University.

Courses Newly Designed or Redesigned

• EE 101/EGR 199 – Creativity and Design in Electrical & Computer Engineering

This course provides an introduction to the process and application of creative design and problem solving within science and engineering. Emphasis is placed on applications and case studies in the areas of electrical and computer engineering. Several laboratory-based engineering problems are used to provide practical settings in which to apply and evaluate constraint- and product-focused strategies for creative design and problem solving. In addition to technical and aesthetic considerations, ethical and cultural influences on the creative process are also discussed. Taught in Fall 2011 at the University of Kentucky. Now folded into the new (as of Fall 2016) First Year Engineering Experience

• COS 107 - Problem Solving, Logic & Design

This course serves as the introduction of students to both program design and development. A more modern name for this course would be Computational Thinking. The programming language for this class is Python with an emphasis on data types and structures in preparation for object-oriented programming. This course is designed to also be used in online and dual-credit classes. It is heavily modularized along with annotated screencasts.

• CS 216/DGE 300 - Introduction to Software Engineering

This course has been developed from scratch at the request of the University of Kentucky, and introduces the students to the Unix operating system and the tools used in the development of modern, large-scale software systems. Topics covered are advanced object-oriented concepts in C++ (including name mangling and interfacing with legacy C libraries), compilers, linkers, libraries, build systems (make, Autotools, and CMake), revision control systems (git), XML processing and validation (via XML Schema), object serialization and deserialization, command-line argument processing, and mixing compiled and interpreted code using Python scripting. Taught at both the University of Kentucky and Kentucky State University.

• COS 301 – Computer Organization

This course serves as the introduction to the mathematical and hardware concepts underlying computer systems. After a short historical overview, it covers the basic circuit and logic elements required to store and represent information in digital form. Considerable time is spent on the various integer and floating point formats for numeric data and the resulting safety implications of their use in embedded systems. In addition to number representation, students are introduced to Unicode for character representation and its various encoding schemes such as UTF-8 and UTF-16. The course explores the internal structure of a simple