Text this: The Task-Based Approach to Teaching Critical Thinking for Computer Science Students