Engineering course icon that demonstrates how Python courses use CodeGrade for automation.
June 10, 2025

Hands-On Python for Engineering Applications at Ferris State

In 30 seconds...

Discover how Ferris State's engineering program transforms students into confident coders. By ditching theory for hands-on Python, practical projects, and AI-powered tools like CodeGrade, this course proves that programming isn't just for CS majors—it's an essential skill for modern engineers.

Brian Brady, a program coordinator and faculty member of mechanical engineering technology at Ferris State, champions a practical, hands-on approach to programming in his Computer Applications II course. Unlike traditional mechanical engineering courses that emphasize theory, this course focuses on programming using Python, incorporating numerical calculus concepts with libraries like NumPy and Matplotlib, and programming microcontrollers.

Designing for Practical Application and Confidence

The primary learning goals for Computer Applications II include developing a comfort level with programming, specifically Python, and the ability to understand and potentially modify code they might encounter in their engineering careers. Brian aims for students to recognize coding patterns, enabling them to troubleshoot or communicate effectively about code-related issues. 

The course also seeks to build students' confidence in using coding for tasks like data analysis and automation in their senior projects. Assessments in the course use a blend of math and engineering-related problems, including tasks like plotting data and analyzing forces. These assignments are designed to show students the practical applications of coding in other engineering disciplines

Leveraging CodeGrade for Streamlined Feedback and Focused Learning

Previously, Brian Brady faced challenges in providing timely feedback to students on their coding assignments. The grading process was often delayed, hindering students' ability to learn from their mistakes and apply those learnings to subsequent assignments. Brian had used self-written autograders, but the feedback was not immediate.

CodeGrade has helped improve Brian's workflow and student learning. Students now understand precisely what is required to earn their points, and he notes that many students are now interested in maximizing their points. Regardless of whether they agree with how the autograder is set up or the specific elements Brian looks for, they are aware of the criteria. Once the initial setup is complete, “the rest of the semester rolls by!”. 

CodeGrade allows for flexibility in adapting grading rules based on unexpected but valid student approaches, facilitating continuous improvement of the assessment process. Brian described this flexibility, noting that students often discover alternative valid solutions beyond his initial expectations, which allows him to adjust grading rules as needed to accommodate their expanded approaches. When students encounter issues they cannot resolve, their questions are "more focused, referencing specific errors from the autograder".

Supercharge your Python course today!

Integrating AI for Enhanced Learning and Deeper Projects

CodeGrade's built-in AI assistant is influencing how students approach programming in Brian Brady's course. This semester, Brian focused on observing how students used the AI assistant rather than directly assessing their interactions with it. The primary assessment focused on the final code output and whether it met the specified requirements.

Crucially, Brian emphasized a "customer spec" approach, where students needed to meet specific output requirements, regardless of the methods used to achieve them. This is important when using AI - it shifts the focus of assessment from the code creation process to the accuracy and functionality of the final product. This strategy helps confirm that students are developing a critical understanding of how to interpret requirements and validate results, which is essential for engineering applications.

Students generally responded well to the integration of AI, frequently using the built-in CodeGrade AI Assistant throughout the semester.

Advice for New Instructors

Brian's advice for new instructors teaching programming to non-CS majors is to be patient and to demonstrate the practical applications of programming within their specific fields of study. He emphasizes that connecting programming concepts to tangible outcomes, such as controlling physical devices with microcontrollers, can significantly increase student engagement and motivation.

Continue reading

How to auto-grade Jupyter Notebooks

Simplify grading Jupyter Notebooks. Learn what is Jupyter Notebook and how to use CodeGrade for easy auto-grading. Streamline how to submit Jupyter Notebook assignment for faster student feedback.

Automatic Submission Testing for R Programming: A Project from Wageningen University

Discover how Wageningen University used CodeGrade to automate R assignment testing, speeding up feedback and improving learning outcomes at scale.

How to use custom test blocks

Flexible Autograding with Custom Test Blocks in CodeGrade

Sign up to our newsletter