As of May 31, 2023, we have updated our Code of Conduct.
39 votes

Teaching binary to 6-8 year olds

Use money. Tell your students to image a country has bills that are in denominations of powers of 2: 1, 2, 4, 8, 16.... Now tell them this: For a given number, count out that money with as few ...
ncmathsadist's user avatar
  • 2,319
31 votes

Teaching students that printf() is not the same as return

I think this is a problem where the answer is partly in the prevention. I've observed many classes where printing is the method used to access the results of calculations for several weeks, both ...
nova's user avatar
  • 1,965
29 votes

What is the best way to teach JavaScript functions to middle schoolers?

I apologize in advance, but I'm going to be a bit hard on you. First, your goal of keeping it simple is a good one that I applaud. You are right, IMO, not to bring in advanced features too early. ...
Buffy's user avatar
  • 35.7k
23 votes

What program follows "hello, world"?

When I was teaching and mentoring first-time students, what got them really excited for the first time was seeing their name in lights. Write a program that allows a student to enter their name, then ...
Robert Cartaino's user avatar
18 votes

Teaching students that printf() is not the same as return

I think that this problem is pretty widespread, actually. I believe that it comes from a misunderstanding of the difference between what the program/computer can know/do and what the person operating ...
Buffy's user avatar
  • 35.7k
14 votes

Teaching binary to 6-8 year olds

Just to calibrate expectations: at the lower end of that age range, the kids will have only just started learning about the place-value system in decimal. I wouldn't try to leverage knowledge of ...
Adam's user avatar
  • 269
13 votes

What program follows "hello, world"?

