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.
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.
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.