Computer Science 110: Breaking stereotypes and new ground

What do computers, program design, and social interaction have in common?

They’re part of a new course offered this fall at the UBC Computer Science Department that challenges the way Computer Science 110 is taught to first-year students. A specific goal of the course is to be more welcoming to female students and others who might not typically choose computer science.

“Computer science is not about people who work in windowless offices and eat bags of chips all day,” says Gregor Kizcales, UBC computer science professor and instructor for the new course. “It’s part of everything we do nowadays, and it is increasingly being recognized as a field that crosscuts intellectual and practical disciplines.”

The course is designed to be accessible to students with other majors such as physics, math, engineering, or music. Kiczales says CPSC 110 downplays details and focuses instead on the structure of design problems, which is good, he adds, because often students are turned off by the “nerds and details image of computer science.”

“The new course focuses on learning a simple programming language more quickly and better than a course that uses a more complex language such as Java,” says Kiczales. “Students of different academic backgrounds can more easily work with what they learned instead of shelving it and hoping to use it one day.”

CPSC 110 will use DrScheme, a simple programming environment that enables students to quickly master the mechanics of the programming language, so they can instead focus on the more important skills of program design. This approach means students can design interactive programs as early as the first lecture as it reduces the time students spend struggling with details of the language. It also helps students learn to distinguish the core concepts of all programming systems from the details of any one particular approach, and in that way prepares them for a lifetime of continuous learning of new computer languages and tools.

“We believe students who take the new course will be better prepared for a career in computer science or another discipline that relies on computation because the course will have a languages core to build on that lets them learn new languages such as Python, Perl, Ruby or JavaScript,” says Kiczales. The first lab will teach students how to execute a simple graphical animation. By the end of the semester, students will develop a distributed system much like the virtual worlds of The Sims or Second Life.

Breaking the stereotype of the lone programmer, CPSC 110 will incorporate pair programming, where two programmers work together at one computer station, one typing in code while the other checks the code, as it is entered. In addition to helping students learn better, pair programming fosters socialization and team problem-solving.

Anne Condon, UBC computer science professor, agrees that diversity of academic and other backgrounds should be reflected in computer science.

“Computer science is a field that is having a huge impact in our world,” says Condon. “To ensure that computer technologies are well designed and can have a broad positive impact on our society, students coming to computer science must manifest a greater diversity of backgrounds and skill sets.”

How will CPSC 110 draw more women to study computer science?

“Many women go through first-year computer science and don’t continue on,” says Condon. “With a new focus on design and understanding problems instead of getting caught in details, CPSC 110 will give them some computer science skills and concepts they can use for life long learning.”

Today women make up 22 per cent of undergraduate students enrolled in computer science at UBC. This is double the amount found at other Canadian universities. Condon says she thinks one of the reasons UBC’s figures are higher is because the department welcomes combined majors. At UBC, one third of students enrolled in the double or combined major are women.

Another reason could be an internal initiative such as Focus on Women in Computer Science, a UBC computer science departmental committee that helps to increase the participation of women in the field at all academic levels and create an academic environment where women can thrive.

“If a woman has an incredible experience taking a computer science course at the start of her academic career, then there’s a great chance she will continue on in computer science,” she says.