How we used Design Thinking in a Student-led Classroom

Ishaan Parikh
STICs @ UMD
Published in
12 min readSep 17, 2017

During the Spring 2017 semester, my friend, Sashank, and I created and taught a course in the computer science department at the University of Maryland. The course was called “Full-stack Web Development with Node.js” (find the repository here). A total of 27 students completed the class with fantastic reviews.

“I honestly think this class has been the most relevant to the career path I anticipate going into. This class is already on my resume, as I am applying primarily to web development and design positions. I’d love to apply the skills I learned in this class in future projects; in fact, I already did a hackathon project using Node.js since starting this class. I’m very excited to learn more Node.js techniques and further developing skills in this field.”

“This has been one of the most useful classes I have taken at the university.”

“I thought that this class was an amazing experience. The workshop model lends itself to asking a lot of great questions, and I learned a lot from the TAs’ answers and other students’ questions. It was a great way to get hands-on experience as well, which is essential when it comes to topics such as web development.”

Undergrads developed, led, and taught the course — an idea that led to the creation of the Student-Initiated Courses (STICs) through the Academy of Innovation and Entrepreneurship @ UMD. Precedent for this model exists at UC Berkeley, Carnegie Mellon, Rice University, and more.

Student-Initiated Courses (STICs) @ UMD

Because we had not done this before, we had no experience teaching a full-blown class. We needed a process to help us develop and iterate upon our course and its content.

Coincidentally, I was learning about the design thinking process in many of my classes, and so I suggested we use it while designing curriculum. Design thinking proved invaluable to the eventual success of our class. This process allowed Sashank and I, as first-time instructors, to design a course that people wanted, and iteratively improve on the content and delivery.

We learned a great deal from applying design thinking to our curriculum. This article summarizes what we learned, in the hope that it might help other teachers in scoping a class and designing curriculum.

Brief Overview of Design Thinking

The 5-step design thinking process. Source: Stanford d.school

The fives steps of design thinking are empathize, define, ideate, prototype, and test.

Empathize: “Gain an empathic understanding of the problem you are trying to solve. This involves consulting experts to find out more about the area of concern through observing, engaging and empathizing with people to understand their experiences and motivations.”

Define: “Put together the information you have created and gathered during the empathize stage to define the core problems of the issue.”

Ideate: “Identify new solutions to the problem statement you’ve created, and [start looking] for alternative ways of viewing the problem.”

Prototype: Select an idea and “produce a number of inexpensive, scaled down versions of the product or specific features found within the product, so they can investigate the problem solutions generated in the previous stage. Prototypes may be shared and tested within the team itself, in other departments, or on a small group of people outside the design team. This is an experimental phase, and the aim is to identify the best possible solution for [the problem] identified during the first three stages.”

Test: “Rigorously test the complete product using the best solutions identified during the prototyping phase. This is the final stage of the 5 stage-model, but in an iterative process, the results generated during the testing phase are often used to redefine one or more problems and inform the understanding of the users, the conditions of use, how people think, behave, and feel, and to empathize.”

This is not a one-and-done process, however. There are a few “backward” paths worth noting.

  1. Prototype → Ideate: After prototyping your product and testing with a few users, it may become apparent that you need to tweak the idea. Hence, you will have to move back to the ideation phase.
  2. Test → Empathize: After testing your product with users, you are guaranteed to learn more about your users. This will provide you with information that would have been useful during the empathize phase.
  3. Test → Ideate: After testing your product and collecting feedback, you may generate new ideas on how to solve the problem. These are definitely worth considering in the ideate phase.

These aren’t the only backward paths, however. Feel free to move between steps as you see fit! These are only the common suggestions.

“In essence, the Design Thinking process is iterative, flexible and focused on collaboration between designers and users, with an emphasis on bringing ideas to life based on how real users think, feel and behave.”

Thanks to this article for these definitions and quotes. Feel free to check out these links to learn more about design thinking.

Interaction Design Foundation

Stanford d.school

KNCT Lab

Applying Design Thinking to Curriculum Development

Usually, people apply design thinking to product development for a specific group of users. How might it work when we apply it to a course? We can think of a class and its content as the “product” and the students as “users”.

In this section, I want to tell the story of how we used the 5 stages of design thinking to run our class. This will start from the very beginning, answering questions like “how do you find a course topic?” and “who is my audience?”. Then, we discuss content creation, development, and finally iteration. You may find that depending on your stage in the course creation process, you would want to start at a different step in design thinking. We will move from general comments to our specific application.

