The first 7 are peer-reviewed articles. The rest are helpful articles distributed to students for class.
The Journal of Computing Sciences in Colleges, Vol. 28, October 2013.
  One of the primary aims of a college education is to foster students’ ability to think critically and analytically. How does this apply to students of computer science? Many computer science students struggle to master the elemental techniques of recursion, inferring qualitative patterns from data, and mathematical induction over countably infinite sets. In this paper, we illustrate all of the above while developing pedagogically rich solutions to a common example used in typical CS curricula: enumerating the rational numbers. We go deeper than typical curricula to help students think like computer scientists.
The Journal of Computing Sciences in Colleges, Vol. 26, October 2011.
  Few programmers, and even fewer CS curricula, are cognizant of some of OOP’s more powerful aspects. In  this  paper  we  explore  multimethods,  contract programming,  and  implementing  objects  without  an  explicit  class  type,  with  examples  in popular,  modern  programming languages.
The Journal of Computing Sciences in Colleges, Vol. 22, October 2007.
  This paper discusses the interrelation between design patterns and principles and reports on a pilot course in teaching the principles and patterns of software design that, after two successful semesters, was adopted as a requirement in a then newly inaugurated bachelor's degree in software engineering.
The Journal of Computing Sciences in Colleges, Vol. 22, October 2007.
  This paper illustrates how the generic algorithms found in C++'s Standard Template Library give programmers an elegant tool to craft high-level, high-performance, declarative code. The advantage is enhanced code readability, faster time to project completion, and fewer opportunities to introduce bugs.
The Journal of Computing Sciences in Colleges, Vol. 22, October 2007.
  Presents pedagogical techniques designed to motivate and simplify undergraduate instruction in the theory of computation. It argues that many standard texts over-emphasize abstract formalisms and are poorly matched to typical CS students, and it offers concrete classroom tools—worked examples, construction-first proofs, visual automata techniques, and stepwise conversions between models—that make core topics accessible without sacrificing rigor.
The Journal of Computing Sciences in Colleges, Vol. 20, October 2006.
   This paper explains why computers sometimes seem to lose decimal digits when they do math. It shows how floating-point numbers are stored and why rounding can make results look slightly off, even when the arithmetic seems straightforward. Includes techniques to avoid such errors.
Pi Mu Epsilon Journal, Fall 1978.
   A short paper about how to work with functions of matrices using familiar ideas from linear algebra. It looks at ways to represent matrix functions through polynomials and related algebraic methods, making the topic more approachable for readers with some background in mathematics. The paper is a concise, practical introduction to a classical problem in matrix theory.
2025
  A good read to help trigonometry students think analytically.
2016
  Shows how and why partial pivoting efficiently solves systems of equations with minimal rounding error.
2015
  In finding the root of a non-linear equation in a single variable by an iterative method it is desirable to obtain maximum efficiency. That efficiency is measured by order of convergence, which this note explains.
2014
  The most elegant unit-testing framework in the smallest package.
2007
  Implement your own library-quality sine function.
2006
  Minimize rounding error when implementing automatic integration of functions.