Trends and Issues in Higher Ed

October 31, 2014

Helping students learn to work on professional teams

“I want students to leave the class able to participate in a professional software development team.”

Sean Munson
Assistant Professor, Human Centered Design & Engineering

 

In Sean Munson’s introductory course in Interactive Systems Design and Technology (HCDE 310), students learn computational thinking and gain experience with tools they would encounter on a professional software team. This requires them to learn to program software, a prospect many find intimidating. So Munson crafts programming assignments that build to a capstone project, designing and coding an application in an area of interest to them. “I wanted to empower students,” says Munson. “To get them to think, ‘This is cool! I can make something!’”

Student capstone projects have included an application that translates text messages, a tool that pulls up recipes by ingredient, and a parking spot reminder application that was a semifinalist in the Shobe Startup Prize. “My goal is that students understand how different pieces of a development team fit together and how to communicate with other members of the team,” says Munson. This includes being able to ask appropriate questions, developing design specifications, and submitting useful error reports, as well as using tools common to modern development environments. Several students told Munson they believed their learning in his course was a major contributor to getting industry jobs and internships, and that it prepared them to meaningfully contribute to research groups in the department and elsewhere on campus. Here are some of Munson’s thoughts on using technology to help students gain professional practice:

Record lectures for students who need extra help or want additional challenges: Munson says he is gradually recording lectures that review material for students who need more time to cover the material, or provide advanced content for students wanting to move ahead of the class. He says that recorded lectures are also a good place to cover step-by-step technology set-up for students who need that support.

Standardize software to reduce time required for tech support: At the beginning of the quarter, Munson distributes open-source software to his students so that each has the same “virtual machine” to use for programming. This reduces support time and confusion among students who have little or no programming experience. Munson uses the same software during demonstrations, so students can follow along in the same interface. Some students with more experience ask to work in a different environment. Munson tells them, “We’re not responsible for supporting that platform, but you’re welcome to make that choice.”

Give students practice working with professional tools: Repositories of computer code are a crucial tool for large collaborative software projects. Therefore, the virtual machine Munson provides to students connects to a basic repository that hosts lecture and assignment code. Students also set up their own repositories, where they check in code that they have written and tested so it’s available to their teammates, just as they would on a professional development project. The repository also serves as a backup if a student’s computer crashes.

Provide a safe place to ask questions: After exploring several options for discussion spaces, Munson settled on an optional Facebook group. Students primarily answer each other’s questions, but Munson and a teaching assistant drop into the discussion to coach students who ask incomplete or confusing questions, for example, by neglecting to include the code that is failing or the error message it generates. This practice in asking questions effectively prepares students to ask for help in a professional environment, such as Stack Overflow, a public question-and-answer site for programming and development issues, says Munson.

Model professional practice and problem-solving: Munson polls students during class using a basic tool he built. His polling tool gives him a way to gauge student understanding and also gives students an unintimidating window into software development, in this case, detecting, reporting, and repairing errors. “I deliberately left some bugs in the software, ways that students can submit an answer a thousand times if they want to,” says Munson. “So, as they learn about the technologies the tool is based on, they have fun seeing if they can break it.”

Learn More

Read the full Provost report on how to use technology in the classroom to engage students.