Empathize: We can use the empathize stage to figure out the intersection of what the users (users) want to learn and the teachers can teach.

What do people want to learn?

What subject is not offered that students wish existed?

After choosing a topic, it can be helpful to build with questions like:

What do the students already know?

What are their objectives in taking your class?

Find the intersection of the students’ interests and your skills and pick an interesting topic!

In our case, there was a demand for more web development classes among computer science students. Students found the institutionalized education to be too theoretical and foundational; they desired a primarily practical course. So, we settled on “web development.”

Define: In course development, the define stage allows educators to outline a course’s topic and specific learning outcomes. Taking the broad topic from the previous steps, think more about the scope in the context of learning objectives — what is the specific question that I want students to walk away knowing the “answer” to at the end of the course?”

There were two main hurdles with “web development” as our topic. First, “Introduction to Computer Programming via the Web” was already a class at the University of Maryland. Second, “Web Development” was too broad a topic to cover in only one semester.

After finding the intersection of the student body’s (users’) interests and our skills, understanding what was already offered by the school, and considering the timeframe of one semester, we settled on “Full-stack Web Development with Node.js” (product) and generated a syllabus.

The final list of topics we decided to cover in our class.
The week-by-week breakdown of when to cover each topic.

Note how there can be repeated/backward steps within this step. For example, if your course topic idea has too much material to cover in the time you’ll have to teach it, you may need to go back to your empathy work to refine the topic.

Creating a syllabus (with a class-by-class plan) during the define stage of the process can be useful in understanding the scope of your topic. This is highly recommended. Many schools with established student-initiated course programs require potential facilitators to create a syllabus before they apply because they often realize their topics are too broad or narrow.

After completing these steps, you are ready to start working out specifics.

Ideate: The ideation step allows us to figure out the best mediums to teach the selected topic. This means asking questions like:

How might we convey information?

How will students be graded?

Will the class be project-based or not?

We found that it was most helpful to think about how class should run (in class) week-by-week. Listed below are a few potential mechanisms.

  1. Lecture: “A teaching method where an instructor delivers all relevant information to students verbally. During a typical lecture, an instructor will stand before a class and present information for the students to learn. Students are expected to take notes while listening to the lecture.”
  2. Discussion: A teaching method that “promotes learning through interaction. In this style, practiced by Socrates, the teacher encourages critical thinking and lively discussion by asking students to respond to challenging questions. The teacher is a facilitator guiding the discussion to a logical conclusion. Students learn to have opinions and to back them up with facts and data.”
  3. Project-Based: “Project-based learning is a dynamic classroom approach in which students actively explore real-world problems and challenges and acquire a deeper knowledge.”

Most topics can fit in into one of these, but some may require some tweaking. For example, if I were to teach “Triathlon 101,” I would want to practice in a pool/track/road and this does not really fall under any of the above three structures. There are many structures, especially in the field of experiential learning, that could be at least as effective as the above techniques.

We wrote down a ton of possibilities that had many different structures and settings, but we eventually agreed on an format that was a fusion of many smaller ideas. Some of our initial ideas included:

  1. Every single class is group programming on some topic and there would never be a lecture.
  2. The facilitators would live code every class, and the class would have to follow along. Sashank and I would swap with one another every few minutes to split up the work.
  3. The semester is basically one huge web application that you start building in the beginning, and you present at the end as a final project.

Idea #1 is great for project-based learning (which is awesome), but may not be structured enough. Idea #2 would essentially be workshops, but the students may not have enough room for personal expression. Idea #3 is super freeform and expressive, but once again, there probably would not be enough structure. Eventually, we concluded on the following structure.

Each class is a workshop where one of the two facilitators is leading a coding activity while the other one is walking around helping students. The students follow along and are allowed to ask questions at any time. In order to prepare for class, we assign pre-class readings. The class has optional post-class worksheets that students could use to solidify understanding. We have 6–7 projects, a midterm exam, and a final project.

Now, we have a classroom structure! While this idea is far from perfect, it is definitely better than any of the three individual ideas. It has a blend of lecture, real-world applications, and interesting assignments. You should iterate on these ideas multiple times and try to generate completely different ones each time. At the end, pick the best one. Because of the rapid iteration cycle that design thinking has, you can pick non-standard structures and prototype them! You may discover that some seemingly unreasonable ideas actually have aspects you can use.

