QuikCal: From First-Year Design Idea to Reality
A student team rekindled a class project with the help of ChatGPT and debuted their construction site delivery scheduling system over the summer.
The hands-on curriculum for Duke's refreshed first-year programming course focuses first on computational thinking.
To bake a batch of cookies, you need a recipe.
Before we jump to the end, when the enchanting aroma fills the kitchen and you bite into a warm, pillowy treat, you have to start at step one.
Make an ingredient list and go grocery shopping. Measure out the flour, sugar and milk, and crack a few eggs. Add flavorings like chocolate chips. Finally, after preparing the batter and baking for the appropriate time, you are rewarded with the spoils of a timeless dessert.
Like a cookie recipe, the algorithmic processes that engineers use in their daily work rely on a similar logical progression. And that goes doubly so for building computer code from scratch.
Over the last year, Duke Engineering rolled out EGR 105L Computing for Engineers, a redesigned first-year programming course. EGR 105L builds students’ computational thinking skills—and is an integral part of the school’s Signature First Year Experience.
After soft-launching the course in spring 2024, Duke has formally adopted the changes for this fall based, in part, on rave reviews.
“I really loved my experience,” said Rosemina Ayieko, a sophomore biomedical engineering student who took the course in the spring and is now a teaching assistant for the class. “At the beginning, it was hard because I was wired toward methods, procedures and the product and not wired toward thinking. Like a recipe, you can’t start from the end, you have to start from the beginning.”
The new course updates the class in which the venerated “Dr. G” (alum and faculty member Michael Gustafson) taught the new course’s instructor when she was a Duke undergraduate.
The shift toward computational thinking, in contrast with methods, provides students with flexible skills that will enable them to learn specific numerical methods, such as root finding or numerical integration when opportunities arise in upper-level engineering courses.
“We focus on the thought patterns you have to develop to solve engineering problems,” said Genevieve Lipp, designer and instructor of the new course and director of Duke’s First-Year Computing Experience. “The course does use Python as the programming language of implementation, but the emphasis is on the thinking processes, such as abstraction and problem decomposition, that allow an engineer to manage a complex problem.”
The new course uses The Seven Steps, created by Andrew Hilton, professor of the practice in Duke ECE and Cornell Engineering senior lecturer Anne Bracy.
The first steps break down devising an algorithm into a manageable process students can follow, with specific recommendations depending on where they get stuck. The final steps involve translation to code, testing and debugging if necessary.
Besides the technical skills of algorithm development and programming, Lipp also wants her students to develop soft skills essential to the engineering profession: a sense of self-sufficiency, the ability to remain resilient when faced with adversity, effective collaboration and the management of group dynamics.
Sasha Nikiforov, a sophomore studying biomedical engineering, also took the course in the spring and was surprised at how impactful developing an algorithmic mindset to approach any problem can be.
“The course required planning and thinking about what resources you need,” Nikiforov said. “These tasks inadvertently develop the self-determination and grit you need to succeed as a student and engineer.”
The semester builds through activities and modules into progressively larger projects with real-world applications, which helps the students see their lessons in action.
“If you can learn the content just in time to apply it to a problem, you see the relevance right away,” Lipp said.
For one project, a project manager for Durham-based Self-Help Credit Union supplied data and subject matter expertise for the students. The goal was to create an algorithm capable of conducting a feasibility analysis for developing affordable housing.
The project was one of several intentionally selected to touch on social responsibility and build resilience in students as a character virtue—a focus of Duke Engineering’s Character Forward Initiative.
Initially, the topic worried Ayieko, an international student who had no background knowledge of affordable housing or tax credits in the United States.
“Dr. Lipp helped me understand that it’s not about affordable housing or tax credits; it’s how you think as a programmer by breaking big problems into sub-problems. That helped me demystify each part and piece it together,” Ayieko said. “Dr. Lipp is there to support you, but she’s not there to give you the answers, so I learned how to be very independent through the course.”
The larger projects use scrum, a project management framework often used in software development that splits work into smaller segments with defined deadlines. Other project topics range from sleep study data analysis to space travel.
Nikiforov, who is interested in pursuing a dual career as a physician and researcher, said she loved her project, which allowed her to analyze electrocardiogram data and speak to a neurosurgery resident physician.
“It was really cool that a project I worked on in a first-year class directly pertains to something physicians are using right now,” Nikiforov said. “It helps me visualize my aspiring career as a physician-scientist even more.”
A student team rekindled a class project with the help of ChatGPT and debuted their construction site delivery scheduling system over the summer.
Seniors in Duke’s hands-on mechanical engineering capstone built an entry for the Baltimore Kinetic Sculpture Race, an annual event with roots dating to the 1960s.
Created to integrate ethics into the undergraduate engineering curriculum, Character Forward is a partnership between Duke Engineering and The Purpose Project at Duke