May 18, 2021

Engineering professor innovates new ways to teach software engineering

Programs offer new learning ideas for current and future students
Mohammad Moshirpour
Mohammad Moshirpour.

A professor at the Schulich School of Engineering aims to inspire future students and help retrain current engineers through updated programming that meets today’s needs.

As Schulich’s Teaching Chair in Software Engineering and program director for the Master of Engineering in Software Engineering, Dr. Mohammad Moshirpour says his goal is to elevate the program to top standing.

“We want our software engineering program to be the best in the country,” says Moshirpour, BSc’08, BSc (Eng)’09, MSc’11, PhD’16.

MEng in Software Engineering retrains Alberta engineers

Schulich received funding from the provincial government in 2018 to create a program to retrain Alberta engineers and allow them to have more job access in the high-tech sector. Moshirpour was tasked as the lead developer and designer of the program, which he says he envisioned as an “MBA for tech.”

He says he wanted to base the program on what he had experienced in industry, where companies often hire interns or new grads and train them quickly to perform.

“We leverage the fact that the people in the program are already master’s students, are already engineers, are already pretty smart and they’re very excited,” Moshirpour says.

The MEng program begins with a boot camp semester, during which students learn fundamentals like algorithms and data structures, object-oriented programming, and data engineering before progressing to more advanced courses in later semesters of the one-year course-based program.

Moshirpour describes the outcomes of the program as phenomenal, with its students having 100-per-cent job placement after graduation.

“I teach people basic, fundamental stuff in programming in April, and the following September they’re getting hired by Amazon as a software engineer,” says Moshirpour, adding grads have been hired by other companies including AMD, Benevity and Pason.

For his work in the program, Moshirpour has won several awards including the 2021 D2L Innovation Award in Teaching and Learning.

“The success of this program has been quite overwhelming,” he says, noting the program has graduated more than 100 students since its inception.

Schulich Ignite a mentorship opportunity for students

Established in 2016 as a collaboration with Google, the Schulich Ignite program allows university students to mentor high school students in programming in a hands-on and practice-based way.

Ignite has a strong mandate to target underrepresented groups in tech, says Moshirpour, who is one of the program’s instructors and creators. He says they worked closely with the university’s Equity and Diversity Committee to recruit female and Indigenous students.

To date, the program has graduated more than 1,500 students.

“The best feeling is when I get students come up to me and say, ‘I saw you in Grade 10 when I was in Schulich Ignite and it got me interested in engineering,’” says Moshirpour.

Schulich Ignite is a great way to engage with the community, recruiting students from all across Alberta, providing a service and getting young people excited about engineering, Moshirpour says.

Since the COVID-19 pandemic has made in-person classes impractical, Moshirpour has created a browser that students can program on and includes Zoom. He then sends a link to high schools with a time that he will be hosting a class, and students can attend virtually.

Schulich Ignite has become a self-run student club with its own administration, and recently won the Students’ Union Club of the Year award.

“During the pandemic, our students have been running the system to teach programming, and we have been able to reach out to small towns and we hope to reach out to more Indigenous communities as well,” says Moshirpour.

In 2017, Schulich Ignite won the AsTech award for community engagement, and the program has received more than $250,000 in funding to develop the systems and run the lessons.

Hackathons like TV cook-offs

Moshirpour has also introduced more hackathons to the Software Engineering program. Hackathons are events in which students are given a general guideline for what they have to program, and they must do this within a given time limit, after which they are judged on their design and creativity.

Moshirpour worked with the student body to create Hack Your Learning, a University of Calgary Students’ Union club that organizes hackathons in a systematic way.

He compares hackathons to television cook-offs, as software engineers should be able to apply their knowledge in a practical way to create something, just as chefs do during competitions.

Schulich’s Software Engineering teams placed first and second in the Western Engineering Competition (WEC), and they also won first place in the annual Canadian Engineering Competition (CEC) for programming. However, Moshirpour says while the competition aspect is important, they try not to put too much focus on it.

“As an educator, my goal is not to see who is at the top,” he says. “The idea is let’s get together, collaborate and build a community of practice, so we can all learn together.”

National Innovation Week at UCalgary  
As part of UCalgary’s partnership with the Rideau Hall Foundation, we are celebrating Canadian Innovation Week. Join UCalgary experts and researchers May 17-21 for a week of conversation, inspiration and ideas. Learn more.