technology:software algorithms