This is the story of a student who went to new lengths to include computer science in her education, or a professor who was eager to try different instructional methods, or a field that rewards continuous investigation into the ways that computation can benefit any type of career. Or maybe all three at once.
One Experiment Suggested Another
Lee-Sien Kao, an Economics concentrator who graduated last year, first heard about CSCI 0931 Introduction to Computation for the Humanities and Social Sciences in the fall of her junior year. “I was really interested,” she says, “because I’d heard that this was a class geared to what I’d use computer science for, but the timing of it interfered with classes I needed to take for my concentration. I was also concerned about how intense CS classes are rumored to be. I didn’t know if I could commit the time.”
She managed to take the course a year later and was delighted with how “open-ended” it was. “I felt like the philosophy of the class was based on the potential of computing, that it was made for helping people take advantage of the endless opportunities that are out there.” Without knowing it, she’s almost echoing a favorite quotation from Walt Kelly that Professor John “Spike” Hughes, the course’s instructor, lists on his web site: “We are confronted with insurmountable opportunities.”
Before long, the opportunities became experiments: Lee-Sien and her classmates were using Google Sheets and then Python to play with data from all sorts of sources. As an early project, the class analyzed where various senators fell on the conservative/liberal spectrum based on their word choice. “Looking at the data like that was social science,” says Lee-Sien. “I didn’t know a CS course could teach you that.” Up next? Determining whether there’s a correlation between people searching for information about a country on the web and then traveling to it.
Something else was happening, too: the results of one experiment suggested another, demonstrating the need for further study. Fascinated by a hangman project written in Python, Lee-Sien decided to go a step further and run a function that tallied overused words in the thesis that she was writing. “I had to choose new words to replace ‘health’ so many times!” she laughs.
“And the assignments always added a new element,” she says. “[Spike and the TAs] must have put a lot of time into them. They took you beyond the class: you really learned from the homework. There should be more classes like this, because it’s the best way to learn a skill. Students like me, who aren’t CS concentrators, need this kind of class, which doesn’t go deep into abstractions but gives them tools.”
She also credits Spike: “He’s so interested in people doing their best. Somehow, his door would always be open when a project was about to be due, and I’d spend six hours in or around his office, asking questions and rethinking what I was doing. It was really helpful.”
Starting with her very first impulse to take a CS course, and continuing with her choice of projects for CSCI 0931, and again with future career considerations, Lee-Sien faced multiple sets of decisions that in many ways paralleled each other. “From the beginning, I was trying to figure out what path I wanted to take,” she says, “which skills I hadn’t built up yet, and which skills would be useful no matter which direction I went in. There are many pros to being able to pursue your own interests, but the freedom of having so many choices makes the openness of things like studying at Brown and designing your own projects really challenging. With so many possibilities, where do I begin?”
Spike explains the challenges of insurmountable opportunities with a simple analogy: “It’s very easy to say that you want to do something for your first project, but not always easy for students to understand if it’s something that they can answer with three minutes of web searching or whether it would make a good PhD thesis! 931 addresses this tyranny of choice through lots of student/staff interaction -- every project proposal is vetted and refined.”
In the spring of her last semester, Lee-Sien wanted to take another CS class, but knew that it was going to require a sizable time commitment to make it worthwhile. In the end, her thesis and a job search took precedence. “But I was thinking what a waste it would be if I didn’t go on with computer science,” she says. So she contacted John at the end of the semester, asking for ways to continue her CS education after she graduated.
We ask Spike: is this atypical? Absolutely. Was it something about Lee-Sien herself that pushed her to keep going? He remembers, “Lee-Sien was typical in the sense that she had a modest level of preparation for the course: work with spreadsheets, but not programing. She was exceptional in her with-it-ness for the class, following well and always asking questions about the next topic: ‘What about this?’ Well, just wait five minutes and you’ll see!”
He recommended some books on computational principles, web resources, a few relevant online courses...and then had another idea. What about auditing CSCI 0170 CS: An Integrated Introduction remotely, learning the material without credit, and balancing it with her new workload as a health policy research fellow at Dartmouth College?
The Perfect [Virtual] Student
“I’d never done an online course before,” Spike says, “but I knew if I tried this, I had pretty much the perfect student, so I had some confidence. But I knew that certain student/TA interactions wouldn’t be possible and that I’d have to persuade the TAs, who are naturally conservative, to help out: they want the course like they had it.”
“I looked at it and thought I could do it,” Lee-Sien says, “so I emailed Spike before the start of the semester and he talked to the TAs.” Interestingly, most of the resources she used were available to all students: lecture notes, slides, a guide on how to work from and access Brown CS resources remotely. At design checks, when TAs would normally ask probing questions in person, Lee-Sien answered via email. “It was super-awesome to have it all online. The only limit was that I couldn’t drop in for office hours. I was sad about that, but the rest was great. The online discussion board was really useful.”
It wasn’t always easy. “Getting lecture content online wasn’t difficult,” Spike says. “There were a few technical glitches at first, but nothing that was really a killer.” Although the workload varied from week to week, labs and assignments generally took longer than Lee-Sien had expected. At one point, she sent what she calls “a very long email” to Spike and the TAs to say that she’d gotten lost. Before long, they had put her back on track.
Seeing Through Complexity
But all of the work was interesting, she says, and some of it was very unexpected: “I didn’t know we’d learn so much about not just implementation, writing code, but on the theory behind why we do what we do: how an interpreter works, the steps it takes to give you your output. There’s no magic. You have to figure out yourself why you didn’t get the results you wanted.”
Spike makes an analogy to an earlier era of computing: “In the 1980s, with your Apple II, you could know everything: hit some buttons, see a result, and know entirely how you got it. That’s changed. In 0931, students use Python, but it’s still mysterious to a certain degree. Now, in 0170, with a Python interpreter, you can see through at least one layer of the complexity.”
At the end? Success. “Lee-Sien completely rocked the course,” says Spike. “It makes you consider what was possible from a distance, with only an occasional paragraph or two of email from the TAs and me.”
Of course, a future where even a modest fraction of a Brown CS course’s students are virtual isn’t exactly around the corner. “This might work for five students per class,” says Spike. “Working with Lee-Sien remotely took about the same time as with an average student who was present in the classroom, but this isn’t really scalable. An amazing student here in Providence uses minimal resources, and we found that an amazing remote student can use an average amount of resources. But a really weak student off-campus? Disaster.”
But that doesn’t shut the door on the potential of virtual participation in academia, particularly in continuing education. “Maybe to say that it’s useful for continuing education in general is too broad,” Spike notes, “but the business of becoming computer literate seems really important to me. For one, it can help bring women into computer science. My mother and sister both learned a few computer skills, but not as much as I think they wish they did.”
Changing People’s Thinking
Tinkering with the delivery of the course changed Spike’s view of CSCI 0170 in two ways. “On the mechanical end,” he says, “I’ve been thinking about solo assignments versus pair programming. I’m not sure I’ve arrived at conclusions yet. But on the curriculum end, this experiment reinforced the idea that this course might be more than just a feeder into a CS degree. It could be your last or second-to-last CS course.”
Now immersed in health policy research, in the world of surveys and statistical regression models and evaluating the effectiveness of accountable care organizations, what’s on Lee-Sien’s mind as she looks back?
“I don’t want to forget it all!” she says. “The tools I learned apply to what I’m doing now. They can all help. I don’t think I’m consciously aware of using what I learned in 0170 for things like fixing syntax errors in Stata, but I think the main direct impact has been on the efficiency of the code I'm writing: finding better ways to accomplish the same things. We learned a way of thinking that a lot of us hadn’t encountered. It was such a great experience.”
“In the end,” Spike says, “CSCI 0170 teaches a methodical way of interacting with complex problems. Ways of thinking get changed by this course...And this is the sort of thing that happens when you teach at Brown: you can ask, ‘Do any of you graduating students want to spend hours and hours in coursework next year and not get any credit?’ and someone’ll say, ‘Sure!’ I’m really glad Lee-Sien did this. I don’t have any plans to repeat it, but it gives me the confidence to say to the next person who asks, ‘Sure...we can try that. Why not? It's worked before.’”