Transforming Computer Science Education
Capitalizing on the rapid growth of computer science, Northwestern CS teaching faculty are reimagining curricula while strengthening the department’s inclusive community.
In the interconnected world of big data, it’s no secret the field of computer science is booming.
At Northwestern, the number of computer science majors has grown more than 600 percent since 2011, making CS the third most popular major at the University.
But basic computer science knowledge is also becoming more essential to fields outside of tech. Currently, more than 50 percent of all Northwestern undergraduates take a computer science class before they graduate—a threefold increase since 2010.
“Computer science education is more and more important,” says Huiling Hu, assistant professor of instruction at Northwestern Engineering. “Many areas and jobs now require basic skills in computational thinking, including writing programs, processing and understanding data, conducting efficient simulations, and making intensive calculations.”
Over the past several years, the Department of Computer Science has responded to this growth by adding faculty and staff and by taking strides to develop new courses based on emerging ideas and student demand, all while fostering a broad community.
“Our ongoing challenge is determining the best way to cater to students with different life goals and different interests in what they want out of a CS degree,” says Samir Khuller, the inaugural Peter and Adrienne Barris Chair of Computer Science. “One CS student plans to get a PhD and research compilers and computer architecture. Another has a plan to work as a consultant on Wall Street. The goals of those two students and what training they need are different.”
Meeting the needs of students with divergent goals results in a more inclusive environment, one that meets students where they are and works to create cohesiveness within a seemingly disparate student population.
“As we look at growth in undergraduate enrollment, the most important thing for us is to continue our focus on community, to continue to make this a place where people feel support and belonging,” says Sara Owsley Sood, Chookaszian Family Teaching Professor and associate chair for undergraduate education.
Leveling the Playing Field
The first stop for many students is enrolling in the Northwestern CS introductory course sequence. Historically, the mandatory sequence began with Fundamentals of Computer Programming I (CS 111) followed directly by Fundamentals of Computer Programming II (CS 211).
In the past few years, however, faculty have found that students who had already learned to program in high school had a big advantage in this sequence. In fall 2020, Sood launched Fundamentals of Computer Programming 1.5 to serve as a bridge between the first two courses.
“We found that the gap between 111 and 211 was a difficult leap for people who had not programmed before,” Sood says, “and that really hurt us in terms of serving students who didn’t program in high school. This new course helps the transition for students starting CS studies their first year of college.”
The department also recognized that non-CS majors might need a different entry point altogether. Sarah Van Wart, assistant professor of instruction, revamped Intro to Computer Programming as a beginning course for non-majors with no prior programming knowledge.
“The difference between the CS majors and non-majors is a history of technical experience with code,” Van Wart says. “Some students have been programming since elementary or middle school, some are just starting. Some students have a humanities and social science focus, some are STEM all the way. It’s very hard to pin down the typical student, and that’s great.”
The course uses familiar applications like art and music to engage students in the creative problem-solving, such as producing animation, that programming can support. It also emphasizes the idea of computational thinking, the process of formulating and solving problems by breaking them down into simple steps.
“Non-major students usually have not yet established a computational way of thinking,” Hu says. “I find it essential to reinforce computational thinking in non-major classes. I also spend more time ensuring that students can get their questions answered quickly.”
Other non-majors, including journalism and music students, regularly enroll in the Tools and Technology of the World Wide Web course Van Wart launched as an introduction to both computer programming and basic information design. Students practice building interfaces and work on projects relevant to their interests, including portfolios, interactive photo galleries, and infographics.
“Aside from offering the introductory classes to help students bring up their experience level, I think one of the best things we can do at the instructor level for the CS major classes is acknowledge that everyone comes from different backgrounds, everyone has a skill set they are bringing to the table, and everyone proceeds at a different pace,” says Sruti Bhagavatula, assistant professor of instruction. “We’re here to work with the students and figure out how to ensure everyone is learning effectively, and to give them the resources they need to continue.”
Interdisciplinary Course Offerings
Northwestern CS faculty have introduced several new courses in recent years to promote collaborations with other Northwestern schools and offer hands-on opportunities to explore the field’s expanding reach. These include:
Communicating Computer Science
Designed by Connor Bain, the course explores the cultural, practical, and policy-related roles of computer science communication throughout society. Students learn communications skills for building awareness of CS through public outreach, communicating research outcomes in both academic and non-academic settings, and informing policy makers of the cultural and legal significance of CS issues.
Generative Methods
Designed by Katherine Compton as an exploration of the intersection of programming and art, this course exposes students to modern applications of creative coding. One collaboration with theater design students in the School of Communication led to the creation of virtual costumes that overlay graphic masks on video and track body and facial movements.
Inclusive Making
Developed by Marcelo Worsley, the course explores making— a form of computing that connects digital and physical technologies—as a practice that promotes broader participation in digital fabrication. Students from computer science, communication, learning sciences, and design study maker literature and technologies while working together to build their own tools to solve an accessibility problem in the maker space.
Innovation Lab: Building Technologies for the Law
Multidisciplinary teams of Northwestern students, faculty, and professionals explore the innovation process in the legal profession—understanding stakeholders’ needs, brainstorming ideas, and prototyping and testing them. Designed by Kristian Hammond and Daniel W. Linna Jr., the course facilitates team-based, cooperative lab experiences for students who want to create new tools, stories, story forms, and physical devices at the intersection of computer science and law.
Developing Advanced Interdisciplinary Courses
Upper-level courses have also shifted, thanks to an expanding faculty. In 2016, the University announced a growth initiative committed to adding 10 new faculty appointments in core computer science areas and 10 collaborative CS+X appointments jointly with units outside the McCormick School of Engineering. Since then, Northwestern CS has added 16 new tenure-track faculty members and plans to hire nine additional faculty in the coming years.
During this time, the department has also added 10 fully integrated teaching-track faculty, all of whom hold doctorate degrees, advise undergraduate research projects, and pursue their own research specialties. The bolstered breadth of research interests among the expanded faculty team combined with their energy and passion has led to a host of new advanced, interdisciplinary courses. A common theme among several new classes is an emphasis on the social implications of technology.
In response to a specific request for an ethics course, Van Wart joined forces with Sepehr Vakil, assistant professor of learning sciences at the Northwestern School of Education and Social Policy, to launch Computing, Ethics, and Society.
The interactive course examines computing through the lens of social theories. Students assess how computing technologies both benefit and harm lives individually, culturally, and politically and examine critically the values, ideologies, and contexts through which computing technologies emerge.
Composed primarily of undergraduate students majoring in computer science, learning sciences, sociology, or legal studies, the course also draws graduate students, including those in the Master of Science in Artificial Intelligence program.
“Students from different disciplines with different backgrounds and experiences bring valuable insights to class around how technology and society mutually shape one another,” Van Wart says.
Artificial Intelligence and Machine Learning
The rapidly expanding field of artificial intelligence (AI) also draws students from across disciplines. Mohammed Alam, assistant professor of instruction and deputy director of the Master of Science in Artificial Intelligence program, now teaches the first course he took as a graduate student in the department: Intro to Artificial Intelligence.
Back then, there were 15 or so students in his class. Now, he caps the course at 100.
With the expansion in class size and the lightning-speed progression and evolution of AI, Alam focuses on delivering course material in an absorbable manner so students—who come from engineering disciplines as well as behavioral sciences, learning sciences, linguistics, psychology, and cognitive science—can retain the information and build on the core techniques and applications in subsequent courses.
His teaching style gravitates toward the philosophical aspects of AI, with an intuitive approach to computer science. In spring 2021, he launched a course, AI Perspectives: Symbolic Reasoning to Deep Learning, devoted to creating space for unstructured discussion and interdisciplinary perspectives.
He recalls, “In the weekly writing assignment, a student reflected, ‘I thought I had this intelligence thing figured out, and now I am completely confused.’ And that is exactly what I want—for students to break free of all their preconceived notions about intelligence and artificial intelligence, then build up their knowledge again.”
Students Building Community
Creating a supportive, inclusive community goes beyond offering new courses. Northwestern CS students also connect and build relationships through student groups and the peer mentor program.
Launched in 2015 by Professor Ian Horswill, the Northwestern CS undergraduate peer mentor program helps ensure that students representing a range of computing backgrounds receive individual attention and real-time feedback. Peer mentors aid students in courses at all levels. During regular “office hours,” they serve as positive role models, encouraging progress, answering questions, and providing instruction on course material.
Each quarter, Northwestern CS hires more than 150 undergraduates for the program. “Peer mentors are well-versed in the subject material and are familiar with the common errors students make because they went through the same themselves,” says Abigail Coneeny, a fourth-year computer science student and mentor.
“Peer mentors have helped me in my CS classes more times than I can count, and I’m glad to give back,” says Chase Duvall, a mentor pursuing a combined bachelor of arts and master of science in computer science degree. “One-on-one support from other undergraduates who understand the student experience really makes a difference. Whether in office hours, on class forums, or in tutorial sessions, it’s always gratifying to help someone have an aha moment.”
Outside of the classroom, students have created several CS-focused student groups, including Women in Computing, CodeID: Code for Inclusion and Diversity, and Code‘n’Color, a doctoral student support group for Black, Indigenous, and other people of color in computing and coding-related disciplines.
Van Wart, a faculty adviser for student groups, says they provide support, friendship, and an encouraging view of a CS future, adding, “Students have a vision of trying to build the world they want to live in. It makes me very hopeful.”
Photography by Jason Brown and Rob Hart