Preparing for EDEM665

The EDEM665 course is about how to teach programming, and it requires a little experience with programming before you take the course. This page will help you to see if your level of experience is suitable, and has advice on fairly easy ways to get up to speed if it isn't.

The challenges below are intended to show the starting level of programming skill that you should have before taking the EDEM665 course. You can implement these questions in any language that you want (if you're working in Scratch, the program can read input using the "ask" block, and give the output using "say").

If you find the questions fairly easy to answer, you're at about the right level for the course. If you're not sure how to solve them, can't get them working exactly right, or it looks like a major project, you should develop your programming skill more before taking on the course.

Note that being able to program is like fitness or using a language - knowing it in the past might not mean that you are fluent now. You need to keep up your practice - one suggestion is to use sites like code:WOF to do small regular exercises. Also, remember that there's no single correct answer; the measure is if your program does the right thing, not if it's the same as someone else's.

In the EDEM course we will give you an opportunity to keep your fitness up, but you'll need to arrive with a basic level, as we aren't teaching you to be a programmer, we're teaching how to teach programming(!)

If these challenges used ideas that you aren't familiar with, or if you don't have programming experience, you will need to become confident in the basic ideas in programming before taking EDEM665. There are a number of ways to learn to program. We're running a free 3-day course in January that is intended to take teachers from no programming experience to the level needed for EDEM665; there's a repeat version of it in April, although that's a bit last-minute!

Another option is Code Club for Teachers.

There are also the following two online courses are available free to teachers and are developed in NZ and Australia respectively, so are based on local culture and curricula.

  • CodeAvengers have a Python course. (They allow a free trial for teachers - if it's limited time, explain what you're doing and ask to have it extended.)
  • Grok learning have an introduction to Python programming (you may need to prove to them that you're a teacher; if there are issues, contact Tim!)

Here are the programs you can use to test yourself:

The pre-quiz questions

"Do not disturb"

This program implements a "do not disturb" policy for ringing a phone; if a call is received between 10pm and 6am, it should simply display "Call received", otherwise if should display "Phone ringing". The input to the program is a number between 0 and 24 (representing the hour in 24 hour time; for example, 22 is 10pm). Any invalid times should display "Time not valid".

Here are some examples of the input and output expected:

Input  Output
5      Call received
6      Phone ringing
7      Phone ringing
21     Phone ringing
22     Call received
24     Call received
25     Time not valid

Certificate printing

Certificates are being printed with the names of two people in a team. To make the certificate look balanced, the person with the shorter name should be shown first. Write a program that reads in two names, and prints the shorter name first. If they are the same length, then they should be printed in the order they were typed in. The length is based on the number of characters in the name. For example, if the names typed in are:
Adam Apple
Betty Banana
then they would be printed as:
Adam Apple
Betty Banana

But if they were:
Trevor Storr
Tim Bell
then the output should be:
Tim Bell
Trevor Storr

Extra challenges

Here are some extra challenges that would be ideal for you to be able to complete, but we'll be looking at this kind of problem in the course. If you get your programming up to the level of being able to answer this kind of question easily, you won't need as much time to learn these ideas during the course.

Counting top students

This challenge is to count how many students scored 90 or more on a test. Your program should read in a sequence of whole numbers, stopping when -1 is entered, and display how many of the numbers were 90 or more. If a number less than -1 or more than 100 is entered, an error message should be displayed. Here are some sample input sequences, and the correct output:
30
94
98
50
-1
2 of the 4 scores are 90 or more

23
-1
0 of the 1 scores are 90 or more

23
102
This score is out of range

Improving marks

Given a list of a students' marks, the program should say if the student's marks have been consistently improving i.e. that every mark is better than the previous one. The input can either be a Python list (e.g. [33, 43, 76]), or a series of typed numbers ending with -1 e.g.
33
43
76
-1
Here are some examples if you're using lists:
Input               Output
[33, 43, 76]        Marks are consistently improving
[33, 31, 43]        Marks are NOT consistently improving
[33, 43, 43]        Marks are NOT consistently improving
[2, 3]              Marks are consistently improving
[23, 87, 104, 199]  Marks are consistently improving

Still have questions?

If you have any questions, please contact Tim Bell.