What comes to mind when you think of the social-news site reddit? Perhaps the topic-specific boards devoted to cat GIFs? Bernie Bros raving about their favorite presidential candidate? Gaming? Whatever you're thinking, chances are good it's not evolutionary robotics.
But reddit is where Bijay Koirala, 25, stumbled on an evolutionary robotics class called Ludobots in March 2015. The discovery ultimately brought him more than 7,000 miles from his home in Nepal to the University of Vermont in Burlington.
Evolutionary robotics takes the concept of guided evolution — for example, selective breeding of dogs from wolves, or corn from the wild grass teosinte — and applies it to robots. Rather than build hundreds of machines by hand, researchers virtually evolve algorithms toward a goal.
Josh Bongard, an associate professor in UVM's Department of Computer Science, said the aim is to move the field of robotics forward — from robots that can perform physical tasks to robots that can actually think.
Bongard runs UVM's Morphology, Evolution & Cognition Lab. He developed Ludobots based on an introductory class he teaches on campus. When the course went live on reddit in 2014, it became the only MOOC (massive open online course) run entirely on that platform — a distinction it still has.
So far, Bongard is also the only faculty member in UVM's College of Engineering and Mathematical Sciences running a MOOC, according to Luis Garcia, dean of that college.
"Josh's class is really at the forefront of how to engage a broader audience and have impact well beyond the classroom," Garcia said. "He's really at the bleeding edge of this technology and his own research."
In spring 2015, Koirala was working full time as a software engineer in Kathmandu and looking for a way to go to graduate school. He had an undergraduate degree in software engineering from his hometown's Pokhara University and had been admitted to schools in the U.S., Switzerland and Thailand — including UVM. But he lacked the funding he needed to enroll. Koirala discovered a link to Ludobots while looking through information on UVM's computer science department.
The first course assignment he found was a simple one, the "connect-the-dots" bot: Draw a shape on a grid of dots and hit "go." That shape drops onto a plane and begins to move. On the simulation's first run, it rarely moves far, mostly wriggling and writhing in place. Hit "go" again, though, and the robot tries something new. Maybe this time it inches away from the starting dot. The more times you run the simulation, the better the creature gets at leaving its starting point.
- A connect-the-dots bot
Koirala was intrigued.
"[It] was very easy. I go, 'OK, this is fun. Let's get started,'" he recalled during a recent interview at UVM.
That's part of the design of the course, Bongard explained. Since Ludobots tackles complex concepts, he wanted to kick it off with a simple, accessible, fun assignment. Assignments get progressively more difficult, requiring students to write code, if they can. (There's a separate setup for those not equipped with coding skills.)
It doesn't make sense to push students into the theoretical arena of evolutionary robotics without first having them fiddle with tangible examples, Bongard suggested. Hence the name of the course: Ludo is Latin for "I play." "A child isn't born reading books and starting from the theoretical, intellectual side," Bongard said. "Humans and animals grab whatever is close by and see how to break it, how to use it, what connects to what."
The reddit-based course is structured around a core of 10 assignments, but any student who wants to explore a concept further can build a new branch and add a line of investigation. That ability to evolve the course was part of the appeal of using reddit, Bongard said.
He created the first iteration of the course in 2014, on a website he built with the help of three UVM undergrads and a Burlington High School student. In the end, though, that site required way too much maintenance.
"It was an unmitigated disaster," Bongard admitted.
So they moved Ludobots to reddit. The platform is secured against hacking and rigorously maintained, so the prof and his crew don't have to manage security.
The switch also allowed them to devise a new way to keep all the site's resources in order. Fittingly, bots perform many of the housekeeping duties at Ludobots, making sure assignment submissions and resource additions show up in the right places.
In the Ludobots subreddit, all of the coursework is structured in a wiki (like Wikipedia, but for learning evolutionary robotics). That means anyone with a reddit account can supplement the course or edit its content. Besides adding projects, students can add resources they've found on the internet to any of the project pages or ask questions about topics when they get stuck. That's where reddit's built-in social structure comes in handy.
Once the course had an online home, Bongard restructured his on-campus introductory class. Now those students submit their assignments on reddit, posing any questions there and contributing links to resources.
On a recent Thursday morning, students in the real-life class presented their final projects, describing what they had developed their robots to do — from kicking balls into a hole to climbing stairs. One student noted that his robot, which he'd been trying to evolve to walk on two legs, kept cheating; it apparently had realized it was easier to drag its torso across the ground than to stand up.
The presentations represented just half of the students' final projects. To complete those projects, they would need to add them to the Ludobots reddit course, explaining the steps and their research question to future students. Bongard's integration of the virtual and real-life classrooms keeps the subreddit busy, especially during the spring semester when the IRL class is offered. That integration also builds lists of past students who are potential resources for future students, whether on campus or online.
"I'm happy to respond to students, but it's even better when a new student hears from an existing student or an alumna or alumnus of the course," Bongard said. "It's great that there is that support structure ... It's expected in reddit."
Bongard is still a regular presence in the course pages — he often comments on user submissions, offering encouragement. That's how Bongard and Koirala began talking last spring, and they ended up emailing back and forth as Koirala worked through the Ludobots assignments.
Though the class quickly delves into more difficult territory after the first connect-the-dots bot simulation, Koirala said he was hooked.
It took him several days to complete each assignment, since he juggled the work during scant free time between full-and part-time software-development jobs. But he kept going.
"The good thing about software engineering is that, as challenging as it gets, you get more interested in it," Koirala said.
Bongard said his Nepali student's work impressed him, noting that Koirala moved through the course at a steady pace.
That's unusual. Of some 10,000 visits the course received last year, just 690 reddit users subscribed. Of those, Bongard said, the large majority haven't submitted any work or have completed just one or two assignments. That's typical for a MOOC: Because the self-paced online classes don't have deadlines or the threat of bad grades, their attrition rates are high.
The reddit course doesn't perfectly mimic Bongard's on-campus class. Before this semester, only the assignments and minimal documentation lived on reddit, so students couldn't get the accompanying lectures without actually enrolling in — and paying for — the course at UVM. As of this spring semester, all of Bongard's course lectures are up on YouTube.
But there are still plenty of resources that students taking the free, web-based course don't get.
"The UVM students get access to me, my lab, my grad students," explained Bongard. "It's one-on-one instruction that you can't get on the web."
In spring 2015, Koirala was still plugging along and submitting new assignments regularly. Then, that April, a 7.8 magnitude earthquake hit Nepal, killing nearly 9,000 people and injuring many more. In Kathmandu, Koirala was safe but couldn't return to his workplace on the 13th floor of an office building. Without electricity or internet access, and wary of aftershocks, he and several friends found an unused office and tried to keep themselves occupied.
"Everyone was scared, sitting outside the house. I remember I was sitting inside, trying to work on Ludobots ... and if it started shaking, I would run outside," Koirala said. "For three days it was a very difficult situation."
When Bongard heard about the earthquake, he reached out to make sure his long-distance student was safe.
"That was the main source of motivation for me," said Koirala. "I was glad to feel like someone cared."
As Kathmandu struggled to recover, Koirala found himself unable to return to his full-time job, so he decided to move back home to Pokhara. The city, some 100 miles northwest of Kathmandu, had been spared the worst of the earthquake's tremors and aftershocks. Once there, Koirala focused on finishing the core Ludobots assignments.
"It was kind of a puzzle; there were directions on how to solve it, but you had to solve it yourself," he recalled. "There were no rewards for solving it other than the satisfaction and the knowledge."
Bongard was impressed by Koirala's drive to complete an online course with no deadlines and limited resources. When the time came for computer science faculty to allot student funding for the following year, he knew who he wanted to attend UVM.
"I came to that meeting armed with Bijay's story and said, 'Look, this is the kind of student we want here,'" Bongard said. "'Bijay has wonderful grades, but, in addition, look at the tenacity of this student who managed to complete an online course in the midst of this terrible tragedy.'"
At that meeting, the faculty awarded Koirala a graduate teaching assistantship. He enrolled in fall 2015 and left his home country for the first time.
Now, in Vermont, Koirala is focused on fulfilling the core requirements for his master's in computer science — and on navigating life in a new country, speaking a language that's not his native tongue. In his classes this year, he developed an app that uses data on invertebrates in Vermont waterways to help researchers estimate river health. He also analyzed accident rates in New York City using traffic data.
This summer, Koirala will be a data-analyst intern at Vermont Energy Investment Corporation in Burlington. He'll finish up the required coursework for his degree next semester. After that, he hopes to do evolutionary robotics research in Bongard's Morphology, Evolution & Cognition Lab.
Recently, Koirala checked reddit and noticed he had a message from a student in Pakistan who needed help with one of the problems. Busy with grad-school work, Koirala hadn't checked Ludobots in months. But he wrote back to the student as soon as he saw the message.
After all, this was the class that had convinced him to attend UVM — and helped him get the support he needed to do so. True to the spirit of the course and its social platform, it was a way for him to give back.
"People look at UVM, and they see there's so much going on here, with courses like Ludobots," Koirala said. "It's the only reason why I'm here."
IMAGES COURTESY OF BIJAY KOIRALA