Below you will find some candid remarks on the courses I have taught in the past few years. You can read more about my teaching philosophy and methodology in my Teaching Statement.
Introduces students to the science of constructing and attacking secret codes. An important goal is to present the mathematical tools — from combinatorics, number theory, and probability — that underlie cryptologic methods.
Background and Goals: This course is an alternative to MATH 185 as an entry to the Honors sequence. Students are expected to have previous experience with the basic concepts and techniques of first-semester calculus. The course stresses discovery as a vehicle for learning. Students will be required to experiment throughout the course on a range of problems and will participate each semester in a group project. Grades will be based on homework and projects with a strong emphasis on homework. Personal computers will be a valuable experimental tool in this course and students will be asked to learn to program in either BASIC, PASCAL or FORTRAN.
Content: This course gives a historical introduction to Cryptology and introduces a number of mathematical ideas and results involved in the development and analysis of secret codes. The course begins with the study of permutation-based codes: substitutional ciphers, transpositional codes, and more complex polyalphabetic substitutions. The mathematical subjects treated in this section include enumeration, modular arithmetic and some elementary statistics. The subject then moves to bit stream encryption methods. These include block cipher schemes such as the Data Encryption Standard. The mathematical concepts introduced here are recurrence relations and some more advanced statistical results. The final part of the course is devoted to public key encryption, including Diffie-Hellman key exchange, RSA and Knapsack codes. The mathematical tools come from elementary number theory.
Designed for students who wish to master the basic techniques of multivariable calculus, but whose major will not require a substantial amount of mathematics. Topics include vectors and vector-valued functions; multivariable and vector calculus including multiple and line integrals; first- and second-order differential equations with applications; systems of differential equations; and elementary partial differential equations. The course may emphasize different topics in the syllabus in different semesters.
Introduction to linear algebra for students who wish to focus on the practical applications of the subject. A wide range of applications are discussed and computer software may be used. The main topics are systems of linear equations, matrices, determinants, vector spaces, orthogonality, and eigenvalues. Typical applications are population models, input/output models, least squares, and difference equations.
Covers propositional and predicate logic; compactness and completeness by tableaux, natural deduction, and resolution. Other possible topics include: equational logic; Herbrand Universes and unification; rewrite rules and equational logic, Knuth-Bendix method and the congruence-closure algorithm and lambda-calculus reduction strategies; topics in Prolog, LISP, ML, or Nuprl; and applications to expert systems and program verification.
As a graduate student at Dartmouth College, I had the opportunity to teach four courses:
Here are my thoughts and comments on these courses.
This was an introductory course on calculus. The syllabus and other course information can be found here.
In order to maintain small class sizes, the course was divided into 8 sections for the first time that year. This was my first time teaching with so many colleagues. All instructors were graduate students and the course supervisor was very hands off. There was no natural decision hierarchy; all decisions were made by committee. Such a situation can often lead to disaster, but we were all well behaved and managed to avoid serious problems. Overall, I had a pleasant experience with this course. I learned a great deal.
Before the course started, an order came from above that all sections of the course should be in lock step. So there was little room for experiments. I was still able to implement small original ideas that I probably wouldn't have considered under different circumstances. Since I couldn't touch the course content, I focused on student interaction.
There is very little mathematics in today's popular culture; there is very little popular culture in mathematics. I haven't figured out what to do about the former, but I managed to do introduce a little more popular culture in Math 3. Every other Friday, after the weekly quiz, I would ask students to volunteer to read short skits. These skits were loosely based on popular movies or television shows and included topics covered in the previous classes.
The Playtime!
skits were very popular with students and the
effect on class participation was very noticeable.
Sadly, I had a lot of things on my plate that quarter and I had
to cut out Playtime!
before the end of the course.
I apologized to my students and they were very understanding.
I tried to get them to write skits, but they had a lot on their
plates too...
This was an independent project on the model theory of linear orderings designed for Tom Kern, a very talented Dartmouth undergraduate student. One of the goals of the course was to investigate the number of distinguishable linear orderings under Ehrenfeucht-Fraïssé games of fixed finite length. We are currently writing our findings for publication.
This was a honors course in vector calculus. The syllabus and other course information can be found here.
With only four students, this was the smallest class I ever taught. The basic model for each class was the following:
Sometimes, we deviated from this plan to cover extra topics. I used some class periods to give sneak previews of topics in higher mathematics such as basic homotopy, knot theory, and DeRham cohomology!
Since the students were very talented, we spent most of our time solving problems. To encourage the students to work together and develop their problem solving skills, I designed four roles for each student to play:
The students would rotate the roles from class to class. Although not perfect, this model was very successful as each student showed improvement in their problem solving skills at the end of the course.
This was a beginning graduate course on computability theory. It is unusual for a graduate student to teach a graduate course. I was initially assigned to teach Math 29, an undergraduate course on computability theory. There was great interest among graduate students for a course in computability theory, but the undergraduate enrollment for Math 29 was extremely low. Math 29 was cancelled and I was assigned to teach Math 109 instead!
The first part of the course dealt with basic computability theory. Instead of the traditional approach via Turing machines or recursive functions, I used the structure HF of hereditarily finite sets as the background for the theory. Computable and computably enumerable sets were then introduced via the Lévy hierarchy as Δ1- and Σ1-definable sets.
The second part of the course dealt with more advanced theory: the priority method and the structure of Turing degrees. For this part, I used Soare's textbook as a basic reference. (Which means I had to move away from HF somewhat to conform with Soare's approach.) I emphasized the connection with forcing as much as possible using ideas from Lerman's monograph.
One of the key advantages of using HF is that coding becomes much more intuitive. Indeed, the usual (set-theoretic) ordered pairs, finite sequences, finite ordinals are all natural objects in HF so there is no need for special coding devices. This approach also leads directly into admissible sets à la Barwise. However, the dynamic aspects of computability theory (which are key to understanding priority constructions) are much less apparent with this approach.