191
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 ...
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 ...
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 ...
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 ...
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 ...
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, ...
69
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 ...
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 ...
54
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 ...
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 ...
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 ...
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 ...
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 ...
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. ...
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 ...
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 ...
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 ...
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 ...
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) ...
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 ...
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 ...
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 ...
26
votes
Teaching the humble for loop
I teach for loops using the following pseudocode, which we then translate into actual code:
...
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 ...
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 ...
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 ...
22
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 ...
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 ...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
best-practice × 80student-motivation × 11
secondary-education × 9
curriculum-design × 8
undergraduate × 7
differentiation × 7
lesson-ideas × 6
programming × 5
teaching-analogy × 5
coding-style × 5
self-learning × 4
project × 4
classroom-management × 4
ethics × 4
grading × 3
mathematics × 3
resource-request × 2
labs × 2
assessment × 2
exercises × 2
adult-education × 2
web-development × 2
struggling-students × 2
c × 2
syntax × 2