Introducing Students to Structured Problem-Solving

student picture

Kez Danielle May

Contact: LinkedIn

The Computing and Software Systems (CSS) division of the University of Washington Bothell (UWB) takes 235 new undergraduate students every year. With Microsoft, Google, Facebook, and Amazon nearby, graduates apply to some of the biggest software companies in the world. This pressures UWB to provide an excellent CSS program, and they do. So why do so many CSS students from UWB feel unprepared to interview for a job?

The CSS division offers a strong foundation of core classes and a variety of elective courses, but they do not teach skills required to pass an interview. An interview for a Software Engineer has a behavioral and a technical portion. During the technical portion of an interview, the candidate solves a programming problem in front of one or more interviewers. The solution is written on a whiteboard and the candidate explains their thought process as they work. The CSS program provides students with education on software tools like data structures and algorithms, but little education about how to identify which of these tools are required to solve a given problem.

To test whether teaching a structured approach to problem solving helps students solve programming problems, an online course was developed. Current tools for practice technical interviews are websites like Leetcode. They offer programming problems and solutions. The online course took problems from Leetcode and explained different solutions to the problems and why they work. After generating 50 lessons, 8 workshops were held for 3rd year CSS students.

Many CSS undergraduates lack the skills required to start solving a problem. Though the course was designed to explain solutions to known interview problems, interacting with students in the workshops revealed a different need. When students were asked to solve problems, common pitfalls emerged. When those pitfalls were targeted in later workshops, students showed an increased ability to answer questions about how to solve the problem. In a small survey of seven participants, 85.7% found these workshops improved their performance in school and 71.4% believe it prepared them for technical interviews.

The data suggests that CSS students would benefit from a problem-solving course. There are 3 different options suggested. One, integrate the problem-solving lessons into an existing core class. Two, create a CSS skills course that teaches the fundamentals of problem solving. Three, continue with the format demonstrated in this research by creating a workshop track.