waterford institute of technology. applied computing. 2nd year. algorithms