193 votes
Accepted

Should I teach that 1 kB = 1024 bytes or 1000 bytes?

You should teach both, and you probably want to use the binary unit. When you are talking about the difference, it may be helpful to tell them about how to tell the difference when reading them: The ...
Mike P's user avatar
  • 1,776
183 votes
Accepted

Is it better to lie to students or to be pedantic when teaching Intro CS?

Lying is good. But advertise it when you lie. Make sure students make a note of it that you are lying. Pedantic is bad. If you try to explain everything you will wind up explaining nothing. Let me ...
Buffy's user avatar
  • 36k
149 votes
Accepted

Is it bad to force my students not to return early?

Actually returning early should be the norm. Return as soon as you can. There are at least two reasons for this, of which the first, efficiency, is the least important. But if you return early then ...
Buffy's user avatar
  • 36k
95 votes
Accepted

What advantages do students who learn how to touch type have?

Actually, there are a lot of things that benefit a student in CS, such as a degree in Mathematics or Sociology. Likewise interpersonal skills that help a person work in groups. Others are too numerous ...
Buffy's user avatar
  • 36k
94 votes

Is it better to lie to students or to be pedantic when teaching Intro CS?

I would start sentences with "Generally speaking..." and I would appreciate if my professors did the same. It hints that there is more to know but doesn't waste time explaining anything further. If ...
ADJenks's user avatar
  • 1,041
70 votes
Accepted

How do you teach something when you don't know it yourself?

This is a vital question, perhaps the vital question, for a CS educator to deal with, because technologies will keep pushing us. There is no end to this particular merry-go-round. I have been stuck, ...
Ben I.'s user avatar
  • 32.9k
70 votes

Should I teach that 1 kB = 1024 bytes or 1000 bytes?

You should teach them it's messed up beyond repair, and it's their generation's job to teach the next generation to use the silly-sounding standard prefixes, so that when they finally retire (and the ...
Bass's user avatar
  • 801
58 votes

Teaching the humble for loop

Show then how the loop can be unfolded into a while loop: int i = 0 // Step 1 while (i< 100) { // Step 2 // Do something i++ // Step 3 } Explain that ...
thesecretmaster's user avatar
  • 4,795
55 votes

Should I teach that 1 kB = 1024 bytes or 1000 bytes?

Actually, you need to teach them both so that they are warned that the usage is not consistent. Then you can choose one as a standard in your course going forward. Which you choose depends a bit on ...
Buffy's user avatar
  • 36k
52 votes

Is it bad to force my students not to return early?

Teach your students about the return early philosophy. Teach your students about the single return philosophy. Tell them this ...
jpmc26's user avatar
  • 629
50 votes

Problems with students stuck in web-browser and what to do about it

In terms of instruction, especially at the beginning, I find it helpful to ask my students why I'm doing something at every step while demonstrating: I'm going to open the start menu, why am I going ...
Henry Ecker's user avatar
44 votes

How can I convince my fellow CS teachers that reaching every student is a worthwhile goal?

Please don't... ...give the students who are ahead more of the same kind of work to do. Please. That's just boring. If they get it, they get it. ...make groups by mixing the students who are ahead ...
auden's user avatar
  • 4,684
44 votes

Is it important to teach pointers in a first course using Java?

Learning about references is important, but I don't feel that learning about pointers is that important for beginning Java students. Certainly intermediate students will need to understand them. When ...
pojo-guy's user avatar
  • 998
38 votes

How do you deal with Lone Rangers in group projects?

This is really a separate approach from my first answer, which has received some push-back. It's worth noting that many of these loners are simply students who are substantially ahead of the curve. ...
Ben I.'s user avatar
  • 32.9k
38 votes

Is it better to lie to students or to be pedantic when teaching Intro CS?

As a current CS student, my lecturer use to solve this by simply using For now. To come back to your interface example: For now, interfaces cannot contain any code, unlike abstract classes. This ...
Corba's user avatar
  • 481
36 votes

What advantages do students who learn how to touch type have?

To answer the titular question: In my experience, the advantage of touch typing is not the direct gain of time through typing faster. That’s negligible since most programming and writing tasks ...
Wrzlprmft's user avatar
  • 594
35 votes
Accepted

Problematic student at a very high level

The best way to deal with this kind of student is to head it off at the pass. If you can get the student at the beginning, you can often prevent the problem from festering in the first place. I have ...
Ben I.'s user avatar
  • 32.9k
34 votes
Accepted

Teaching the humble for loop

I know I'm coming late to this party but this is a really good question and I think it deserves a really good treatment. The original for loop, the one with the ...
candied_orange's user avatar
34 votes

Is it bad to force my students not to return early?

Is it a wrong approach, giving your students the choice? Or is it wrong to force them never to return early? This is a false dichotomy. Sometimes multiple returns are clearer, and sometimes (rarely) ...
Kevin's user avatar
  • 449
31 votes
Accepted

Is it important to teach pointers in a first course using Java?

For a beginning course: no. I have helped clarify behavior for fellow students who got lost by an instructor who explained things in terms of pointers. I have programmed in C, and most of my current ...
CAD97's user avatar
  • 514
27 votes

Note-taking policy: laptops, or by hand?

Neither is better. What is true for one student may not be for another. Studies can show trends. Students are not trends; they are individuals. As an example I encountered today that seems to go ...
Gypsy Spellweaver's user avatar
27 votes

How can we teach good naming practice for students learning Java?

Fair warning, I do not demand any particular naming convention (such as NetBeans) from my students. This leaves me with variable naming only for the purpose of clarity. I speak constantly to my ...
Ben I.'s user avatar
  • 32.9k
26 votes

Teaching the humble for loop

I teach for loops using the following pseudocode, which we then translate into actual code: ...
Peter's user avatar
  • 9,082
25 votes

What advantages do students who learn how to touch type have?

If the goal is to prepare students for "the real world," aka "real jobs" then: Touch typing is required to be an effective programmer. Full stop. The answers here seem to highlight the difference ...
James's user avatar
  • 423
24 votes

Note-taking policy: laptops, or by hand?

I recently had a group of students that didn't take notes at all. They were in University classes and no one, apparently, had taught them how to learn. I asked one student why, and he just pointed to ...
Buffy's user avatar
  • 36k
24 votes

Should I teach that 1 kB = 1024 bytes or 1000 bytes?

The difference between providing your students with a proper discussion of this topic, and simply teaching them one or the other, is the difference between being a real educator and being a reciter of ...
ruief's user avatar
  • 349
22 votes

The Tao of TeaChing (Making Mistakes in Front of the Class)

If I catch it quickly and can easily explain the error, I use it as an example of failing up. "Ooops, look at me, here's my mistake, here's how I can learn from it." If students catch it, and I'm not ...
Kay Bee's user avatar
  • 481
21 votes
Accepted

Programming languages specifically designed for beginners

Scratch is a visual block-based drag-and-drop programming language designed specifically for learners, especially children. It's created by the Lifelong Kindergarten Group at the MIT Media Lab. The ...
Scimonster's user avatar
21 votes

Programming languages specifically designed for beginners

I would consider teaching in Python if you wanted to give your students a taste of programming in a text-based language—pretty much the only type of language used professionally. A visual programming ...
Aurora0001's user avatar
  • 3,506

Only top scored, non community-wiki answers of a minimum length are eligible