I constantly have to struggle with freeing myself from two hindrances to my teaching: 1) The way I learned about computers, starting almost 40 years ago, and, 2) Amnesia of how I learned some concepts (like variables) that seem just too obvious now.

Initially, I taught myself most of the time, long before I started college. Mostly I wrote simple self-challenge projects to print shapes on a PDP-11 terminal, because bigger kids monopolized the 2 Apple ][s at my high school. I had no internet (it came along after I was a 'Senior' Programmer Analyst), no textbooks, no magazines even, and no one I knew had any interest. So, my co-instructor often says that she has never met anyone else self-taught to that degree. I both remember how I learned, and cannot recall not understanding basic (ha ha) concepts.

So now, I am faced with people with no such strong drive to learn for its own sake, people with no desire to get shapes to print on the screen (but it is so much fun!) and the internet lapping at their screens. The final blow was seeing how the Visual Studio AutoCorrupt is tormenting them before they can even finish typing a single line! "Crush, Kill, Destroy!" (famous quote from Lost In Space. Even my jokes are old.)

With my co-instructor, we bring two radically different backgrounds and approaches to teaching. It is like a marriage of a rational person and an intuitive one (me, if you can't tell by my writing). But we are both a bit lost about how to motivate students to work through discovering an algorithm for themselves instead of "Bad artists copy, Great artists steal." (Picasso)

How do you teach, differently from how you learned? How do you overcome your own blinders?

  • 3
    $\begingroup$ This is quite a deep question.To some degree, your mind is what you're ultimately sharing, so I'm not sure you want to get past it as much as figure out better pathways to sharing it. $\endgroup$ – Ben I. Jun 17 '17 at 15:23
  • $\begingroup$ I have noticed that a lot of things are thought in the order learnt. That over generations as new teachers inevitably tack things onto the end, they are thought in the order that they were discovered. Why not try teaching it backwards. $\endgroup$ – ctrl-alt-delor Jun 27 '17 at 17:06
  • 2
    $\begingroup$ I disagree about the relevance for two reasons. One is that if we don't talk about such things here most of us won't see the discussion. More important, however is that CS is different since many of us learned the subject differently from how a, say, math prof learned it. Many are self taught, many came from other fields. $\endgroup$ – Buffy Jun 28 '17 at 12:17
  • 2
    $\begingroup$ It is a disturbing revelation to many newish teachers that their students are not like them. Your students are nothing like you are. Very small number of exceptions. Learn to deal with that. $\endgroup$ – Buffy Jun 28 '17 at 12:19
  • 1
    $\begingroup$ Reinforce what @Ben_I said. Your main job is to teach your students how you think, not specific information. How do you think about problems? How do you think about finding solutions? How do you structure knowing? $\endgroup$ – Buffy Jun 28 '17 at 12:21

Basically, you have to throw away your preconceptions and develop and refine new intuitions based on your teaching experience and your students' backgrounds.

When I started off teaching I was severely limited by an expectation that I'd be teaching students much like myself - students who enjoyed math and abstract problem-solving, and who had some kind of background or at least prior interest in programming (I started off at age 10 in BASIC on my Commodore 64). When that wasn't the case I found myself in a bit of trouble.

The way I teach now involves collecting and analyzing student data to find out what their challenges are and experimenting with different ways to help them overcome those challenges, and also what their interests are and how I can change the course to cater more to those interests. I collect feedback in the form of quizzes and projects but also I just ask the students what was easy for them and what was difficult, what they liked and what they didn't like, and then the next year I modify the course slightly to take all of this feedback into account.

Over time, the course gets better. I find ways to work around the most difficult material until the students are both conceptually ready for it and confident enough in their programming abilities to actually attempt it and not give up right away when they hit their first bump. I find ways to include more things of the type that students like and find fun and interesting, even if I personally don't find those things fun or interesting at all. Programming is so big and flexible that there are usually numerous ways into a problem, and luckily I get to make my own curriculum so I am free to explore all of those ways.

For one example, I've found that my students find variable manipulation and iteration monstrously difficult but have no problem with event-driven programming. I've therefore had more success when starting students off with simple event-driven projects (like, make a browser-based multiple choice quiz in JavaScript) than with the kinds of math challenges (calculate the nth Fibonacci number) that I enjoyed as a student. I personally find math problems easier and more rewarding than messy UI stuff and JS DOM manipulation, but the kids seem to really enjoy making a nicely decorated quiz to show off to their friends. Also, most of my kids hate and fear math, which I find sad but have very little influence over. I later try to work in simple variable manipulation and iteration by building on students' already successful projects once I have their interest and confidence.

So as a general strategy: Try to vary the order in which concepts are introduced and see if one order works better than another. Try to identify the conceptual building blocks that students who fail to learn the concepts are lacking, and try to find ways to teach those building blocks - or put off teaching more difficult concepts until students have more confidence and problem-solving experience. Try to give students projects that both motivate them and teach concepts and skills that you want them to learn. When in doubt, simpler but more feasible and authentic projects are often better than more rigorous/complex projects that students may not even complete or will complete and then never look at again. You'll know you're successful when students tell you something like "I made a quiz to teach my little sister the 50 state capitals".

  • 2
    $\begingroup$ All of this is why mastering teaching (if that's indeed possible) takes years if not decades. $\endgroup$ – Mike Zamansky Jun 18 '17 at 10:40
  • $\begingroup$ Thank you for the ideas and perspective. It throws off my awareness of the students' grasp of ideas when they turn in labs that demonstrate something, and in the next lab or two, it appears that they didn't understand at all. We've had to go back and reteach ideas from weeks ago sometimes. This is embarrassing for concepts like assignment, or parameters. I can't recall if those ever gave me trouble or not! $\endgroup$ – user737 Jun 18 '17 at 13:04
  • 1
    $\begingroup$ I was also really strong at retention in school, but it turns out many/most kids aren't. I've definitely also retaught things, or had kids apparently learn things only to apparently forget they were ever taught them weeks or months later. The key in that case is to reduce the amount of time between repetition of task types/skills practice. Spaced repetition is a huge concept in learning but getting the actual spacing right, especially when first learning/mastering a skill, is very important. $\endgroup$ – Neal Zupancic Jun 18 '17 at 13:17

How do you teach, differently from how you learned? How do you overcome your own blinders?

Start by learning a new concept the other way. If you're mainly self-taught, take a college/university course for something you don't know. (Maybe as part of your continuing education requirement if your system requires that.) If you've been mainly educated using the traditional methods, learn a new subject independently, using books, and other non-class style resources. (Online courses, and MOOCs are probably not in that list.)

Obviously this is best if it's something you don't know, and maybe even aren't really curious about, but still related to CS. This will give you the experience of learning using the "other" method.

Next, find some courses taught by instructors who learned CS both ways, self-taught and traditionally taught, and set in on their classes. This time it's not to learn the material, but to observe their teaching style, and how the students respond and learn from that style. Compare and contrast their styles relative to each other, and relative to your style of instruction. For this portion, it's preferable that you already know the subject material, while not being an "expert" in it. (You don't want to fall into the trap of evaluating their material of information, but their presentation of it.)

Lastly, find some people who are proficient in something you know, or better, teach, that learned that subject. One who learned it in a traditional setting, and one who is self-taught in it. Another instructor is useful for this. At least as useful, and probably more so, would be someone who uses that knowledge professionally outside the educational arena. Have them explain some of the concepts to you, especially concepts that your students seem to struggle with. This should be in an informal setting, such as over coffee, or lunch, rather than in a classroom environment. It can even be other users here on Stack Exchange, especially if you know them from the Stack Overflow, Code Review, or Computer Science sites. (For that you could create a new chat room where you would not be disturbing a regular chat room, and have a transcript available as a benefit.) Again, the point is not to learn the material, but to discover how they "see" it, and they attempt to explain what they "see."

After these three studies are done, your blinders are probably already gone. You can now see how others understand and conceptualize the material, and how they present it to others. Applying that knowledge to yourself, you can see what strengths there are to how you learned, and how to leverage those when teaching. You can also find what weaknesses there are, and how to overcome, or avoid, them.

With luck, you will also have managed to encounter at least one person who operates best in each of the three (VAK/VARK) learning styles, and can incorporate discoveries about that into your teaching as well. There is even an online, 20 question, survey you (or your students) can take to find out which style, if any, you favor on the EducationPlanner website here.

I mention the learning modality since you can have "blinders" on here just as you can from the way you learned, and such are likely even harder to spot or overcome. For some extra reading on the modalities affecting students try this paper by Gholami and Bagheri. With respect to online courses read Burns. For a third perspective see Fedynich, Bradley, and Bradley.

  • $\begingroup$ Thank you, I will look this over in detail. Touching on the Learning Styles point (I am about to ask a question relevant to that), it is my belief that one cannot program successfully without a visual impression of what is going on. So, regardless of someone';s preferred style, they must learn to draw diagrams, flowcharts, etc or they will not be able learn, to organize their own thinking, or to communicate with anyone else. To this extent, I think that there are some 'universals' with regard to knowing about programming. A picture is worth 1kb. Whatever. $\endgroup$ – user737 Jun 28 '17 at 14:00

When I started teaching (roughly about 5 years ago) I assumed naively that everybody learns the way I learnt. For the first few weeks, I was shocked to find out that many students (if not all) cannot spend more than 15 minutes with a single book. In fact, the concept of reading through the reference material or the learning books itself new to them. They simply assumed that the faculty has the sole responsibility of teaching them everything they need to learn.

The thing is, for me, even when I was a kid, the faculty was always that person who can clarify things for me, not teach everything because that is impossible. I can spend hundreds of hours, as long as I want, with my learning book. However, in a semester, I would be lucky if I can get to spend 40 hours with the faculty.

Eventually, I realised the my way of learning was actually a rarity. Most of the time, I simply gave up on advising my students that they should be learning on their own. I do what they want - teach them with the assumption that they are relying on me heavily - these days. Every now and then, I get lucky and I run into an odd student or a group of students who are like me. When I am interacting with them, I switch back to my original learning method.

All in all, even today, and every time I take a session, I feel conflicted and that is perhaps the most significant way in which, my teaching is affected by the way I learnt for myself.

  • 1
    $\begingroup$ Hi, Jay, welcome to the site, I wish you much success. We sound very similar. $\endgroup$ – user737 Aug 21 '17 at 10:43
  • $\begingroup$ thank you, and if we are similar then that is super cool. $\endgroup$ – Jay Aug 21 '17 at 11:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy