Gordon S. Novak Jr.: Excellence in Teaching
Previous Awards:
- Teaching Excellence Award, College of Natural Sciences, 1998.
- Finalist for Friars Centennial Teaching Fellowship, 2002.
(One of 8 finalists out of over 200 nominees; see
message).
Undergraduate Teaching:
- I volunteered to teach CS 307,
Foundations of Computer Science. I taught CS 307 for 7 years (1995 - 2001),
including both small and large classes. I had overall responsibility
for classes totaling 500 students in Fall 2000, teaching 280 students myself.
I taught an Honors section of CS 307 to 50 students in Fall 2001.
Not many tenure-track faculty in Computer Sciences have been willing
to teach lower-division courses, but I like the energy and enthusiasm
of these new students.
- I developed an on-line
grade check web page for CS 307.
This program lets students see their grades at any point during the
semester and estimates their final course grades. The purpose of
this web page is to let these freshman students know what their
likely grade outcome will be, with the goal of reducing the failure
rate: many freshmen are not prepared for the rigors of UT, since they
were able to make good grades by "coasting" in high school.
- I teach CS 375, Compilers, twice per year
(Spring, Summer).
- Consistently high teacher evaluations
over many years of teaching.
- I always give a rigorous 3-hour final exam at the scheduled time.
Although it is considerable work to make and grade the final exam,
the study that the final exam requires helps to cement the material
in the minds of the students.
- I circulate an attendance sheet in each class, and I monitor
attendance and contact students with excessive absences. Although this
may not be appreciated by the students at the time, I find that it causes
some who would otherwise skip class to attend, and it significantly improves
student performance and reduces the failure rate.
Graduate Teaching:
- CS 381K, Artificial Intelligence. This is a
graduate Breadth class that is taken by a large fraction of the graduate
students.
- CS 394P, Automatic Programming. This is a
course in my area of research specialization.
Lecture Notes:
- I prepare a detailed set of lecture notes for each class I teach.
- Lecture notes are available to students in printed form and on the web.
- My lecture note pages on the web are downloaded over 500 times per day.
Most of these downloads are from outside UT; students and faculty
world-wide are using my lecture notes.
- Faculty at several other universities use my lecture slides and programs
in teaching their classes. These include CS 375 (Diane Law at Washington
State, professors in Korea and Idaho) and CS 381K (Sarah Chodrow and
Robert Simmons).
- My A.I. teaching materials have been requested by over 40 faculty at
other colleges and universities.
Pedagogical Computer Programs:
I often write pedagogical versions of computer programs for teaching.
- Small example programs help students to understand the essence
of important algorithms.
- Starter programs and auxiliary programs allow students to write
large projects in classes. For example, students in my CS 375 class
write real compilers that compile Pascal to machine code that runs
on hardware. I provide auxiliary programs to help with mundane
tasks (e.g. symbol table, pretty-printing expression trees,
generation of machine instructions)
and starter programs that allow the students to extend a small
running program rather than starting from scratch.
- Some students have used my compiler programs as the basis for
undergraduate research projects.
- I designed and wrote (with a graduate student, Sowmya Ramachandran)
a Scheme Tutor program for CS 307 to help students learn the
basic functions of Scheme. The program presents small example
problems (taken from previous exams); the student gives the result that
would be returned by Scheme for each problem. The program incorporates
tutoring based on experience with the exams: depending on the student's
wrong answer, the Scheme Tutor gives specific instruction to correct
the misconception that produced the wrong answer. The Scheme Tutor
was given to the CS 307 students to help them prepare for exams.
Advising and Student Activities:
- Graduate Adviser, 2001 - present.
- Participated on the committee that developed the Turing Scholars program.
- Participated in UPE Programming Contest each year, beginning in 2000.
The students really seem to appreciate faculty participation in this
contest.
- Participated in student activities such as Gone to Texas, ACM Picnic.
Student References
Student Messages
Student Comments
Teaching Philosophy