Learning how to code at Carnegie Mellon is notoriously difficult. My team observed 5 different computer science students trying to complete their homework assignment for a contextual inquiry and created notes for affinity diagramming, sequence diagrams, and flow diagrams. All of our observations were then consolidated and used to brainstorm solutions for how to make the learning process better.
Affinity Diagram: we discovered that students have many, many resources at their disposal to help with their programming assignments, but it can be difficult to figure out which one is most useful (textbook, Google, etc.). “Resource Management” was the biggest issue we found during our observations – see green sticky note below.
Flow Diagram: “formal” and “informal” course resources are not connected in the process flow in any way. Our consolidated flow diagram below showed us that students waste a great deal of time trying to connect the dots between all available information.
Visioning: while we acknowledge other issues in terms of solitary learning and unfriendly lab spaces, we settled on the third solution vision seen below, an online textbook with links to other relevant resources. Students can post useful webpages or sample code as annotations to the textbook. Professors and TAs can post helpful lecture slides in specific sections and easily see where students are having trouble to improve the course.
We called our final solution Sourcehub and presented it to the programming instructor.