By weaving in real-world projects, Duke Engineering is piloting a new approach to introductory computing that seeks to give students not only a strong foundation in programming skills, but a vision of coding as a creative tool
Shaundra B. Daily likes to compare coding to a paintbrush.
“It is a creative tool. It can create useful things that improve the way people live,” said Daily, a faculty member in Electrical and Computer Engineering (ECE).
Students don’t always think of computing that way—and that means many of them don’t think of computer science, engineering or other coding-centric careers as a potential path for them. In piloting a fresh approach to Duke Engineering’s introductory computing course, Daily and her colleague Michael Gustafson are looking to ways to change that.
“In general, first-year students don’t always get to see what seniors see, which is that you can apply the fundamentals of programming to a wide array of fields to make a positive social impact,” said Daily. “But plenty of research shows that it helps attract and retain students when you give them earlier exposure to doing creative things through computing.”
The spring 2018 offering of the Computational Methods in Engineering course continues to provide rigorous training in computational methods. But Gustafson, a Duke ECE faculty member who co-teaches the course with Daily, said computational thinking is about more than memorizing the details of a computing language.
“It’s about being able to think in computational terms when assessing a problem—to use computation as part of solving that problem,” he said. In the new pilot course, students will be challenged to connect computing to real-world, collaborative problem-solving through team projects. They’ll draw on what they’ve learned about programming logic, iterative calculations and debugging to figure out what those methods can achieve for the end user and how to build an interface for their target audience.
In one example, students will analyze pollution levels in the Great Lakes using models from environmental engineering. They will use computational methods and tools learned during lecture—for example, linear algebra and nonlinear regression—to estimate how various environmental and other factors might impact the system over time.
Then they’ll build an interface that presents the information in a variety of ways.
“The power of this approach is that each student is exposed to concepts of computational thinking right from their first year in engineering school,” Gustafson said. “This gives each student a suite of basic practical skills, training in problem-solving concepts and preparation for more complex computational training, letting them hit the ground running when they select their engineering discipline.”