Tideman cs50 hard. Problem sets .