Create a colored 3D-Surface

Hey all,
I am new to GL, but I already set up my system and
can display some Polygons.

What I wanna do is to display a surface.
I have points with a specific heightvalue and want
to interpolate a smooth surface between it.
But do I need to create all needed polygons on my own?
Or does openGL already have functions for a purpose like this?
What keywords and design steps could you tell me for solving the problem.

Also I want to put interpolated color on the surface
which should be possible with a smooth shader.

Which design steps would you propose?

Regards
Jan