I did a (rather unscientific) study of a few popular tutorials for Python to see what they did after "Hello, world": Learn Python the Hard Way introduces expressions (...
Aurora0001's user avatar
  • 3,506
12 votes

How can I determine if a student would enjoy or has an aptitude for CS?

You shouldn't "test" somebody to check whether they're interested in something. You should give them some stuff you think they might enjoy, and you let them decide for themselves. There are a ton of ...
Kevin Workman's user avatar
12 votes

Teaching students that printf() is not the same as return

This is such a consistent trap that I ultimately created a worksheet to deal with it. At this point in my course, I have recently covered binary and hexadecimal, so I also use this worksheet as an ...
Ben I.'s user avatar
  • 32.6k
11 votes

How can I convey the idea of a programming language vs. a markup language?

I also have this problem frequently. I use the example of Microsoft Word, and I would say something like this: "Word allows you to give a document the appearance that you'd like. You can bold, you ...
Ben I.'s user avatar
  • 32.6k
11 votes
Accepted

How do I approach teaching Python to 12-year-olds as a first-time teacher?

Check out the Python books written by Al Sweigart. His homepage Invent with Python includes some great, free resources that are geared to the age range of your students. In particular he focuses on ...
Peter's user avatar
  • 9,102
11 votes

Teaching binary to 6-8 year olds

At that age, I would skip binary notation entirely and focus on combinatorics problems (simple ones) whose answers are most clearly understood as combinations of powers of two. Any combinatorics (...
Wildcard's user avatar
  • 645
10 votes
Accepted

Jargon/Vocab about variables--- yes or no?

Some of these words are entirely necessary, some (such as tokenize) you might want to avoid early on. However, I would suggest this as a guiding principle: use vocabulary as is necessary to get at ...
Ben I.'s user avatar
  • 32.6k
10 votes

Teaching binary to 6-8 year olds

I was going to start by asking what was wrong with $11_2$ and $11_{10}$, and then I noticed the ages you were referring to. Six year olds! First, a bit of frame-challenging advice: I'm not sure ...
Ben I.'s user avatar
  • 32.6k
10 votes

What are some non-CS concepts that can be defined using BNF notation?

Going with real-world things which they should be familiar with are best, even if it is completely outside of education. As you have applied the tag for adult education, I'm going to presume it is ...
Gypsy Spellweaver's user avatar
9 votes

What program follows "hello, world"?

After "Hello World" it becomes "Hello \$name" where \$name is provided by user. After basic I/O and "it compiles and runs", then it is time for loops and logic. I typically like a variation on ...
ivanivan's user avatar
  • 301
9 votes
Accepted

Explaining basic html structure

How did you begin to teach Java to your students? I bet you didn't start by showing them the Backus-Naur form that the Java parser follows. Instead, you probably introduced a simple "Hello, world" ...
Aurora0001's user avatar
  • 3,506
9 votes

Teaching students that printf() is not the same as return

Whenever I run into students who are baffled by the return concept (and in your case, them substituting it with printf), I do something like this. I use role-play. I become one function (lets say ...
Jay's user avatar
  • 1,874
9 votes

Teaching binary to 6-8 year olds

We made bracelets in APCS Principles (9th - 12th grade). I bought a bunch of blue and white (school colors) beads. Blue was on, white was off. They then made bracelets of their names or initials using ...
Ryan Nutt's user avatar
  • 3,029
8 votes

Lesson ideas for introducing macros in C

I introduce C macros as a convenient way of using a single source file that can be used both when debugging code in development and for final delivery, without having to edit and and edit out test/...
Brian Tompsett - 汤莱恩's user avatar
8 votes

How can I determine if a student would enjoy or has an aptitude for CS?

I started with Khan Academy. Who knows how I stumbled across it - I think one of my teachers back in elementary school pointed it out to me. And then I found the coding course. I started, enjoying ...
Auden Young's user avatar
  • 4,684
7 votes

Explaining basic html structure

I would avoid starting with something this abstract if the aren't used to it. Doing so might, in my experience, turn away students, especially since the beginning is usually the easiest. If the ...
wythagoras's user avatar
7 votes

What program follows "hello, world"?

I've always used Hello name" as part of Hello World. It's easy enough for most students and makes the program more fun. After Hello World I use a conversion program. For example Fahrenheit to Celsius. ...
Alfred Thompson's user avatar
7 votes

What program follows "hello, world"?

I was taught that there were three main aspects of programming: input-output, computation, and logic/control "Hello world" is an "input-output" function, specifically a "print" command. The next ...
Tom Au's user avatar
  • 475
7 votes

What is a good analogy to introduce databases and SQL?

I think that to understand the SELECT queries, the Who is Who? / Guess Who? game could serve as a nice metaphor. The idea of the game is: you have a group of pictures of persons with different facial ...
Nuno Gil Fonseca's user avatar
7 votes

Introduction to programming class: use Spreadsheets to introduce fundamentals

The big disadvantage seems to be that you're re-enforcing their (or maybe your own) preconceptions about barriers to entry, and taking them further from the 'normal' programming environment. Yes, ...
Sean Houlihane's user avatar
7 votes

Introduction to programming class: use Spreadsheets to introduce fundamentals

Spreadsheets are probably the most popular functional programming language, and is is some what visual. I have taught it for years 7 to 9, but not part of a qualification based course. Things to be ...
ctrl-alt-delor's user avatar
7 votes

Teaching students that printf() is not the same as return

Have you considered not teaching them about printf at all? 99% of the use of printf is as a poor-man's debugger. Teach them how ...
Alexander's user avatar
  • 171
7 votes
Accepted

Is it bad to introduce language features in ways that are different than they will be used in practice?

This sort of thing is perfectly valid and valuable, provided that students already understand the underlying structure. So if they understand your first loop without continue (but with the print in ...
Buffy's user avatar
  • 35.7k
7 votes

Research into the use of symbol names, in programming, and how it affects learning

You don't have control over the libraries, though you can provide a filter class that, itself, provides better names. Yes, names matter and shouldn't be confusing. But when you create examples and ...
Buffy's user avatar
  • 35.7k

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