The Daily Java

Background

A couple of years ago I started to write the 99 Java Problems based on a loose copy of the Ninety-Nine Lisp Problems, which were themselves translations of Ninety-Nine Prolog Problems. I intended the problems to be a study aid for my students, however it quickly became apparent that many of the problems were too hard. I thus set about working on a more basic set of questions: the Daily Java is the result.

Why the Daily Java?

A few years ago the Maths Department in my school began what they called “The Daily Dose”. 16-18 year old students were required to complete 20 minutes of maths problems a day. This regular practice  proved very successful at raising attainment.
The Daily Java is based on this idea. It consists of a levelled set of questions in an ascending order of difficulty. Students can attempt more than one question a day, particularly at the beginning where the questions are easier, however, it is better to do little and often than to attempt to complete a big block all at once.

A Levelled Approach

The Daily Java questions are levelled. It’s my experience that nearly all students are capable of coding at level 1. Some students need help to progress to subsequent levels.
The following are based on my department’s experience in teaching coding. You may disagree with the levels, you may wish to use them as a starting point for further development, either way, I’d be very interested to hear your opinion.

Level 1

  • Output Strings and numbers
  • Concatenate Strings and numbers
  • Use variables
  • Perform simple arithmetic operations
  • Prompt for user input

Level 2

  • Use if statements with Strings
  • Use if statements with numbers
  • Use if else statements
  • Understand difference between addition and concatenation.

Level 3

  • for, while and do while loops
  • 1D Arrays
  • Concise comments

Level 4

  • Boolean operators AND OR NOT
  • Counts and iterations while loops
  • Nest if statements

Level 5

  • Nest for, while and do while loops
  • Methods and parameters
  • 2D Arrays
  • Variable scope

Level 6

  • Recursion
  • Modular programming
  • Self-documenting code: high level commenting

Leave a Comment