Statement of Teaching Philosophy
Bill Manaris, Ph.D.
May 22, 2002
This is an overview of my teaching philosophy. It identifies my beliefs on what makes an effective educator in Computer Science (CS). Of course, this set of beliefs reflects my personal path through learning and teaching. Obviously there are other valid possibilities.
I taught my first class in Computer Science (CS) in 1984. Since then I have had a variety of teaching experiences and responsibilities. These experiences have helped shape my views on makes an effective CS educator. These views are obviously dynamic—they grow and adapt as I learn more about teaching and learning. The following is a snapshot of these views as of May 22, 2002:
1. I believe that computer scientists should be prepared for change. Our field evolves very fast compared to other disciplines—it practically “redefines” itself every 5-10 years, in terms of development paradigms, programming languages, hardware, and software. This has significant implications for both teachers and students.
educators have an ethical obligation to produce competent
professionals—professionals with a strong technical foundation who can deal
with the complexity of today’s software development. Graduates need to know how to pay attention to detail and be able
to deal with all aspects of software development—specification, design,
implementation, testing, documentation, and maintenance.
educators should aim to teach concepts as opposed to certain languages or
tools. Although students should be
exposed to state-of-the-art tools, this should be done in the context of
theoretical concepts. Tools become
obsolete within a few years, but concepts last a lifetime. Over time, I have used this principle to
expose students to various tools, including Java, C++, Tcl/tk, Visual Basic,
LISP, Lex, Yacc, Polka/Samba, HTML, and CGI-programming.
need to be sensitive to the background and preparation of their students. This can be especially challenging in
introductory courses where students have varying degrees of academic
preparation. Retention of underrepresented
students—ethnic minorities and women—is important, as our society is diverse
and multicultural. In many cases, such
students need to be supported and challenged differently from the average
student. It is very rewarding to see
such students flourish and in many cases outperform mainstream students.
educators need to invest in the power of collaborative learning. This should be done carefully and
progressively, as students must develop their own skills and be protected from
the “leader-follower” syndrome.
Otherwise, weaker students tend to follow the ideas of one or two
stronger students without really thinking (and learning) for themselves. I assign in-class collaborative exercises in
all my courses. I ask students to work
in groups of two or three towards a common goal, such as tracing a challenging
algorithm, or commenting on a reading assignment. I find that this helps students master new concepts better than
if they worked on their own.
Collaborative learning improves retention of underrepresented students
since such experiences break down communication barriers and introduce mutual
respect and camaraderie. Starting in
the third programming course (Data Structures and Algorithms), I like to
introduce team projects to expose students to group dynamics and help improve
communication and people skills.
need to invest in positive reinforcement whenever possible. One example is the policy I use for late
assignments. Students are awarded four
"late" days for the whole semester for their programming assignments.
Once they use up these days, no late assignments are accepted. However,
incomplete solutions that compile and are submitted on time receive partial
credit. At the end of the semester,
students that have not used any of their late days earn 2.5 bonus points
towards their course grade.
7. Finally, CS educators should aim to incorporate research results into the classroom through lecture, assignments, special project courses, and curriculum development. My research interests lie in the intersection between Artificial Intelligence and Human-Computer Interaction. In the three-course intro sequence, I have exposed students to assignments on trigram statistics for authorship attribution, spelling checkers, and text formatters. In the Artificial Intelligence course, I have exposed students to the development of natural language user interfaces. My interest in user interface design contributed to the development of a senior/graduate-level course in Human-Computer Interaction. In this course, I have exposed students to research in speech user interfaces. Better students tend to continue their work through special project courses. Such projects usually result in research publications, which may provide new content to incorporate into the classroom—thus forming a feedback loop.
In closing, I maintain high standards for my students. I try to challenge them in ways that benefit and provide a sense of accomplishment. It takes very little time to develop trivial or impossible assignments—good assignments require creativity, sensitivity to student capabilities, and observance of learning objectives as identified in the course syllabus.
I make myself available on campus during office hours and beyond, as well as via email communication. I provide needed support to all students, especially the ones that demonstrate an honest effort towards an objective. Sometimes I use the Socratic approach—I ask questions to help students navigate through the knowledge they already have accumulated. This helps them make needed connections—the “Aha!” experience. Students eventually realize how to do this themselves, thus becoming more empowered learners.
I would like to hope that my teaching efforts have helped and continue to help produce competent computer scientists—individuals who are valuable contributors to the profession and society.