Hi! I'm an instructor here at NMU. I'm currently working on my dissertation, which is on holographic algorithms. My interests include algorithms, computational complexity, software engineering, graphics, and pretty much any kind of mathematics.
This is an intro course to HTML and CSS. It is primarily intended for non-majors, although some CS students take the course and some non-majors decide to change to CS after taking it. Here is an example of a website written by one of my students.
This is an intro course in programming (using Java). This is the first course most CS majors take, but many non-majors also find it interesting and broadens their perspectives on computers and computation.
This course is a continuation of CS120. Incoming CS majors with significant programming backgrounds sometimes take this as their first CS course. We focus on topics such as string handling, algorithm analysis, recursion, data structures, interfaces, inheritance, and threading, all the while reinforcing CS120 topics and further honing programming skills.
This is an upper-level course in algorithm design and analysis, i.e. how to design efficient algorithms and figure out how much time and/or space they need to run. Topics include asymptotic notation, greedy algorithms, divide-and-conquer, dynamic programming, and NP-completeness.
In this course, we study strategies for writing computer programs that improve with experience. The basic theory of machine learning is covered, including concepts such as hypothesis space, bias, overfitting, training sets, and testing sets. These concepts will be applied to specific learning techniques, such as decision trees, bayesian classifiers, belief networks, instance-based learning, neural networks, and support vector machines (selection depending somewhat on time and interests of the class).