Queen's University Queen's University
Search Type

Jim Cordy

[Jim Cordy photo]

Dr. Jim Cordy at a School of Computing and NSERC funding

School of Computing

Cross-appointed to Department of Electrical and Computer Engineering

Don't over prepare. Rediscover what's in your subject as you teach, so you will be excited about it and thoroughly engaged.

Jim Cordy was already working as a computer programmer when he first thought about becoming a university professor. "I started to notice, while working with professors in my job, that they got to travel all over the world. I really wanted to do that too! So when a friend at a party told me that he was returning to get his PhD, I decided, that very afternoon, to do it as well. In the end, I went back but he didn't."

Now a professor in the Queen's School of Computing, Cordy has indeed traveled around the world and has even lived in Italy and Germany for a time. This life is a far cry from a childhood spent growing up in one of Toronto's tougher inner-city neighbourhoods. "There were car-bombs and gang fights where I lived. In fact, I was the first in my family to graduate from high school."

When Cordy graduated, he headed to the University of Toronto to study physics. "When I was younger, because it was the atomic era of the 1950s and I was good at mathematics, my parents were convinced that I should be a nuclear physicist but, in the end, I didn't enjoy it."

On the ground floor of a new subject...

Cordy still loved math though, so in first year, he took an extra course in a brand new subject called Computer Science. "I loved it and got my highest mark in it. I also happened to have a great TA, and got personal time with him since he only had about eight students. In those days, a computer cost three million dollars, was the size of a small gymnasium and yet was a million times less powerful than a laptop today. But because we had to submit programs and wait six hours for the results, we learned to be very careful and get it right the first time."

After getting his undergraduate and master's degrees in math and computer science, Cordy worked as a computer programmer, but still had ties to the university through his work. "So when I went back for my PhD, I worked with some of the same people. My research was in the area of computer science education; I looked at how people learn programming and how best to design systems that help them learn." Cordy helped design a programming language called TURING which was later licensed by the Ontario Ministry of Education and taught to all Ontario high school students, as well as Queen's and other university students, for more than a decade.

During his education Cordy was inspired by a pair of supervisors who had polar-opposite supervision styles. "One was very hands-on and gave us a lot of his time, while the other viewed us as apprentice colleagues. He would point us in a direction, tell us we were headed that way and say 'bye.' I like to joke that I could count on the fingers of one hand the number of hours he actually spent talking to me about my PhD! But we actually spent many, many hours talking about other things. It was only later, when I had a group of my own, that I realized that his hands-off style had to do with management. When you supervise grad students, every student needs to be handled differently. In my case, he knew I didn't need close supervision."

 "From each of my supervisors I learned that, if you want to make progress on a doctorate, you can't be too focused. You can get stuck because it feels like it's the whole world; it becomes somehow too important. So my supervisor would often talk with me about the TURING language we were designing instead of my PhD. In the end, when I graduated, it was good to have this other topic, because I wasn't just a one trick pony but had worked on both my PhD and the TURING project. That was part of his gift to me."

After a couple of years, Cordy took on a lecturer position at the University of Toronto, teaching computer science mainly to students in engineering. More recently, he got his own certification as a professional engineer, since it is only in the last decade that software engineering has been recognized as a part of that profession.

The importance of real-world experiences...

"These days I teach a fourth-year course called Programming Language Processors, which just happens to be what I have been researching for over 30 years. I give the students a real system, a real programming language processor that was originally built more than two decades ago. I lecture them about theory, history, and how solutions are derived from the mathematical models, and then balance it with practical assignments. They already have a language processor that does the old language and I help them understand how this same solution can be adapted to modern new languages."

"This project is a big job, and since no one in our industry ever works alone, I assign them to teams of three. I tell them that they are a software company that has been contracted to implement the solution for a real customer. After all, it's a fact that everything in computer science is about expressing solutions. Students have to apply all they have learned in their four years, manage their team, and produce documentation for their 'customer.' They find it a lot of work, but five to ten years later I hear back from students who tell me that they are applying what they learned in the course in their day-to-day work even now."

Spending this kind of time with students enriches Cordy. "It's satisfying if you come across an idea that a student just can't see over and you help them imagine all the ways to look at it. If I can get them over that hill, to see the other side, then the little light bulb over their head comes on. You can see it happen and I love that. And in every course there are new ideas to be learned that change the way you think forever."

His students agree. MSc candidate Eric Rapos says, "I have only had the opportunity of taking one class from Dr. Cordy as an undergraduate student, but I can definitely say that it is, to this day, my favourite undergrad course. I went on to TA that same course for Dr. Cordy because I enjoyed it immensely. I have also taken a graduate course from him. His interactive teaching style makes for an interesting lecture, and his integration of humour keeps the lecture fun and refreshing. Also, Dr. Cordy's vast array of knowledge and experience makes him a wealth of knowledge and he makes this apparent when instructing. I would jump at another opportunity to have him as an instructor."

Another student, Scott Grant, is nearing the end of a doctoral thesis under Dr. Cordy's supervision. He says, "My entire approach to teaching has been built on his guidance and experience, and emulating his teaching style will continue to be a focus of my academic career. Without a doubt, his teaching and supervisory styles have shaped my career."

Cordy also feels strongly that real world experiences are extremely important for computer science and engineering students. Because science is often about ideas and abstractions, Cordy says it is important that his students have their feet firmly on the ground. "Abstract ideas are not about the real world. You can't teach clouds, so I don't introduce anything without following it with the words 'for example.' I try to attach the ideas to something concrete and real in the students' lives. In one second year course about computer systems, I used the Coke machine down the hall as my example. After all, the students had all interacted with that machine! You have to constantly figure out the world your students are living in and keep the examples moving with their reality."

Profile by Patricia Henderson