Eu fiz desta outra forma. Criei uma variável para definir o tamanho do limite do canvas e quando o circulo chega neste limite, altera a variável inicio (sentido usado pelo professor) para false. Não sei dizer se é a forma mais correta ou mais prática, mas quebrei a cabeça pra chegar neste resultado.
var tamW = 600
var tamH = 400
pincel.fillStyle = "white"
pincel.fillRect(0, 0, tamW, tamH)
function desenhaNovoCirculo(x, y, raio)
{
pincel.fillStyle = "blue"
pincel.beginPath()
pincel.arc(x, y, raio, 0, 2*Math.PI)
pincel.fill()
}
function limpaTela()
{
pincel.clearRect(0, 0, 600, 400)
}
var x = 20
var inicio = true
function atualizaTela(evento)
{
limpaTela()
desenhaNovoCirculo(x, 20, 10)
if(x == 20){
inicio = true
}
if(x >= (tamW - 20)){
inicio = false
}
if(inicio){
x++
} else {
x = x - 1
}
}