Designing a new CS1 course for Engineering students

Introduction

The CS 101 course, required by 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, the course’s effectiveness has been diluted over time due to an overemphasis on diverse engineering applications and outdated content material, undermining its programming rigor.

In this project, we propose a comprehensive redesign of CS 101,focusing on re-establishing basic programming fundamentals (CS1) during lectures while integrating diverse engineering applications into lab sections and bi-weekly mini-projects. Drawing on qualitative feedback from interviews with over 10 faculty members across both Computer Science and other Grainger Departments, we propose to develop a curriculum that balances CS1 topics with practical engineering applications, create new lecture content reflecting CS1 learning objectives, create auto-graded and randomized questions on PrairieLearn to support mastery learning during homework, enhance the lab sections through Process-Oriented Guided Inquiry Learning, develop mini-projects applied to engineering applications, and design concept inventory questions to measure the impact of our course redesign. Our goal is to ensure that engineering students are better equipped with the computational skills necessary to navigate and innovate within their respective engineering fields.