To all you majors in history, sociology, literature, economics, Africana studies, and sundry other subjects — welcome to Computer Science 101.
The Computer Science Department has redesigned its introductory course, formerly aimed at computer science majors, to give students from across the disciplines a basic understanding of programming and how computers can be used in their fields. The new approach reflects Hamilton’s commitment to provide all its students with the skills to communicate and work effectively in a digital world.
Hamilton professors at the forefront of their fields in a range of disciplines are using computing to do things they couldn’t do before, said Professor of Computer Science Mark Bailey, who developed the new course and chairs the department. “So what I want to do is make it possible for students that are going to go off into these disciplines to be those people on the forefront, right? The people who aren't scared to use computers and know something about how they work, so that they could see those places within their discipline that computing might be a helpful tool,” Bailey explained.
He said the revamped intro course is still rigorous enough to meet the needs of computer science majors, with some of the material it used to cover shifted into a subsequent course.
The new course doubles the required lab time and is built around lectures and six open-ended projects. For the projects and labs Bailey turned to students Matthew Dioguardi, Maddy LaPoint, and Gwen Urbanczyk, who are junior computer science majors and teaching assistants.
LaPoint took on the work in part because she has friends in other majors who wish they had some of her computer science skills, and she wishes they did, too. The team’s main goal for the projects, LaPoint said, was to keep them open-ended to foster student creativity.
Non-computer science students should come away from the course knowing enough of the programming language Python to apply it elsewhere, Dioguardi said. “For social sciences, or STEM courses, it's definitely very applicable because you're running spreadsheets and you could just take this class and learn how to write a quick piece of code that will do that all for you. Or if you have to analyze, essentially, any set of data,” he said.
To develop the new course, team members needed to approach computer science very differently than they do in the courses they’ve taken.
“At first, it was definitely hard because this is a very different computer science course than any I've ever taken. It’s much more open-ended,” said Urbanczyk. “A lot of computer science courses I take are very much, ‘here's a problem — solve it. Whereas this one is, ‘here is a tool or a set of tools — do something interesting with it.’”
Which project stands out to her? The one that covers “web scraping,” which is taking code off a website to collect its data. Her example for students was going to the IMDB website, gathering data about a thousand movies and using it to find movies she might like based on an actor in the cast.
“I think that's really interesting, because that's a very practical kind of thing. I could definitely see someone writing a small web-scraping program just to automate something,” she said.
By the end of the summer, the students had built an impressive new course. “They amazed me,” Bailey said. “I thought they would get two-thirds of the projects done and maybe half of the labs. They did all of the projects and all of the labs. They also wrote a bunch of quiz questions that we will be using and some support documents for each of the projects.”