January 2016 Instructor of the Month - Nelson Amaral (Computing Science)

Kicking off 2016 as January's Instructor of the Month is the 2015 Faculty of Science Excellence in Teaching award winner, computing science professor Nelson Amaral.

04 January 2016

Q: What do you teach?

A: I teach Computer Architecture and Compiler Construction.

Q: Why should people learn about it?

A: Computer Architecture is about understanding the building blocks that go into creating a computing system, how these building blocks are put together, and how the choices made by a designer influence the performance and functionality of a computing system. An early discussion with students in my courses focuses in the parallels between computer architecture and the architecture of a building. In both cases the very same important questions must be answered by a designer. What will the computing system be used for? What are the available components to use? What is the target price, energy consumption, size, and performance? What is the intended use of the system?

"​Life, as we experience today, would simply not be possible without the progresses that we have seen in the disciplines of Computer Architecture and Compiler Construction.​"

The place of Computer Architecture in the undergraduate program makes it fascinating because for many students, it is the first discipline where they really understand what happens with their computer programs once they hand it over to the compiler and to the hardware. It is fascinating to see the satisfaction that students derive from actually understanding how computers work.

A 2007 obituary for John W. Backus in the New York Times best summarized the idea of a compiler: "a program that captures the human intent of a program and recasts it in a way that a computer can process." Much mathematical reasoning and creativity is required to design the algorithms that are necessary to construct a compiler that generates efficient code. The discipline of Compiler construction is exciting to teach because students come to the course taking compilers for granted and assuming that most of the problems encountered in the process of building a compiler have already been solved. In the course of the discipline they discover that there are still fascinating challenges to be tackled.

Q: What are some of its "real-world" applications?

A: ​Life, as we experience today, would simply not be possible without the progresses that we have seen in the disciplines of Computer Architecture and Compiler Construction. Just watch people connecting through technology around campus and around town. None of those connections would be possible without the computing systems made reality through these two disciplines..

Q: What's the coolest thing about this subject area?

A: ​The coolest thing is to understand that the execution of a program in a computing system can be viewed as a flow of data through a graph. This view allows us to use very interesting mathematical formulations to decide what is the best way to transform a human-generated computer program into a machine representation that executes faster, consumes less energy, or requires less storage..​

Q: What's your favourite kind of teaching and/or learning space, and why?

A: ​For graduate teaching, we have round-table discussions of published work where the students do most of the talk. We mix students at all levels, from second-year undergraduates to senior doctoral students. Students are encouraged to answer questions from other students and to pitch in with information or analysis. This type of active and interactive learning is very effective and lots of fun.

Q: What was your favourite learning experience as an undergrad, and how do you incorporate that experience into teaching your students?

A: ​My favourite learning was in group projects in labs. Mine was an engineering degree, thus there was lots of hands-on labs with wiring, soldering, etc. I was the student on the other side of the bench that would not touch a wire or component, but that would make sure that all the components were in the right place and that the design was correct and the implementation followed the design. I try to incorporate that learning experience in senior courses by assigning group projects that involve designing and analysis of results..

Q: What is one thing that people would be surprised to know about you?

A: ​Probably that me and my husband were one of the first same-sex couples to get married in Alberta in 2005, and also that we got married on our son's first birthday.