Content

A team of computer science educators at the Center for Parallel and Distributed Computing Curriculum Development and Educational Resources (CDER Center), including Manning College of Information and Computer Sciences (CICS) Professor Charles Weems and Associate Dean for Educational Programs and Teaching Neena Thota, has received a four-year, $1 million National Science Foundation (NSF) grant to help modernize introductory computer science education. 

Working with partners at the University of Texas at San Antonio, the University of Maryland, Louisiana State University, Tennessee Tech University, and Knox College, the team will develop new versions of the CS1, CS2, and Systems courses that incorporate parallel and distributed computing, big data, and AI. They then will evaluate the effectiveness of the courses in teaching those concepts by recruiting instructors to teach them and gather data that measures student learning. Grant recipients will provide in-person and virtual training to 200 faculty members from 60 institutions across the country, from community colleges to R1 universities. Participants will learn how to move beyond teaching through sequential, local-file computing models.  

The award builds on a $1 million NSF grant awarded in 2023 that supported efforts to align coursework with current computing practices and better prepare students for careers in the field. That grant focused on introducing parallel and distributed computing in first-and second-semester classes (CS1 and CS2). A collaborative process brought together six institutions that served as co-designers, adopters, and evaluators of the new classes. It recently culminated in the publication of an e-book and lesson guide for computer science educators, who can access the site for a range of resources for CS1 classes, from a lesson suggestion to a short module or lab, to a course-level infusion. The CS2 portion of the e-book will be posted soon. The learning tools have been classroom-tested and can be adapted to many circumstances and learning environments.  

The current project builds out more content, adding AI and big data to first- through third-semester classes (CS1, CS2, and Computing Systems). 

Both projects stem from an NSF-funded stakeholder study conducted by CDER that gathered input from employers, including representatives from national laboratories, government agencies, and industry. Those surveyed expressed concern that many computer science graduates lack the skills needed to succeed in today's computing environment.  

 The study found this skills gap affects critical sectors, such as national security, research and development, and cyberinfrastructure. “As an example,” the study notes, “to illustrate the scale of economic impact, we heard from employer stakeholders that it takes up to six months of training to onboard new computer science graduates so they can be productive. Based on data from the Bureau of Labor Statistics and the National Center for Education Statistics, even if only 20% of new graduates require this amount of training, modernizing the computing curricula would have an ancillary impact on the U.S. economy saving $880 billion per year.” 

CDER hopes to shrink that gap by developing updated and tested curricula for first and second year coursework that provides a foundation for computer science majors for subsequent, more in-depth classes and for their careers. 

“We may have a spiral learning cycle, and students may touch upon these concepts again as they go deeper in their electives, but this is where we should be starting,” said Thota. “We want students to be able to learn to access these systems early in their courses, not only when they join the workforce. This is really workforce training.” 

Illustrating Computing Concepts 

One example of a CS1 classroom activity that adopting institutions have implemented to great success, according to Weems, uses pennies to demonstrate parallel computing. Students first sort pennies by date individually, simulating sequential computing, in which a computer performs one operation at a time. When students work in pairs, the task is completed more quickly. Adding more students speeds up the process further, but eventually coordination becomes more complicated, illustrating the tradeoffs involved in scaling parallel systems. 

“That shows them that there is a performance value in parallelism, but that you have to be aware of how much work there is to do to decide how much parallelism to apply to it,” Weems said. 

The project also addresses one of the most significant challenges facing computer science education: the rapid adoption of generative AI tools. 

While many colleges and universities have restricted the use of generative AI in introductory courses, Weems said educators must prepare students to work alongside the technology rather than simply prohibit it. 

“One of the main ideas behind this is that introductory programming assignments can all now be solved by AI agents,” Weems said. “And students are going to do that. We have taken the approach, as many institutions have, of saying, ‘We will forbid that. And if we catch you, you will fail.’ That's a useful stopgap, but you can't hold back the ocean forever.” 

Rather than treating AI as something to avoid completely, Weems said the new curriculum could include assignments that ask students to evaluate AI-generated code. Students might compare several solutions produced from different prompts and determine which is most efficient, accurate, or appropriate for a particular problem. 

“So now,” Weems said, “how do you go out and research what's happening in that code so you can understand it?” 

Weems said this approach more closely reflects the work students will encounter in industry. Rather than writing every line of code from scratch, graduates will increasingly be expected to understand large, complex codebases, diagnose problems, develop solutions, and test them successfully, he said. He added that the changes will take time. 

“The first step has always been just to convince instructors that this isn't crazy,” he said. “We're not talking about teaching how to use supercomputers. We're talking about very basic ideas that anybody can grasp. Any introductory programmer can understand these concepts just as easily as looping or branching.” 

Article posted in Research