theoretical computer science concepts part 2 3190835