Jonathan Misurda
Teaching Portfolio
Teaching Portfolio
Computer Science as a discipline has a dichotomy in its focus. Half of the
material is theoretical while the other half is practical application. Because
this dichotomy can exist within even a single course, one of the most important
jobs for any teacher of Computer Science is to bridge this gap. It is much too
easy to lose a practically-oriented student while investigating the technical or
mathematical background of a topic. Despite the seemingly huge disparity in the
types of learning that these two aspects require, neither the theoretical nor
the practical exist in a vacuum. They each drive the other, and it is most
satisfying when as a teacher I can help students see the mutual influence, and
thus gain a fuller understanding than just knowing either aspect alone.
As an instructor, I see my main purpose as being a resource to help solve
problems and emphasize the application of the theoretical, while not losing
sight of the higher-level concepts. Problem solving, both in the pedagogical
sense, and in the sense of fixing the inevitable bugs associated with computer
programming, is a skill that can benefit anyone. I see it as imperative that I
not only show where problems may arise and how to prevent them, but also to
teach students how to solve them on their own. There is no shortage of problems
in Computer Science or in real life. Problem solving when applied to why a car
will not start is no different than when applied to why a program will not run
correctly. There is a logical process to investigate problems, and the students
who internalize this process should succeed better in Computer Science and
hopefully in life as well. It is my job to make this process evident and to
instill its value and utility.
To ground and unite concepts, my lectures often start with a theoretical
description of the new topic or problem to solve, followed by guided class
participation attempting to construct a solution. With several solutions
proposed, we then examine the tradeoffs that may make a certain approach better
than another. These new concepts are put into practice through weekly labs,
usually done in recitations. Quizzes, tests, and take-home projects review the
learning progress made and serve to tie larger concepts together.
One of the main benefits of being a teacher while still a student is that I
remember those aspects of teaching that have been most successful for me. My
teaching reflects those teachers who have had the most influence upon my own
education, and there seems no better way to reach my own students than to
emulate their strengths and combine them with my own personal style.
As a teacher, I represent more than an opportunity to get a good grade. I strive
to help all students gain a passion for Computer Science and learning in
general, one that I myself have and attempt to demonstrate in both my teaching
and my outside projects. There is a wealth of knowledge and understanding to be
gained both about computers and life, much of which is to be gained outside of
school. If I succeed in inspiring my students, they will learn on their own how
to be better Computer Scientists.
Teaching Appointments
Instructor, Computer Science Department, University of Pittsburgh:
- CS 1550 - Intro. to Operating Systems,
(Summer 2007)
- CS 0132 - Intro. to C and Guide to the UNIX System,
(Fall 2005 and Fall 2006)
- CS 1590 - Social Implications of Computing Technology,
(Summer 2006)
- CS 0004 - Intro. to Programming in Visual Basic, (Spring 2006)
- CS 0007 - Intro. to Computer Programming in Java, (Summer 2004
- Summer 2005)
Teaching Assistant, Computer Science Department, University of Pittsburgh:
- CS 1550 - Introduction to Operating Systems, (Fall 2004 - Spring 2004)
- CS 0401 - Introduction to Computer Programming in C++, (Summer 2001)
Other Teaching
Guest Lecturer:
- Developing for the NACHOS Educational Operating System, CS 1550, (July 1, 2004)
Tutoring:
- Clara Klein, CS 0004, Spring 2007 Term
Reflections on Teaching
During my experience as a graduate student, I have taught four different courses
over eight semesters, and have also been a teaching assistant covering a
recitation for two more semesters. Most of my experience as an instructor has
been for service courses where I am introducing programming to students with
little or no Computer Science background.
The majority of my teaching experience comes from two classes: CS 0007 -
Introduction to Java Programming (4 sections) and CS 0132 -
Programming in C and a Guide to UNIX (2 sections.) CS 0007 is geared
towards freshmen who did not take any programming courses in high school. The
class begins with a description of computers and how to write algorithms to
solve problems. Take-home projects are usually casino games since they are
interesting to write and test, and have very definite rules that are easy to
express in a programming language. CS 0132 is taken by a variety of students who
have had some programming experience before, but need to learn C. They are often
adults or graduate students from other departments that need to learn C to do
their work and research.
CS 0004 - Introduction to Computer Programming in Visual Basic was a
very challenging course to teach. The majority of the students were either
taking it to fulfill a graduation requirement for a Quantitative Reasoning
class, or were in a technology-related but non-programming field such as Medical
Information Management. Those students using it to fulfill a graduation
requirement were taking the course in place of algebra, and were generally
uncomfortable using math. The course greatly challenged these students, and I
often provided extra time in office hours for those students who felt they
needed additional help. I am proud of all of my students for successfully rising
to the challenge of the final project, writing the game of Minesweeper.
Programming Minesweeper required them to demonstrate the same abstract reasoning
that they were trying to avoid by not taking algebra.
CS 1590 - Social Implications of Computing Technology was a
wonderfully different experience to teach. The class consisted of majors who
were generally upperclassmen, and the course's focus was on writing and thinking
critically about the ethical issues of computers and the internet. Both the
students and I had an interesting and insightful time learning and discussing
controversial but important issues like net neutrality and copyrights.
Training
- FACDEV 2200 - University Teaching Practicum
- New TA Orientation
Contributions
New TA Orientation Presentations, University of Pittsburgh Arts & Sciences:
- Teaching Independently - (January 2, 2007)
- Dealing with Difficult Situations - (August 26, 2005 and
August 26, 2006)
- Cheating and Plagiarism (Math, Natural Sciences, and Engineering) -
(January 21, 2006, January 22, 2005, and September 11, 2004)
- Getting Started – Non-international Teaching Assistants -
(January 3, 2006 and August 27, 2004)
- Testing and Grading - (September 10, 2005)
Computer Science Department TA Orientation Presentations,
University of Pittsburgh:
- 6 Things I Learned as an Undergraduate About Teaching -
(September 2, 2005 and August 23, 2006)
Other Contributions,
University of Pittsburgh:
- College in High School Materials for High School Introductory Java
courses based upon my CS 0007 materials.
Awards
- 2006 Orrin E. & Margaret M. Taulbee Award for Excellence in
Computer Science. Dept. of Computer Science, University of Pittsburgh.
(Recognizes teaching excellence and academic progress toward a Ph.D.)
- 2005 Orrin E. & Margaret M. Taulbee Award for Excellence in
Computer Science. Dept. of Computer Science, University of Pittsburgh.
(Recognizes teaching excellence and academic progress toward a Ph.D.)
- Nominated to compete for the 2006 Elizabeth Baranger
Excellence in Teaching Award (A student-nominated award for
graduate student teaching.)
Student Opinion of Teaching Survey
Figure 1: Overall Teaching Effectiveness evaluation scores over time.
Overall Teaching Effectiveness (Figure 1) is the student's chance to
give a single overarching grade on an instructor's teaching that term. For the
most part, my evaluated scores have been consistently improving and above the
average. The slight dip that occurs in Spring 2006 is when I taught CS 0004 to a
heavily non-major class for the first time. I still feel this was a good example
of my teaching ability due to the general apprehension of the class toward
anything resembling math. I look forward to being able to take what I learned
from this course and apply it to similar ones in the future to see how I
improve.
The right graph in Figure 1 shows how I compare statistically to
a random sample of other University teachers. Decile breaks the scores into ten
equally sized chunks based on score. The median would then be the end of the
fifth decile. The stanine breaks the distribution of evaluations for the
University into nine unequal chunks based upon a normal distribution. The frequency
of high values for each of these measures indicates that I have consistently
done better than the average teacher.
Figure 2: (Left) Improvement in CS 0007 over time. (Right) Personal
averages for other student-evaluated criteria
Not only do my evaluations generally increase as I have gained more experience,
but my evaluations for several sections of the same course also show consistent
improvement (Figure 2(Left).)
In addition to overall teaching effectiveness, students are also asked to
respond to several other specific aspects of teaching. Figure
2(Right) shows these additional questions and my personal averages.
I consistently rank in the upper deciles for these values. One particular
standout is my accessibility, which reflects my willingness to meet students in
office hours, and respond to their questions via email in a timely fashion.
Student Comments
Sample responses to "What were the instructor's major strengths?"
-
Prof. Misurda is one of the best teachers at this University, His class is
always taught in a well-organized, effective manner. The course material he
chooses has proved to be extremely helpful in other CS classes. He is always
accessible and helpful to his students. In short, this University
needs more teachers like Prof. Misurda.
- CS 0132 Student, Fall 2006
-
Tried to teach the course on the level of the students and explained
abstract/logical ideas very well; I learned much from this class even after
taking a year and a half of computer programming in high school.
- CS 0007 Student, Spring 2005
-
Jonathan is an excellent instructor. His lectures make very difficult topics
crystal clear and easy to remember and use. I wish I could take another one of
his classes because I know I would learn a lot. He tailors the course, and
lectures, to fit the needs of the class.
- CS 0007 Student, Spring 2005
-
Very friendly and knowledgeable. Actually concerned with his students learning
and understanding the material, which is rare. Very down to earth. Made lectures
interesting and enjoyable (and humorous!)
- CS 0132 Student, Fall 2006
-
He was very patient with everyone, especially with people who were having a hard
time with some of the concepts.
- CS 0007 Student, Summer 2005
-
Extremely accessible and helpful. Enthusiasm in class. Genuine interest in
student success.
- CS 0004 Student, Spring 2006
The actual documents referred to here can be found in the indicated Appendix at
the end of this teaching portfolio.
Syllabus - Appendix A
In all of the pedagogical training I have received, there has been a significant
emphasis on the importance of a well-made syllabus. It serves not only to inform
the student about what requirements and scheduled topics an instructor forsees
for the term but also forms an agreement that protects students and teachers
alike should a dispute arise.
The first time teaching a course is often the most difficult time to create a
good syllabus. The one I selected here represents the first and only time I
taught this particular course, and the overly optimistic schedule of topics
would certainly be altered if I have the opportunity to teach this course again.
I would also further elaborate on what sort of time expectations the associated
out-of-class work carries. This was a point that many students felt anxious
about, and something I will commit to paper in the future.
I did, however, emphasize the technological requirements of taking this course.
Doing these programs at home required a significant software installation, even
though the program itself was available for free to the students. Also, due to
the data storage requirements, a USB drive was required, as opposed to something
cheaper but much more fragile such as floppy disks. Since this was a small but
unexpected cost to the students, I wanted to make sure that this was emphasized
early.
Project - Appendix B
Take-home projects represent the bulk of the experience in a programming course.
Keeping these projects interesting is a challenge for any teacher of Computer
Science. I have learned one good way to encourage students enrolled in a second
or later programming course to practice their programming skills is by competing
in games. The project that I show here is the game of Mastermind, where one
player creates a solution that the opponent must guess given only imprecise
feedback.
This type of project emphasizes functions and good software design, because each
student will be providing their solution as an encapsulated part of the program
rather than having control over the entire project. This results in a need to
define a consistent interface, and teaches conditional compilation and
Makefiles.
Students enjoy the project immensely, and I am always excited to see the
creative solutions that they come up with. One example of a great solution was
by a student who realized that the solution was stored in a stack allocated
variable, and thus was able to "cheat" by direct manipulation of pointers.
This made me as an instructor realize the success that I had in explaining how
local variables' lifetime and scope worked.
Final Exam - Appendix C
This represents my first attempt to create a final exam. I drew upon two
separate but complimentary sets of guidelines to govern question content and
types. The first was Bloom's Taxonomy 1
which attempts to classify the different levels of learning and understanding to
allow educators to strive for a more complete treatment of the topic. The other
source of guidance was the experiences my friends and I had taking tests
throughout our schooling. One of the major points of agreement was that I should
vary the question type and not focus on any one style of question more than
another. This helps cover different levels of learning as well as to not
penalize any student who has difficulty with a particular type of question. The
five major types of questions (multiple choice, short answer, code tracing, code
writing, and short essay) that I use here have become a framework for subsequent
tests that I truly feel works well and provides feedback on student learning
that is a good indicator of their understanding.
This test was the third of three exams in the semester, a number that I felt
allowed no one test to be too significantly weighted in the class. I found,
however, that the first test did not cover enough material for me to find it
particularly useful. From this point on in my teaching, I switched to two tests
per term, but increased the value of the take-home projects to avoid having tests
be worth too much and cause test anxiety.
Appendix C: Final Exam, CS 0007 - Summer 2004
Footnotes:
1
Taxonomy of Educational Objectives: The Classification of
Educational Goals; pp. 201-207; B. S. Bloom (Ed.); Susan Fauer Company, Inc.
1956
File translated from
TEX
by
TTH,
version 3.77.
On 05 Mar 2007, 13:54.