One of the great things about the design process is that it can work at different levels — you can apply the same iterative ideation flow when you are coming up with materials, assignments, and evaluations. For example, generating different ideas for a midterm can help you come up with a more fair and fun exam than a traditional written test.

When learning about design thinking, I was always told, “when you think of an idea, no matter how ridiculous you think it is, write it down.” An unrealistic idea may have parts that could be incorporated into a more realistic one. Even better, writing down crazy ideas puts you in a creative mode, and generating a high quantity of ideas makes it more likely to create a few high quality ideas.

Prototype: Zero in on your favorite idea (or combination of ideas). Then, start to create the actual content! This means creating the lecture notes, sample midterms, example homework, etc. Run the sample materials by a co-facilitator, professor, or anyone you trust to give constructive feedback. Depending on feedback received, you may need to go back to the ideation phase and iterate upon your content. When you are comfortable with the prototype, the only thing left to do is test it!

Each week, Sashank and I would create the materials and (ideally) have them ready by Wednesday to be prepared for class on Friday. On Wednesday evening, we ran through a sample class and gave feedback to each other. Changes would be made on Thursday to be good to go by Friday. These prototypes often changed based on the feedback received from the class after the previous week’s session.

I cannot stress how important it is to practice with a real group of people.

Sashank and I would practice our “lectures” with each other before class every week. Each class (with a few exceptions) had one of us leading the coding exercise while the other would walked around to answer any questions that arose. Here, our practice paid off — we were able to anticipate questions and have explanations ready

Making the prototypes before each class and running them through different groups of people was useful, and it is highly recommended that you do this to:

  1. Practice.
  2. Find flaws in advance.
  3. Discover your strengths and weakness when leading a classroom.
  4. Get multiple perspectives on the content.

Test: Time to actually deliver this to your class! From this, you will learn a lot. The important thing here is to collect feedback. There are a couple different types of feedback that we have found helpful.

  1. Implicit: Even though you may think some ideas are great in theory during the prototyping phase, that may not be the case in practice. Some ideas may end up being a little more awkward than anticipated, or you may find out that some activities were not engaging enough. Either way, you will notice the shortcomings of the current idea.
  2. Solicited: Collect feedback from your class! After each class, ask them how you did. This could mean sending out a quick Google Form, talking to individuals, or giving out an optional survey. This is getting feedback directly from the people who matter the most, and so nothing can top this.
  3. Mentor: Having someone in some sort of advisory role can be extremely beneficial. Even if your mentor doesn’t have content knowledge about your subject, as long as they understand teaching, their constructive criticism could be useful.

Every Friday, we would run (“test”) our class. More importantly, we collected a ton of feedback and changed the way we ran class.

  1. Implicit: Sashank and I found it exhausting to have the structure of one of us teaching and the other walking around for the entire class, and so occasionally we would switch halfway through. We also realized that during the more code-intensive workshops, many people would get lost because they were focused on copying code down instead of understanding the concepts. Therefore, we started suggesting that people not write any code down and instead only pay attention; the class appreciated this change.
  2. Solicited: At the end of each class, we sent the class an anonymous Google Form that asked for feedback on the difficulty, pacing, and other aspects of the class. Students suggested that we pose more questions to the class to check understanding, and so we did. In addition, students told us that we occasionally spoke too fast, and so Sashank and I started signaling each other when whichever of us was teaching was going too quickly.
  3. Mentor: We had a faculty advisor that sat in on almost every class. Perhaps the most important point of feedback he gave us was to allow students 1–2 minutes every 10–15 minutes to catch each other up. This was effective because students were more willing to discuss their problems with each other rather than the instructors. It was also easier to raise your hand as a group rather than as an individual.

Final Thoughts

Design thinking lends itself nicely to different applications because of how general it is by nature. Because the process is at its core focusing on feedback and iterating based on your users, it fits in rather nicely to something as user-focused as teaching. In addition, for first-time teachers, it provides structure to an otherwise abstract process. It allows teachers to place the students needs and feedback first, and this is paramount when improving course content.

Thanks to Robert Cobb, Nick Aversano, Alyssa Alfonso, Erica Estrada-Liou, and Dean Chang for editing this! If you found this helpful, click the ❤️ ! To find more information on STICs @ UMD, follow this link.

--

--

Ishaan Parikh
STICs @ UMD

Currently @ UMD working on stics.umd.edu. Previously: SWE @ Facebook, KPCB Engineering Fellow @ Indiegogo, Mobile Engineering @ LendUp