A homological analogue of curve complex of a closed connected orientable surface is developed and studied. The dis-tance in this complex is shown to be quite computable and an algorithm given (Theorem 3.5). As an application of this complex it is shown that for a closed orientable 3-manifold, and any of its Heegaard splittings, one can give an algorithm to decide whether the manifold contains a 2-sided, non-separating, closed incompressible surface (Theorem 1.1).