Classroom Q&A: Dr. Jason Hemann and Custom Programming
Tue 01.19.21 / Aditi Peyush
Classroom Q&A: Dr. Jason Hemann and Custom Programming
Tue 01.19.21 / Aditi Peyush
Classroom Q&A: Dr. Jason Hemann and Custom Programming
Tue 01.19.21 / Aditi Peyush
Classroom Q&A: Dr. Jason Hemann and Custom Programming
Tue 01.19.21 / Aditi Peyush
According to Jason Hemann, Khoury College lecturer, “Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.”
Photo credit: Liz Linder Photography
According to Jason Hemann, Khoury College lecturer, “Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.”
Photo credit: Liz Linder Photography
According to Jason Hemann, Khoury College lecturer, “Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.”
Photo credit: Liz Linder Photography
According to Jason Hemann, Khoury College lecturer, “Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.”
Photo credit: Liz Linder Photography
A believer of the “cross pollination” between his teaching and research, Dr. Jason Hemann is a Khoury College lecturer (Boston), teaching courses in fundamentals, programming languages, and logic and computation. This year during the 2020-2021 intersession, he taught a new course, Relation and Constraint Programs, on “some of the most fascinating stuff” he knows about. He spoke to Khoury News about the class, his research interests, love for Boston’s education vibe, and salsa dancing.
Tell us about your intersession class, what are you covering?
I’m describing some uses and implementations of relational and constraint programming, a different style of programming that I think most people in Khoury will have seen in their courses so far—specifically, miniKanren, a small language/library for relational/logic/constraint logic programming that’s implemented in at least 50 host languages. Since there aren’t any prerequisites for the course and we had students join from all across the university, we started maybe a bit further back than most Khoury students would have expected. I hope that, by being able to go narrow, we can get further than even the students who have had the most relevant experience until this point would have been able.
Why did you choose this topic?
This is an area that was related to my dissertation work and my research area. I thought it would be a good way to get to talk about some of the material that I find especially interesting. It’s an area where I’m especially knowledgeable and especially qualified to teach students about something that’s new that they probably wouldn’t have learned in curriculum otherwise and wouldn’t have seen anywhere else. And it would also be a way to introduce people who are interested in research to what I’ve been working on and see if they want to get involved. I also think it’s the some of the most fascinating stuff I know about. Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.
What stood out about it to you, and why is it important for students to learn about?
We’re able to discuss several different topics in one, because this is situated in another couple of important discussions. It’s important to know how to describe your data to state a template, to be able to have tests for all this usual information that we know. But also, because we’re discussing special purpose languages, we are able to discuss the importance of building custom languages for certain problems. In and of itself, it’s a very important technique and something that the researchers at Khoury College are heavily involved in working on. So often, the right tool for the job is the one that you custom build for it.
What got you interested in this topic?
It came out of my undergraduate coursework on programming languages research and background interest in logic generally. In my undergraduate work, I had a long interest in the intersection of and cross communication between logic and computer science, and this definitely fits in that space. A lot of people I know got into computer science because they want to make video games. I thought that the Halting problem was neat, a computability theory that uses a description of a computer program and input to determine whether a program will terminate or continue indefinitely. It’s very neat to see what you can do with a small, pretty piece of code. I like beautiful programs, and this is, at its heart, one of the prettiest programs that I know of.
What else do you teach for Khoury College, at what level?
So far, I have taught a decent spread of courses. I’ve taught the 4400 and 5400 programming languages course, the latter of which is a graduate-level course. 2510 and 4500, those are Fundamentals II and Object-Oriented Design, both undergraduate courses. 2800, the Logic and Computation course, that’s also an undergraduate class. In the past, I have taught CS4500: Software Development.
Besides your work at Khoury, what else do you do professionally?
Let’s see. I run several workshops related to the languages in which I work. I’m now a steering-committee member for the miniKanren workshop. I had the opportunity to help review with a couple different conferences and journals proceedings. I have also had the opportunity to work with and mentor a couple of different undergraduate students at various stages in their progression towards graduate school.
I do participate in the Programming Research Laboratory (PRL) research here at Khoury College. About a month from now, I am giving an invited talk to a school in Singapore. In those kinds of things, I try and work with other colleagues and see if I can solve some open, nagging problems, the kind of things that puzzle you in the shower and keep you up at night.
What topics in computer science interests you? Do you have any specific problems or applications that you’re particularly passionate about?
Fundamental foundational work and the mathematics of computation. I’m not particularly interested in vagaries of how x86 happens to work, but much more interested in the ideas of things that are universal to computation and less about the things that are how we happened to execute it.
I find that the best questions, or my favorite problems, are ones that emerge naturally. I so love teaching my programming languages course. Very often, my research questions emerge out of things that come up in lecture or preparing lecture. Being able to reintroduce the things that I’ve worked on in a way that makes sense to a clever undergraduate student with a little bit of background means I understand it well. So that cross pollination is really important to my progression as a scholar.
What’s it like teaching at the Boston campus and living in the Boston area?
In the time that I’ve been here on and off, I’ve been really excited to live in around the Boston area. I love being in a city, I love being in a metro area. It’s great having public transit. It’s terrific being surrounded by so many opportunities broadly educational—not just invited talks, but also museums and theatre shows. A place that’s so deeply steeped in history… I was a history major as an undergraduate. It’s also wonderful being a scholar in a city with so many scholars and being interested in education in a place where so much education is happening and where so many people are also in the same topics. There are very few places I can imagine that would have so many people in so many different areas working on similar kinds of goals.
What’s a fun fact about you, that your students might not know?
I really enjoy Salsa dancing, specifically Rueda. For a while I was going out dancing Salsa or Bachata six nights a week.
For more information on Relational and Constraint Programming taught by Professor Hemann, check out his course website here.
A believer of the “cross pollination” between his teaching and research, Dr. Jason Hemann is a Khoury College lecturer (Boston), teaching courses in fundamentals, programming languages, and logic and computation. This year during the 2020-2021 intersession, he taught a new course, Relation and Constraint Programs, on “some of the most fascinating stuff” he knows about. He spoke to Khoury News about the class, his research interests, love for Boston’s education vibe, and salsa dancing.
Tell us about your intersession class, what are you covering?
I’m describing some uses and implementations of relational and constraint programming, a different style of programming that I think most people in Khoury will have seen in their courses so far—specifically, miniKanren, a small language/library for relational/logic/constraint logic programming that’s implemented in at least 50 host languages. Since there aren’t any prerequisites for the course and we had students join from all across the university, we started maybe a bit further back than most Khoury students would have expected. I hope that, by being able to go narrow, we can get further than even the students who have had the most relevant experience until this point would have been able.
Why did you choose this topic?
This is an area that was related to my dissertation work and my research area. I thought it would be a good way to get to talk about some of the material that I find especially interesting. It’s an area where I’m especially knowledgeable and especially qualified to teach students about something that’s new that they probably wouldn’t have learned in curriculum otherwise and wouldn’t have seen anywhere else. And it would also be a way to introduce people who are interested in research to what I’ve been working on and see if they want to get involved. I also think it’s the some of the most fascinating stuff I know about. Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.
What stood out about it to you, and why is it important for students to learn about?
We’re able to discuss several different topics in one, because this is situated in another couple of important discussions. It’s important to know how to describe your data to state a template, to be able to have tests for all this usual information that we know. But also, because we’re discussing special purpose languages, we are able to discuss the importance of building custom languages for certain problems. In and of itself, it’s a very important technique and something that the researchers at Khoury College are heavily involved in working on. So often, the right tool for the job is the one that you custom build for it.
What got you interested in this topic?
It came out of my undergraduate coursework on programming languages research and background interest in logic generally. In my undergraduate work, I had a long interest in the intersection of and cross communication between logic and computer science, and this definitely fits in that space. A lot of people I know got into computer science because they want to make video games. I thought that the Halting problem was neat, a computability theory that uses a description of a computer program and input to determine whether a program will terminate or continue indefinitely. It’s very neat to see what you can do with a small, pretty piece of code. I like beautiful programs, and this is, at its heart, one of the prettiest programs that I know of.
What else do you teach for Khoury College, at what level?
So far, I have taught a decent spread of courses. I’ve taught the 4400 and 5400 programming languages course, the latter of which is a graduate-level course. 2510 and 4500, those are Fundamentals II and Object-Oriented Design, both undergraduate courses. 2800, the Logic and Computation course, that’s also an undergraduate class. In the past, I have taught CS4500: Software Development.
Besides your work at Khoury, what else do you do professionally?
Let’s see. I run several workshops related to the languages in which I work. I’m now a steering-committee member for the miniKanren workshop. I had the opportunity to help review with a couple different conferences and journals proceedings. I have also had the opportunity to work with and mentor a couple of different undergraduate students at various stages in their progression towards graduate school.
I do participate in the Programming Research Laboratory (PRL) research here at Khoury College. About a month from now, I am giving an invited talk to a school in Singapore. In those kinds of things, I try and work with other colleagues and see if I can solve some open, nagging problems, the kind of things that puzzle you in the shower and keep you up at night.
What topics in computer science interests you? Do you have any specific problems or applications that you’re particularly passionate about?
Fundamental foundational work and the mathematics of computation. I’m not particularly interested in vagaries of how x86 happens to work, but much more interested in the ideas of things that are universal to computation and less about the things that are how we happened to execute it.
I find that the best questions, or my favorite problems, are ones that emerge naturally. I so love teaching my programming languages course. Very often, my research questions emerge out of things that come up in lecture or preparing lecture. Being able to reintroduce the things that I’ve worked on in a way that makes sense to a clever undergraduate student with a little bit of background means I understand it well. So that cross pollination is really important to my progression as a scholar.
What’s it like teaching at the Boston campus and living in the Boston area?
In the time that I’ve been here on and off, I’ve been really excited to live in around the Boston area. I love being in a city, I love being in a metro area. It’s great having public transit. It’s terrific being surrounded by so many opportunities broadly educational—not just invited talks, but also museums and theatre shows. A place that’s so deeply steeped in history… I was a history major as an undergraduate. It’s also wonderful being a scholar in a city with so many scholars and being interested in education in a place where so much education is happening and where so many people are also in the same topics. There are very few places I can imagine that would have so many people in so many different areas working on similar kinds of goals.
What’s a fun fact about you, that your students might not know?
I really enjoy Salsa dancing, specifically Rueda. For a while I was going out dancing Salsa or Bachata six nights a week.
For more information on Relational and Constraint Programming taught by Professor Hemann, check out his course website here.
A believer of the “cross pollination” between his teaching and research, Dr. Jason Hemann is a Khoury College lecturer (Boston), teaching courses in fundamentals, programming languages, and logic and computation. This year during the 2020-2021 intersession, he taught a new course, Relation and Constraint Programs, on “some of the most fascinating stuff” he knows about. He spoke to Khoury News about the class, his research interests, love for Boston’s education vibe, and salsa dancing.
Tell us about your intersession class, what are you covering?
I’m describing some uses and implementations of relational and constraint programming, a different style of programming that I think most people in Khoury will have seen in their courses so far—specifically, miniKanren, a small language/library for relational/logic/constraint logic programming that’s implemented in at least 50 host languages. Since there aren’t any prerequisites for the course and we had students join from all across the university, we started maybe a bit further back than most Khoury students would have expected. I hope that, by being able to go narrow, we can get further than even the students who have had the most relevant experience until this point would have been able.
Why did you choose this topic?
This is an area that was related to my dissertation work and my research area. I thought it would be a good way to get to talk about some of the material that I find especially interesting. It’s an area where I’m especially knowledgeable and especially qualified to teach students about something that’s new that they probably wouldn’t have learned in curriculum otherwise and wouldn’t have seen anywhere else. And it would also be a way to introduce people who are interested in research to what I’ve been working on and see if they want to get involved. I also think it’s the some of the most fascinating stuff I know about. Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.
What stood out about it to you, and why is it important for students to learn about?
We’re able to discuss several different topics in one, because this is situated in another couple of important discussions. It’s important to know how to describe your data to state a template, to be able to have tests for all this usual information that we know. But also, because we’re discussing special purpose languages, we are able to discuss the importance of building custom languages for certain problems. In and of itself, it’s a very important technique and something that the researchers at Khoury College are heavily involved in working on. So often, the right tool for the job is the one that you custom build for it.
What got you interested in this topic?
It came out of my undergraduate coursework on programming languages research and background interest in logic generally. In my undergraduate work, I had a long interest in the intersection of and cross communication between logic and computer science, and this definitely fits in that space. A lot of people I know got into computer science because they want to make video games. I thought that the Halting problem was neat, a computability theory that uses a description of a computer program and input to determine whether a program will terminate or continue indefinitely. It’s very neat to see what you can do with a small, pretty piece of code. I like beautiful programs, and this is, at its heart, one of the prettiest programs that I know of.
What else do you teach for Khoury College, at what level?
So far, I have taught a decent spread of courses. I’ve taught the 4400 and 5400 programming languages course, the latter of which is a graduate-level course. 2510 and 4500, those are Fundamentals II and Object-Oriented Design, both undergraduate courses. 2800, the Logic and Computation course, that’s also an undergraduate class. In the past, I have taught CS4500: Software Development.
Besides your work at Khoury, what else do you do professionally?
Let’s see. I run several workshops related to the languages in which I work. I’m now a steering-committee member for the miniKanren workshop. I had the opportunity to help review with a couple different conferences and journals proceedings. I have also had the opportunity to work with and mentor a couple of different undergraduate students at various stages in their progression towards graduate school.
I do participate in the Programming Research Laboratory (PRL) research here at Khoury College. About a month from now, I am giving an invited talk to a school in Singapore. In those kinds of things, I try and work with other colleagues and see if I can solve some open, nagging problems, the kind of things that puzzle you in the shower and keep you up at night.
What topics in computer science interests you? Do you have any specific problems or applications that you’re particularly passionate about?
Fundamental foundational work and the mathematics of computation. I’m not particularly interested in vagaries of how x86 happens to work, but much more interested in the ideas of things that are universal to computation and less about the things that are how we happened to execute it.
I find that the best questions, or my favorite problems, are ones that emerge naturally. I so love teaching my programming languages course. Very often, my research questions emerge out of things that come up in lecture or preparing lecture. Being able to reintroduce the things that I’ve worked on in a way that makes sense to a clever undergraduate student with a little bit of background means I understand it well. So that cross pollination is really important to my progression as a scholar.
What’s it like teaching at the Boston campus and living in the Boston area?
In the time that I’ve been here on and off, I’ve been really excited to live in around the Boston area. I love being in a city, I love being in a metro area. It’s great having public transit. It’s terrific being surrounded by so many opportunities broadly educational—not just invited talks, but also museums and theatre shows. A place that’s so deeply steeped in history… I was a history major as an undergraduate. It’s also wonderful being a scholar in a city with so many scholars and being interested in education in a place where so much education is happening and where so many people are also in the same topics. There are very few places I can imagine that would have so many people in so many different areas working on similar kinds of goals.
What’s a fun fact about you, that your students might not know?
I really enjoy Salsa dancing, specifically Rueda. For a while I was going out dancing Salsa or Bachata six nights a week.
For more information on Relational and Constraint Programming taught by Professor Hemann, check out his course website here.
A believer of the “cross pollination” between his teaching and research, Dr. Jason Hemann is a Khoury College lecturer (Boston), teaching courses in fundamentals, programming languages, and logic and computation. This year during the 2020-2021 intersession, he taught a new course, Relation and Constraint Programs, on “some of the most fascinating stuff” he knows about. He spoke to Khoury News about the class, his research interests, love for Boston’s education vibe, and salsa dancing.
Tell us about your intersession class, what are you covering?
I’m describing some uses and implementations of relational and constraint programming, a different style of programming that I think most people in Khoury will have seen in their courses so far—specifically, miniKanren, a small language/library for relational/logic/constraint logic programming that’s implemented in at least 50 host languages. Since there aren’t any prerequisites for the course and we had students join from all across the university, we started maybe a bit further back than most Khoury students would have expected. I hope that, by being able to go narrow, we can get further than even the students who have had the most relevant experience until this point would have been able.
Why did you choose this topic?
This is an area that was related to my dissertation work and my research area. I thought it would be a good way to get to talk about some of the material that I find especially interesting. It’s an area where I’m especially knowledgeable and especially qualified to teach students about something that’s new that they probably wouldn’t have learned in curriculum otherwise and wouldn’t have seen anywhere else. And it would also be a way to introduce people who are interested in research to what I’ve been working on and see if they want to get involved. I also think it’s the some of the most fascinating stuff I know about. Relational and constraint programming is an example of something cutting edge—which is the kind of thing I hope students enjoy getting out of being at Northeastern in particular.
What stood out about it to you, and why is it important for students to learn about?
We’re able to discuss several different topics in one, because this is situated in another couple of important discussions. It’s important to know how to describe your data to state a template, to be able to have tests for all this usual information that we know. But also, because we’re discussing special purpose languages, we are able to discuss the importance of building custom languages for certain problems. In and of itself, it’s a very important technique and something that the researchers at Khoury College are heavily involved in working on. So often, the right tool for the job is the one that you custom build for it.
What got you interested in this topic?
It came out of my undergraduate coursework on programming languages research and background interest in logic generally. In my undergraduate work, I had a long interest in the intersection of and cross communication between logic and computer science, and this definitely fits in that space. A lot of people I know got into computer science because they want to make video games. I thought that the Halting problem was neat, a computability theory that uses a description of a computer program and input to determine whether a program will terminate or continue indefinitely. It’s very neat to see what you can do with a small, pretty piece of code. I like beautiful programs, and this is, at its heart, one of the prettiest programs that I know of.
What else do you teach for Khoury College, at what level?
So far, I have taught a decent spread of courses. I’ve taught the 4400 and 5400 programming languages course, the latter of which is a graduate-level course. 2510 and 4500, those are Fundamentals II and Object-Oriented Design, both undergraduate courses. 2800, the Logic and Computation course, that’s also an undergraduate class. In the past, I have taught CS4500: Software Development.
Besides your work at Khoury, what else do you do professionally?
Let’s see. I run several workshops related to the languages in which I work. I’m now a steering-committee member for the miniKanren workshop. I had the opportunity to help review with a couple different conferences and journals proceedings. I have also had the opportunity to work with and mentor a couple of different undergraduate students at various stages in their progression towards graduate school.
I do participate in the Programming Research Laboratory (PRL) research here at Khoury College. About a month from now, I am giving an invited talk to a school in Singapore. In those kinds of things, I try and work with other colleagues and see if I can solve some open, nagging problems, the kind of things that puzzle you in the shower and keep you up at night.
What topics in computer science interests you? Do you have any specific problems or applications that you’re particularly passionate about?
Fundamental foundational work and the mathematics of computation. I’m not particularly interested in vagaries of how x86 happens to work, but much more interested in the ideas of things that are universal to computation and less about the things that are how we happened to execute it.
I find that the best questions, or my favorite problems, are ones that emerge naturally. I so love teaching my programming languages course. Very often, my research questions emerge out of things that come up in lecture or preparing lecture. Being able to reintroduce the things that I’ve worked on in a way that makes sense to a clever undergraduate student with a little bit of background means I understand it well. So that cross pollination is really important to my progression as a scholar.
What’s it like teaching at the Boston campus and living in the Boston area?
In the time that I’ve been here on and off, I’ve been really excited to live in around the Boston area. I love being in a city, I love being in a metro area. It’s great having public transit. It’s terrific being surrounded by so many opportunities broadly educational—not just invited talks, but also museums and theatre shows. A place that’s so deeply steeped in history… I was a history major as an undergraduate. It’s also wonderful being a scholar in a city with so many scholars and being interested in education in a place where so much education is happening and where so many people are also in the same topics. There are very few places I can imagine that would have so many people in so many different areas working on similar kinds of goals.
What’s a fun fact about you, that your students might not know?
I really enjoy Salsa dancing, specifically Rueda. For a while I was going out dancing Salsa or Bachata six nights a week.
For more information on Relational and Constraint Programming taught by Professor Hemann, check out his course website here.