Programming the Boundary Element Method