By David Simpson

Semester after semester, Ayman Elmesalami noticed that a few of his introductory computer programming students would grow frustrated or bored with writing code.

He had a hunch why.

"The problem was the lack of real-world applications that students could feel, see, hear, or touch," the 黑料正能量 lecturer in computer science said last month.

Such applications, he believed, could not only make the work more engaging but also attract more young people to the computer science major, especially female and minority students.

So he and some colleagues launched an experiment with the help of a 2018 Faculty Innovator Grant from the Center for Learning and Teaching.

Their technology of choice: a computer the size of a deck of cards.

Known as the Raspberry Pi, it was designed by a U.K. charity to promote the teaching of basic computer science in schools. It's essentially a motherboard with visible components and costs as little as $35.

The Pi enables people to learn how to write computer programs in a wide variety of programming languages. It can do everything a desktop computer can do, including controlling external devices.

What makes it different, besides its size, is that students can see and touch the components, Elmesalami said.

"Where is the computer memory?" He pointed. "Here is the memory. Where is the processor? Here is the processor."

In two different programming and problem-solving courses in 2018, Elmesalami and Lecturer Soad Ibrahim had students complete a hands-on laboratory project using the Raspberry Pi's GPIO (general purpose input/output) port as an output device.

In CS 150, students wrote a quiz program that prints a random number between 1 and 500 on the screen; the user is asked to guess whether the number is prime. For a correct answer, a green LED lights up "You Win!" on the screen. For a wrong answer students get a red LED and "You Lose!" This was a lesson about control flow and functions in the programming language C++.

In CS 250, students completed a project simulating a credit card company management software program in which customers' data is stored in a binary file. A customer can pay the total amount of the balance or part of it. The customer can also make a purchase using the credit card, and create, modify, and delete accounts. The objective was to learn about abstract data types in C++.

The active-learning projects gave students a good feeling about what they could do on the computer, Elmesalami said.

"If you are able to turn on and off lights, it means you can open and close a door, you can move a car or stop the car, or you can launch a rocket."

At the end of the lab sessions 37 of the students volunteered to take an anonymous survey. The results suggested an increased interest in computer science and computer programming, especially from female and minority students, Elmesalami said.

Among the findings:

  • Grades improved by 25 percent for female students and 15 percent for minority students.
  • 92 percent of the students said the use of the Raspberry Pi helped them retain the knowledge they gained from taking CS 150 or 250.
  • 89 percent said the use of the Pi increased their appreciation of the computer science major.
  • 92 percent said the use of the Pi increased their participation level in class or helped motivate them to participate.

The experiment was so successful that not only are the tiny computers still being used in the two courses, but Graduate Teaching Assistant Heramb Pendyala is helping to develop a new Raspberry Pi project for the coming semester.

What's more, Elmesalami plans a series of further Pi projects.

His reaction to the results of the experiment?

"I was really happy," he said. "Especially with the big smiles on the faces of the students."