There is an old saying, "Those who can do, just do; and those who can't just teach."
BUT... I've learned from my experiences in both industry and academia that this simply isn't true.
Effective teaching requires application as evidence of theory. And the skills honed in teaching improve the practice of the art. Teachers have to love what they do, they have to want to share it with others, and they have to be good at both. For me teaching is the higher calling of commerce.
As an educational software developer, for example, teaching has given me insight into how a diverse group of individuals learn. As a teacher, my commercial work provides examples of current problems and their solutions.
The technology of multimedia changes constantly. And multimedia is by nature interdisciplinary, involving skills in computer science, art, journalism, music, etc. A multimedia teacher has to be well researched in critical aspects of all these disciplines, as well as keep up with rapid developments in the digital matrix where they meet.
So teaching multimedia software development for over ten years has been challenging. And I'll admit that I learn new things all the time. But I have a core philosophy that has been effective; the basic principles of which I outline below.
The first three principles sum up objectives I have for myself: be organized, be fair, and be enthusiastic. Be the kind of teacher I would want my children to have one day when they go to college.
The remaining six principles are what my students have taught me so far about how to be that kind of teacher.
I work in a complex area of multiple operating systems and platforms, data types and formats, applications, delivery systems, input devices, etc. I also teach 4 undergraduate sections per semester (in addition to supervising graduate student and honors projects), or about 200 students. I have to cover a lot of territory, from analog and digital media of all kinds, to database design and CGI scripting.
My approach has been to establish a reliable and robust environment for multimedia applications development, with emphasis on industry-standard, cross-platform tools. My lab has 45 student workstations, a file server, a web server, a video streaming server, and an array of peripherals. I specified all of the hardware and software, and I am the network administrator. So if the department network is down, or other campus computing facilities are closed, the lab is self-sufficient. Whatever other resources a student may be able to leverage, there is always at least one facility where they can get their work done. I have automated the administrative and maintenance work of the lab, such as creating user accounts, doing backups, and rebuilding user's systems. I cultivate TA's from students who have done well in my courses, and provide supplemental TA training. TA's supervise all of the lab hours. Students benefit by having a predictable environment in which to work and study.
The lab was also designed for lecturing and demonstration. On a number of demonstrations I switch from a projection of my computer screen to live, zoomed-in video, making the details of what I'm doing visible to a class of 45 students. A wireless microphone projects my voice to the classroom while allowing me to move about.
Having a reliable lab benefits the administration of my teaching load - evaluating over 800 assignments, giving and grading 400 tests, and taking attendance for 200 students, etc. I maintain a roster database that has the student's email and links to all of their assignments and quiz grades, keyed on an ID number. I have created secure, on-line (proctored), randomly generated, self-grading quizzes. And I have developed an extensive web site for my courses providing lecture notes and multimedia examples. I track students and review and grade their work through custom web-based forms. Efficiency in these tasks frees up time that can be devoted to helping students or improving lesson plans.
Objectively evaluating student work starts with maintaining a "level playing field", and I have strict submission requirements and procedures. I don't care what platform or tools the students use to do their homework, but I do require source that I can inspect as well as executable files that run on the systems and applications the multimedia lab supports. The insistence on source discourages plagiarism and builds a library of student examples. Where I can, I make explicit the means by which files should be transferred and the pitfalls I am aware of. Students benefit by learning the value of designing portability into their applications.
The on-line quizzes provide an objective standard for measuring how much students are learning, but in a project-oriented class some evaluations are more subjective. In giving assignments I explain the goal of the project and show examples of successful student work from previous semesters. The majority of points I award each project are based on technical merit. But I do rely on my industry experience to discern what is professional grade and what is amateur, especially when it comes to content and design. Grading is done “blind”, so that all I see is the student’s ID number and their work.
As much as a teacher wants to accommodate each student and deal with them as individuals, one can only extend deadlines a certain amount before accommodation looks like preferential treatment. Students who are working part-time or who are carrying a heavy courseload are ultimately responsible for the decision to enroll in my courses, which are all electives. I let the students know at the start of the semester that my courses place a high demand on their time, and that the coursework can't all be done at home.
Being fair also means giving students an opportunity to evaluate the courses anonymously. So I created web-based forms for students to submit mid-term course evaluations. I get student feedback in time to make any adjustments I feel are useful.
Students don't always come to class prepared to learn. They've been up late coding, for example, and they're tired. The last thing they need is for a teacher to read to them from a textbook and put them to sleep. Fortunately I work in a very physical field; one that involves set-ups for video, photography, and audio recording, for example. While I have recorded many of these demonstrations, I find I generate the most interest in class by doing things live. I ask for volunteers to help me set up a green screen video session. I set up a multi-track recording session for acoustic guitar and vocals. The students benefit by seeing the entire process unfold in real-time, rough edges included, and so become less intimidated by the technology. Since I enjoy this work I think some of that transfers by osmosis.
I also strive to keep my material from getting stale. I experiment with new technologies all the time, from stereo photography to speech recognition. And I constantly update and augment my lecture notes. A sense of humor sometimes helps to get gray matter stimulated. Often I introduce a subject with a related technology cartoon or an amusing quote. Students also appreciate demonstrations that are original and thematic. As an example, a ghostly animation on Halloween demonstrates manipulating the alpha channel of an image over time. Every semester I add at least a few new demos to my library.
4. Problem solving is a catalyst for learning.
Students are more motivated and have better retention when they understand why they need the information. Therefore I illustrate topics with "real-world" problems in multimedia applications development. I support my lectures with anecdotes of my own experiences in industry and research. Some of the stories reflect practical matters such as working with clients, estimating projects, working in teams, and doing field work. But most of the focus is on software development, such as testing, debugging and maintaining software, and the benefits of rapid prototyping and iterative development.
5. Students learn best by doing.
In my introductory course I give discrete exercises which build student competency in the application of the principles taught in class. Within the guidelines for each project I like to give students the creative freedom to choose the content or topic. They do better with topics they like and are familiar with.
In my advanced class I like to assign a substantial term project, with homework assignments that build the project in stages. Students will do best with projects they have a stake in. So I like to give them the creative freedom to identify the client and the user group, and do a needs analysis. It may be an on-campus group they are affiliated with, or a local business they work for. I have to ensure that the scope of work meets my requirements and truly applies what they learn in class, and in some cases I have to amend their proposal. In the event I have to veto their project proposal I always have a long list of clients and projects to choose from!
Many times students will choose one of these projects because they are well defined and structured. The clients are helpful and provide compelling content. And most of these projects are deployed giving the student a credited URL or application that they've developed to add to their resume.
6. Student teams are a mixed blessing.
In theory I think it is very good for students to learn to work in teams. Teams work best on large-scale projects where roles can be clearly defined and nearly independent. In practice students can waste a lot of time bickering, and as a result one student takes over and does the project virtually alone. Three person teams seem to be the most productive.
7. Frequent deadlines are essential.
Unfortunately most students won't study the lecture notes or do the exercises unless they have a quiz or a homework assignment due. Giving quizzes and homework early in the semester shows them what they need to know, and gives them immediate feedback on how to improve before it's too late.
8. Learning from mistakes.
Few people perform perfectly the first time they try something. Students need the space to experiment. So when it is appropriate I give students an opportunity to improve their work and resubmit it. For example, an interface design can be cleaned up, or the code can be refined, at the time they are integrated into the final project. I'm most interested in them learning that software development is an iterative process.
I do a lot of demos live, and it's important for students to see that sometimes things go wrong. But they also see how to recover from a problem.
9. Learning beyond the classroom.
I know that some of the most valuable learning takes place outside of the classroom. I try to keep students informed of resources on the web, events going on in the city or on campus, even TV shows. I publish an extensive reading list. Apart from my office hours, I often take student teams on location for field assignments.
Students are the most interested in commercial applications of what they're learning. So I invite industry professionals and former students to come and talk about the work they are doing at special seminars during the semester. These presentations outside of class time can be some of the most rewarding for students, and can lead to internships and employment offers.