Remember Virginia TechDr. Peter J. DePasquale

Associate Professor, Department of Computer Science, TCNJ

I find that it is usually helpful to talk a little about my philosophy of teaching with my students.  Generally speaking, the higher up academically you are, the more I expect of you.

If you are a freshman, it's time (in my opinion) to realize that we won't be holding your hands any longer. You should be self-motivated and taking notes in class. I won't be repeating a lecture in my office just because you don't see the need to take notes or feel that your brain can hold it all. I'm old school like that. If you are participating in class, taking notes, turning in work, then I'll bend over backwards to help you if you are struggling. I used to struggle with some of the material I now teach, so I know what it's like to completely not understand the material.

When you take my Data Structures course, you'll find that I will start to require you to use classes from the Java API that you may not have seen previously in lecture or lab. Here, I'm expecting you to dig through the API on your own, read the API to determine which constructors you'll need, methods that will help you, and so forth, to determine how to use said classes. It's what all programmers do and it's something you'll need to start to learn how to do on your own as well.

Programming in a new language is like playing football in some ways. You need to put on a helmet, and go in and hit someone (metaphorically). You need to practice your craft like anything else. And I'm not talking about how Allen Iverson perceives practice (see this video clip). Play with the code examples from the book. Change the examples, see what breaks, see how your changes impact the example! Try rewriting the code in different ways. You learn from this.

If you are interested in working with me for mentored research, then I expect you to be passionate about what you do. If you are just getting involved with my work out of boredom, or "you're the best option", or "I'm not interested in what anyone else is doing", then you may not be a good fit to work with me. I have enough students to mentor to have to motivate you to do so. And when you do, I expect you to bring it - every time.

I expect my students in lecture classes to be reading the book ahead of my lectures. This is your chance for me to explain what you don't understand - not to introduce it to you for the first time. You're in college to learn and get an education. Everything else is secondary. They are important things, but if you are not putting in the time in advance of the class, then you are wasting my time and yours.

I'm proud to have students that I've worked with working in places like Apple, Lockheed Martin, and the White House's Executive Office of the President. If you expect me to be able to write the best possible letter of recommendation for you for a job, no matter where it is, then you need to work each day to show me you are serious about your chosen major, your motivation to learn and better yourself and your craft and to represent our college and department in the best possible light. And it never hurts to volunteer to help us with open houses and other events.

My experience has shown me that we are in a field that is unique in a number of ways:

  1. You need to constantly keep on top of emerging technologies or be left in the past.
  2. No matter how good you think you are, you can learn more and do better.  Pick up a few advanced programming books (O'Reilly has a ton of great ones) and see how others do things.
  3. We're still evolving.  Keep abreast on the most recent developments. Something that may not seem like a large impact type of technology or process when it is released may evolve into something that can really help you.
  4. We're still a young field.  Many of the pioneers of computer science are still around and still active.  Folks like Brooks, Knuth, Hoare, McCarthy, Cerf, and Lee and others are still active and involved. If you ever get the chance to hear them speak or meet them, do so!  I've had the pleasure of attending lectures by Cerf and Lee.  However my biggest thrill was getting introduced to Edsger Dijkstra a few months before his death.  Talk about meeting a legend! (Don't know who these folks are?  You really should learn about them and their work!)  I've also attended an awards ceremony and lecture by Jack Good, who worked at Bletchley Park with Alan Turing.
  5. I have found that the best opportunities come from being flexible and open to development on a number of architectures.  Aligning yourself with only one platform may in the end be limiting yourself to one project, company, or opportunity.

I value the feedback that my students provide anonymously at the end of each semester.  Below are a sample of real evaluations following the Spring 2008 semester that I received. I offer these as a guide for those that expect to enroll in one of my courses in the future.

  • He made the course interesting and kept my attention the whole time. I thought the course was challenging but I have learned a lot.
  • Very knowledgeable on the subject matter. Serious at most times and funny too.
  • Learned way more than I could have anywhere else. Entire course will be extremely valuable in the future.
  • Entertaining and enthusiastic during class; made material interesting. Took student's needs and feedback into account.

Did You Know?

Dijkstra impacted computer science in many ways.  He's widely known for his distain of the GOTO programming statement.  Perhaps you have heard of his "Go To Statement Considered Harmful" letter published in the Communications of the ACM.

Dijkstra also invented semaphores (for those of you that have taken the Operating Systems course), as well as the shortest path first algorithm used in graph traversals.