7 ms·
This is pretty much how I taught my High School Computer Science classes. The biggest step for me was to never touch the student keyboards. And then I basicall
by hdctambien 5y ago
This is pretty much how I taught my High School Computer Science classes.
The biggest step for me was to never touch the student keyboards. And then I basically only answered their questions with more questions.
Sometimes I would hear students grumble "He never answers my questions...", But in the long run, they would start asking themselves the same questions they knew I would ask (what did you expect it to do?, what did it do?, Why did it do that?)... Then they would usually solve their problem without me!
Or, when they called me over they would start with "I tried a, b, and c" and got results x, y, and z" which is a way better start to a learning experience for everyone than the old "it doesn't work, fix it, please"
- andi999 5y agoI still think there are also questions which are best answered straight, like 'how many bytes does a float have? Do arrays start with 0 or 1 in this language? Is printf of %s with null argument, undefined behaviour, implementation defined or actually standard conforming'.
- Siira 5y agoFinding the answer in the docs is itself a skill, so even these simple questions might best be not answered directly.
- popcube 5y agoso, just touch the keyboard and display how do you resolve this problem?
- MathYouF 5y agoThose kind of questions are a great opportunity to show a student where to find documentation and how to read it, because that is a daily journey that will never end.
- rablackburn 5y agoYou've been down-voted, but you're absolutely correct in some situations. Sure, answering those questions with "this is a great opportunity to learn how to read the documentation" is the "right" response. But I think we've all experienced the frustration of trying to write something in a language we don't use every day, and 'wasting' our time looking up simple things ("okay, what's the exact syntax of a for-loop in this language again?") that just adds friction when we're trying to solve a problem. There's a reason programmers complain so much about being interrupted. Part of being a good teacher is being able to make those points of friction disappear and enable your students to "get it" and experience the joy of solving a problem. Don't let perfect be the enemy of good. How many kids would play football/soccer if you were only allowed to play a match with regulation numbers of players on each side, and stopping play every time someone didn't have 'perfect' form?
- Jtsummers 5y agoI suspect they were downvoted because the initial commenter didn't say they only answered questions with questions or that they never provided more traditional instruction. GP is arguing against something that wasn't even said.
- JCharante 5y ago"How many bytes does a float have?" is a bad question to ask. Languages may implement floats differently. If someone asks "how many bytes does an ieee 754 double-precision floating-point have?" then sure, answer 8 bytes. But "how many bytes does a float have?" is precisely a question that should be further defined.
- andi999 5y agoI thought there are no bad questions.
- Zababa 5y agoDid you find that this method resulted in less, more or the same number of students that just couldn't follow? I've been thinking about this a lot as in France we have a few "alternative software school" that use the "basically figure it our yourself" method a lot, and while it's sometimes frustrating as an experience, it really prepares you well for what you're going to face. I intuitively think one flaw would be that less student would be able to finish the studies, but on the other hand these students wouldn't probably make it in the professional world either.
- andai 5y agoI think many of them do make it, and that's not necessarily a good thing.
- cinntaile 5y agoCan you elaborate? It's not clear to me why that would be a bad thing.
- mandelbrotwurst 5y agoI can’t speak for the person you’re replying to, but I suspect the idea may be that the students are able to “make it” in the sense of holding down a job, but not in the sense of being particularly competent / productive.
- atoav 5y agoIn my eyes learning to programm is on of those things that is a out a stract connotations or ideas how we think something functions much more than actual experience. When you learn gravity, of course you can watch an apple falling from a tree and fogure it out yourself. But you could also watch an apple falling from an tree, try to figure it out for a while and then get a fascinating deep dive in the physics behind it, and then take another dive at the issue. Just by presenting the issue in the right way instructors can make the difference between people who struggle to grasp something and people who already have the right abstractions in their head but only need to figure out what it means in practise. The worst peogramming instructors are those who are like: "It was nearly impossible for me to learn this, why do you think it would be easy?"
- polishdude20 5y agoI think this method of teaching works well if this lines up with how the students are evaluated. The students willingness to accept this form of teaching is entirely reliant on how they feel this will impact their final grade. That's why it's important to align your grading and evaluation style with your teaching style if this is what you expect from students. That way, they'll be more inclined to go with the flow knowing that it won't bite them on the other end when it's time to take a test.
- hdctambien 5y agoThat's an excellent point. I actually stopped grading lab assignments. I found students were more interesting in getting "the answer" than learning the material. This would lead to students making decisions that optimized for"having the answer" but were detrimental to "learning the material". Once I stopped grading the labs, it freed students to experiment and learn rather than rush and stress about the due date. It didn't really matter if they finished the lab, as long as they learned something along the way. There was, of course, much more to my classes than the labs. Lectures, group activities, "kahoots", discussions, prelabs, funsheets, etc... Lots of ways to assess a students understanding and help catch the ones that are falling behind.
- pxc 5y agoWhen I tutored computer science at the community college, I often felt like some of our students were constantly trying to trick me into writing code for them. Idk if other tutors often did that for them or what, but it was frustrating for me. Avoiding getting sucked into touching their keyboards was what I had to do, too.
- hnarn 5y agoI don’t mean to sound cynical, but it’s possible that these students simply got away with this strategy for their entire academic “career” up to that point. I.e. complain about the difficulty of the task, throw your hands up, ask for “help” enough times until the teacher basically solves/explains the entire problem for you and then just copy their exact solution. The idea that a teacher should ever touch a student keyboard in a computer science or programming class to me is absurd.
- pxc 5y ago> The idea that a teacher should ever touch a student keyboard in a computer science or programming class to me is absurd. I agree. In this case, the students who seemed to work this way were mostly (all?) ESL students, and none of the tutors spoke the native language of the students. So it could be difficult even to indicate what you wanted them to look at, and it was especially frustrating when the errors they were dealing with were trivial syntax errors.
- hdctambien 5y agoI would see this a lot, too. I think in many cases it is a coping mechanism that they develop and may not even realize they are doing it. You see articles about not praising kids for being "smart" because that praises something innate about them, but instead praise them for working hard or growing or learning. Sometimes kids that are "smart" in middle school don't have to work/learn/study because everything just makes sense. But then they get to high school and their grades start to dip because their "middle school smarts" don't apply to high school material and they didn't develop the skills to study/learn effectively. But they are known as "smart kids" and smart kids get good grades... So they need to find ways to get good grades... because they are "smart kids" I hope I was able to help some of those students unlearn some of those habits and develop more educational ways to "get good grades"
- devwastaken 5y agoThis works if the student already has a grasp of how to write software. The new teacher here does your method with new students just learning the syntax, and it's a failure. Treat them like they're learning french. First comes meaning of words, then how they're applied. Examples of it, what it means, and then how you change what it means to mean something else. Practice and Exposure is the only way to effectively learn any language. These students are going to entirely forget what a for loop is after their class and switch majors when the next classes depend upon fluent understanding.
- Buttons840 5y ago> Sometimes I would hear students grumble "He never answers my questions..." Did you ever explain why you are doing this? After walking a student through their problem I would praise them and point out they solved the problem themselves. Some people may perceive your style as you being annoyed or unwilling to fully help, so explaining explicitly why you're helping that way would be good.
- civilized 5y agoI had a teacher in high school who played the mysterious guru game. Instead of answering questions, he would say nothing and smile kind of creepily. He was good, but his mysterious guru bit wasn't why he was good, and he should have dropped it. All this to say, yes, explaining why you're doing things as a teacher is better than just doing them and mystifying people.
- tshaddox 5y agoYeah, I don’t see the point in just stubbornly only responding with more questions. As an instructor you could actually instruct. Why not say “a good technique when you get stuck is to ask yourself these 3 questions…” instead of just cryptically asking the questions and hoping they come to this amazing epiphany that wow my instructor wasn’t just being cryptic because they’re a jerk, they were doing it to teach me!
- sodality2 5y agoI absolutely hated primary/secondary school until I realized all these "difficult" methods were designed to help ME learn. Naturally the attitude at that age is "Oh my gosh the teachers love torturing us >:( they hate us >:( school bad >:(". I'm forever grateful for the gifted program at my district for teaching me otherwise. Writing this comment gave me a rush of nostalgia, I think I'm gonna go visit again
- bonestamp2 5y agoYes, it took me too long to realize this too... so I immediately told my kids this is the reason for all of the exercises they have to do. When they approach it from the perspective of its purpose, then they take the time to learn it rather than just trying to finish it.
- blarg1 5y agowe had a teacher that would type our questions into google (or whatever search engine we had back then) for us :)
- toastercat 5y agoI personally think this is bad advice. I've experienced this kind of method through a friend of mine; it was always more frustrating than it was worth. I knew he has good intentions, but the truth is, different people learn differently*. When I ask questions, its often to try to build context or a mental map before I tackle a problem. I think that, while being cryptic and only answering questions with more questions can help nudge certain students in the right direction, it will just frustrate and confuse others. My guess is that for every student you've found this method successful with, there were 3 students who just gave up on asking you for advice because they'd just assume you'd elude them again -- and these are invisible failures. Personally, I stopped asking that certain friend for advice after one too many frustrating sessions.
- Aperocky 5y agoThat really depends on what you want this certain friend to do. Usually, when the context is not learning, you want to hear answer with the nuts and this is universally true. We don't comment on code review with "What do you think this does", we say "Here this is wrong because it will do X and to fix you need Y". But when it comes to learning, I can't fault the other approach because that is clearly the better way to drill the programming mentality over to the learner. Almost all good engineer knows where to look, and syntactic or logical problems in any context are solved in a very similar way. People who don't have this structured method to approach a bug are going to find trouble in software engineering.
- toastercat 5y agoEven in the context of learning, "Here this is wrong because it will do X and to fix you need Y" is immensely valuable.
- bdamm 5y agoWhen it comes to working with people, it’s usually clear who learned programming by rote memorization and who actually noodled their way through a formal education. I’ll do almost anything to avoid working with the former. They just can’t carry their weight, most of the time.
- another_story 5y agoAs a CS teacher, I think there is a time for touching a student's keyboard and a time for leading them with questions or some other method. You have to read the student. With weaker student's I will sometimes set them up with a partial answer and get them to complete it, or show them multiple solutions for a similar problem, hoping one will spur on insight. Some people learn better by doing and discovering, others better by initially imitating and still others in different ways at different times. For me there are no preferred methods, just a toolkit I build on and pull from as I learn more about teaching.
- 8eye 5y agothis is so true! my brother started learning to code later on in life, i knew he looked up to me but also, he knew he could ask me for help whenever and i helped him as best as i could, but i get busy working on projects and cannot always answer a text message or phone call. i would see his message later on in the day and listen/read his messages and it would start out asking for help and about the 2nd or 3rd and sometimes 4th message he would have it figured out and i was happy about that because he did what i think is the most important thing when it comes to long term mastery of any skill he figured it out on his own or was at least was able to recall the knowledge from within. if i would have took over his keyboard he wouldn’t have imprinted that as fast, i heard this saying once and it’s encouraging for others to hear/read as well so i’ll say it “when you are confused, don’t be upset at yourself, it is a good sign. confusion means you thinking about something new or from a different perspective, and that means you are learning” it’s a humbling experience, i get it, but not a sign you will never understand something, in fact, confusion is the first sign that you are getting it. be encouraged