<div class="grid">
<!-- primera línea -->
<div class="course"></div>
<div class="course"></div>
<div class="course"></div>
<!-- segunda línea -->
<div class="course"></div>
<div class="course"></div>
<div class="course"></div>
<!-- tercera línea -->
<div class="course"></div>
<div class="course"></div>
<div class="course"></div>
<!-- cuarta línea -->
<div class="course"></div>
<div class="course"></div>
</div>
.grid {
display: flex;
flex-wrap: wrap;
}
.course {
width: 31.3%;
margin: 1%;
}
No entiendo la siguiente explicación: En este caso tendríamos 3 .course por línea, cada uno con width: 31.3% y margin: 1%.
De width eso totaliza: 31.3 * 3 = 93.9%.
De margin eso totaliza: 6% (1% a la izquierda y 1% a la derecha de cada elemento).
En el total tenemos: 93.9% + 6% = 99.9% que se puede redondear al 100%.