Undergraduate Education

Teaching Summary

Over my career I have taught many different courses ranging from Graduate Theory courses to courses in Unix system administration. I introduced the first PC course at the University of Maine and also the first Cybersecurity course.

In Fall 2009 I took over our introductory programming course and moved it from Scheme to Python. I started promoting it to other departments as a suitable course for their majors. The course uses computer games as examples for the course and has been very successful. Enrollment in the Spring 2011 semester was 80 students, most of whom were not CS majors. This is up from 30 students in Spring 2010. The highlight of the course is a game exposition that we do at the end of the semester. The Fall 2010 Exhibition attracted TV and newspaper coverage. The results produced by the students were so impressive that Jackson Laboratory hired one of the teams to write an educational game for them. You can click here to see TV coverage and see press coverage by clicking here.

I am interested in finding ways to make Computer and Information Science courses serve larger populations. I believe that it is critical that all students have a much better understanding of computing and information science.

I have been successful at organizing events that have received extensive publicity. One event, The Green Supercomputer Demonstration, received 70 citations nationally and internationally and was featured for a while on the NSF homepage.

I also think that it is important for students to be able to measure their achievements against the outside world. In 2008-2009 I put together a team to compete in the Northeast Collegiate Cyber Defense competition held at RIT. We finished fourth out of five teams. In 2009-2010 we hosted the competition at the University of Maine and our team finished second out of nine teams. In 2010-2011 we finished sixth out of eleven.  We competed in 2011-2012, and finished third out of twelve teams. We will be hosting the 2013 NECCDC on our campus in March 2013. We now have an active cybersecurity club and team and we hope to continue fielding a competitive team. The competition has sparked a tremendous amount of interest among our students.

In 2009 some colleagues and I started a Maine state high school cyber defense competition with funding received from the University of Maine System. In 2010 we were able to once again receive funding and ran a second year of the program. We ran it again in 2011 and are in the process of lining up long-term funding so we can keep the competition going.

In general, I am interested in education at all levels and believe that there is much that can and must be done to improve computer science education. I have been working actively to integrate new technology into my courses and to ensure that we collect appropriate data for the purposes of assessment.

Computer Science Courses Taught

  • FORTRAN Programming
  • C++ Programming
  • Assembly Language Programming
  • Windows Programming
  • Discrete Structures for Computer Scientists
  • Logic and Set Theory for Computer Scientists
  • Theoretical Computer Science
  • Algorithms
  • Chaos Theory
  • Introduction to Cybersecurity
  • Computers, Ethics and Society
  • Introduction to Problem Solving with Computers (CS Introductory Course using Python)

Mathematics Courses Taught

  • Calculus
  • Combinatorics
  • Complex Analysis
  • Modern Algebra
  • Statistics
  • Mathematics for Non-Mathematics Majors