Fiz um pouco diferente do professor, no caso fiz uso de três funções, uma para os quadrados, outra para as molduras e outra para o texto.
function desenhaQuadrado(x, y, tamanho, tamanho, cor) {
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.fillStyle = cor;
pincel.fillRect(x,y,tamanho,tamanho);
pincel.strokeRect(x,y,tamanho,tamanho);
}
var x = 0;
while (x < 300){
desenhaQuadrado(x,50,100,100,'green');
x = x + 100;
}
function desenhaMoldura(x, y, tamanho, tamanho, cor) {
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.strokeStyle = cor;
pincel.strokeRect(x,y,tamanho, tamanho);
}
var x = 0;
while (x < 400){
desenhaMoldura(x,50,100,100,'black');
x = x + 100;
}
function desenhaTexto(texto, x , y) {
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.font='20px Georgia';
pincel.fillStyle='black';
pincel.fillText(texto, x, y);
}
desenhaTexto("Qual é a fração?", 50, 30);
desenhaQuadrado();
desenhaMoldura();