Delaying the else¶

We don’t recommend that you require students to use else right away. It actually makes code much harder for students to read. Using an else hides away the condition when the else block would execute. Beginning students are having enough trouble just reading the code and making sense of it. Using an else hides away clues to how the program is working. Studies show that making the test explicit makes it ten times easier for beginning students to read programs with if statements.

To do a something like an else using two if statements, use a not.

Sneak up on and and or¶

Students have a difficult time with logical expressions. It’s probably just a matter of less experience with them. They do a lot with arithmetic expressions, but expressions whose value is true or false are much less common in mathematics.

In particular, expressions with multiple logical expressions, combined with and and or, are challenging for students. There is some research that shows that the more logical expressions in the program, the more difficult (in terms of time to understand it, ability to read or modify the program) it is for students.

Don’t ask students to do much with and and or to start. Give them a lot of experience with simple logical expressions, before requiring them to use and and or.

Teacher Note: Confusing while and if¶

A while loop and an if block look almost the same. They each have a logical expression, and a block of instructions underneath them.

Students often get them confused. Some key distinctions to make to students:

• An if block executes only once. It does the test, then executes the instructions indented underneath once.

• A while block executes repeatedly as long as the expression is true. The body of the loop can be executed many times.

When you show students examples of while loops, make sure that you choose examples where the body of the loop gets executed several times, to show the difference between while loops and an if block. When you trace the program, trace more than one iteration through the body of the loop, to emphasize the multiple times.