Introductory computer science (CS) courses, also referred to as CS1, are essential for equipping computer science and other engineering students alike with foundational programming skills. However, traditional CS1 courses are tailored for CS majors, leaving engineering students without the specialized programming knowledge needed for their disciplines. This paper presents a complete redesign of the CS 101 course at the University of Illinois Urbana-Champaign to meet the specific needs of fundamental programming for engineering students. The new curriculum prioritizes teaching foundational programming concepts in lectures while providing engineering-focused applications in lab activities and mini-projects. New topics, such as pseudocode and debugging, were introduced in lectures to deepen engineering students' understanding of programming fundamentals and enhance adaptability to new programming languages. Homework and exams were restructured into computer-based assessments featuring auto-grading and randomized problem variations to encourage mastery learning. Bi-weekly mini-projects were designed to connect programming concepts and skills with practical engineering applications. To evaluate the impact of the redesigned CS 101 course, a CS1 assessment was developed to measure students' understanding of programming fundamentals, pseudocode interpretation, and Python-specific skills. Future work will focus on incorporating group activities into lab sessions, expanding mini-project offerings, and refining the assessment tools to further align with the needs of engineering students.
The full paper will be available to logged in and registered conference attendees once the conference starts on June 22, 2025, and to all visitors after the conference ends on June 25, 2025