Incorporating Python into the engineering curriculum

Grant: “Designing a new CS1 course for Engineering students”, Strategic Instructional Innovations Program (SIIP) at UIUC. Research team: Mattox Beckman, Mariana Silva, Sotiria Koloutsou-Vakakis, Haidi Meidani, Wayne Change, Brian Mercer, Ke Tang, 2024-2025.

Graduate Student Assigned to This Project: Yuxuan Chen

The CS 101 course, required for most non-CS majors in the Grainger College of Engineering, has historically equipped students with Python and MATLAB programming skills essential for solving engineering problems. However, over time, the course’s effectiveness has diminished due to an overemphasis on diverse engineering applications and outdated content, which has weakened its focus on programming fundamentals. This project aims to comprehensively redesign CS 101 by re-establishing core programming fundamentals (CS1) during lectures while integrating diverse engineering applications into lab sections and bi-weekly mini-projects.

Drawing on feedback from interviews with 10 faculty members from the CS and Engineering Departments, we developed a curriculum that balances CS1 programming fundamentals with practical engineering applications. In the first year of this project, we redesigned the lecture content to focus on CS1 topics, including pseudocode, computational thinking, and debugging skills — topics previously absent from the course. Engineering applications were moved out of the lecture time and into the weekly lab sections. Additionally, we created four longer programming assignments, or mini-projects, that apply CS1 content to solve engineering problems in areas such as aerospace and structural analysis. New homework assignments, aligned with the revised lecture content, were developed in PrairieLearn, featuring auto-grading and immediate feedback. We also incorporated frequent testing, requiring students to complete six bi-weekly quizzes at the computer-based testing facility.

In the next phase of the project, we plan to update the lab sections to include scaffolding and structured roles, following the guidelines of Process-Oriented Guided Inquiry Learning (POGIL) pedagogies.

To assess the impact of these changes, we are evaluating students’ ability to solve engineering problems that require basic programming skills in subsequent courses using a Concept Inventory (CI). This CI consists of 16 multiple-choice questions covering conceptual, pseudocode, and basic Python topics. In Fall 2024, we collected baseline CI data from upper-level students enrolled in aerospace, fluid mechanics, and computational mechanics courses. Since these students had not taken the redesigned version of CS 101, their results provide a baseline for future comparisons. Preliminary findings indicate that these students struggled significantly with pseudocode questions, revealing gaps in algorithmic thinking. Performance on conceptual questions varied widely: some students scored very high, while others performed much lower, indicating inconsistent understanding across key topics. We will continue collecting CI data through the end of 2026 to measure the long-term effects of the CS1 redesign on engineering students’ ability to effectively apply computational tools in their respective fields.

Chen Y, Zhao C, Feng K, Beckman M, Silva M “A Comprehensive Redesign of CS1 for Engineering Students”, ASEE 2025 abstract accepted.

Contact information

Mariana Silva
2213 Siebel Center
(217) 300-6633
mfsilva@illinois.edu