Learning of k-CNF Boolean Functions