Flawed but vital: MARS teaches students specifics of computer architecture

Image via University of Missouri

The MARS software editing screen.

By Griffin Lynch, For The Pitt News

You probably know what computer code looks like, whether it’s the web-standard HTML or something a little more technical for statistics or programming. You likely also know that computer data is stored in 1s and 0s. But there are a lot of intermediate steps between the 1s and 0s and how you interact with your computer — and for humans, those steps can be difficult to learn.

One of those steps is a type of computer language called assembly, which every computer uses to run every program. To the average computer user, assembly languages are practically unreadable, because the statements correspond to specific parts of the central processing unit the language applies to. Assembly translates other code, like Python or R, into machine code — the 1s and 0s.

Students at Pitt in CS 0447, a core computer science class focusing on the physical and digital structure of computers, are undertaking the difficult task of learning how to read and write assembly languages — and a tool is making it easier for students and teachers alike.

MARS stands for “MIPS Assembler and Runtime Simulator” and is a digital application used to teach the assembly language for a specific kind of computer architecture called MIPS. Classes of all sorts at Pitt leverage technological tools to help guide their students, from exploring ancient Greece via VR for a history class to simulating medical procedures for medical students. But most classes lack a tool devised specifically for the material being taught, which is where MARS stands out.

Virtual simulators are important in lots of coding classes, with one common example being IDLE, a program which allows users to write code in the computer language Python and test their work in real time. MARS is a similar program, but for the assembly language MIPS. For instructors like Jarret Billingsley, a part-time instructor for the computer science department, MARS has been crucial in teaching MIPS.

“Unfortunately, MIPS is not a very common architecture, but it is very influential. Because it’s not common, we need to have some kind of tool which allows us to program in MIPS, and to run our programs,” Billingsley said. “[MARS] gives us a nice playground to play around with MIPS, without necessarily having access to a real MIPS computer.”

Sophomore computer science major Mathew Varughese said that without MARS, learning the underlying ideas would have been next to impossible.

“Before we were introduced to MARS, it was super abstract ideas,” Varughese said. “But then when you dive into the assembly … there’s little nuances you can only learn by actually creating a program.”

Varughese did have his complaints about MARS, however.

“The text editor was just garbage … but [the simulator] did what it needed to perfectly,” Varughese said. “It had glitches and stuff, and you had to restart it, but it got the job done.”

Billingsley agreed the program was buggy. It was developed at the Missouri State University beginning in the early 2000s, spearheaded by a professor named Ken Vollmar. In January 2005, MARS was officially released to the public, according to its website. Its developers continued updating the program multiple times a year, but the most recent release was in August 2014.

Billingsley sometimes questions the 5-year-old program’s utility. Although a tool like MARS can be crucial to let the students experience the ideas firsthand, if a student has to learn how to use a whole new software, it can get in the way of the concepts, Billingsley said.

“If you’re trying to learn a new language that you’ve never used before, you’re not only trying to learn the language, you’re trying to learn all of the concepts behind the language at the same time,” Billingsley said. “And then if you also have this tool on top of it, and the tool has all these weird quirks and complexities, it’s like trying to teach three things instead of just two, and two is hard enough already.”

But many students, including Zikai Zhang, another sophomore computer science major, found use in the program. Zhang said when he finally found his footing in the theory of computer organization, the editor became more useful the more he used it. He found the included reference material and debugger particularly helpful. For example, to find the syntax for “load address,” an instruction that transports data around the computer, he just had to click the help button.

“You can find out [what each instruction is], and the format for the syntax,” Zhang said.

Varughese said teaching MARS makes sense for CS 0447 because of the content they learn in the class. Compared to the many classes in the department which cover the theory behind computers and data storage, CS 0447 requires much more coding, making MARS a valuable tool.

“For [theory-focused courses], there are tools that can help you do animations and visualizations, maybe, that help you understand the concepts better, but [they don’t help to] the same degree that tools you have in the ‘engineering classes’ do,” Varughese said.

But though MARS has its problems, it’s also vital for teaching the MIPS assembly language. Its simplicity and focus on education mean that students like Zhang and Varughese can utilize it as an effective learning method.

“It’s all about how the tools are used,” Varughese said. “If you use a tool with the focus of the students, and education in mind, then I think it’s super powerful.”