  We give a linear-time algorithm to decide 3-colorability of a triangle-free
graph embedded in a fixed surface, and a quadratic-time algorithm to output a
3-coloring in the affirmative case. The algorithms also allow to prescribe the
coloring of a bounded number of vertices.
