Learn how Sarah Veatch’s scientific computing course at the University of Michigan helps students develop Python skills and computational thinking to tackle scientific challenges.
Articles
October 10, 2024

Course spotlight: Empowering Scientists at University of Michigan

In 30 seconds...

Sarah Veatch’s scientific computing course at the University of Michigan empowers students from various fields to use Python programming for solving scientific problems. With a focus on hands-on learning and real-time feedback, students develop computational thinking skills to tackle science in new, innovative ways.

Sarah Veatch, Associate Director of Graduate Studies and Professor of Biophysics and Physics, has crafted a unique introductory scientific computing course with Python programming. As interest grows in non-computer science courses incorporating computational skills, Sarah’s approach offers students valuable tools to explore scientific problems in new ways.

Shifting the Focus to Problem-Solving with Code

The primary objective of Sarah’s course is to help students become comfortable using computers to address scientific questions. "We aim to empower students with programming skills so they can solve problems," she says. Instead of focusing on narrow, specific problems, the course equips students with tools to gather information and encourages excitement about doing science.

This computational approach encourages students to think like a computer—something often absent from traditional biology curricula. "Thinking like a computer helps you set up a problem in a way that lets you exploit the power of computation," Sarah notes, expanding their problem-solving capabilities.

A Modular Approach to Learning

Meeting twice a week, the course introduces new topics with each session. Sarah assigns 2-4 smaller assignments per period within CodeGrade, providing students with frequent opportunities to engage with new material. “Before it had been one or two notebooks, but now we split things into smaller pieces” she explains, allowing students to learn incrementally. This shift helps students build on their skills gradually and feel less overwhelmed. As students are from backgrounds outside of Computer Science, this can be extremely helpful.

All assignments are formative, emphasizing learning and practice rather than high-stakes evaluation. In the second half of the course, students tackle larger projects that integrate computational work with written reports, while mini-practice problems throughout the semester reinforce key concepts.

Support students from all disciplines on their coding journey today!

Practice Makes Perfect: The Power of Feedback

Sarah is confident that completing all assignments is the key to success in her course. "it's set up so if they do everything, they learn," she notes. The emphasis is on consistent practice, with learning happening naturally as students work through each problem.

One of the most impactful changes Sarah made to her course was incorporating automated feedback. Students receive immediate responses on whether their code runs correctly, includes required features, and produces the right output. "Having it be automated was really magical," she says. Although she appreciates the efficiency of this system, Sarah plans to introduce more direct, personalized feedback to further enhance learning.

Learning by Doing

Each class begins with a concise, 15-minute overview of the day’s learning objectives. From there, students dive into assignments, often starting their work in class so they can ask questions and receive guidance. The brief lectures give students a framework, but it’s the hands-on practice that deepens their understanding.

Setting Students Up for Success

For new educators teaching programming, Sarah’s advice is simple: focus on building the right mindset. "It’s not just about the code. It’s the mindset behind it," she emphasizes. Without that foundation, students can easily become discouraged. Sarah notes that it’s important to support students through their struggles and help them see progress, or they may lose motivation. "If you don’t get that built-in, you lose them quickly," she cautions.

Preparing the Next Generation of Scientists

Sarah Veatch’s biophysics course illustrates how computational thinking can be integrated into scientific education. By breaking down assignments, providing continuous feedback, and fostering a hands-on learning environment, she equips her students with both the skills and mindset they need to tackle scientific problems independently.

Continue reading

Best Practices for Rubric Design in Coding Assignments

Discover best practices for rubric design in coding education. Learn to align rubrics with learning objectives, use automated tests, and explore ungrading for fairer, growth-focused assessments

Watch now! How to teach Python

Watch our 2024 webinar for updates on the Introductory Python course, including new modules, knowledge checks, and grading automation with CodeGrade.

Follow A New User!

See how CodeGrade streamlines grading and improves assignment design in programming courses.

How to configure an AI Assistant for code

CodeGrade’s AI Assistant offers a flexible way to support coding education through tailored guidance and feedback. This guide explains how to configure and customize the assistant to fit your teaching goals, from helping students debug code to providing conceptual explanations.

Sign up to our newsletter

Transform your Jupyter Notebooks course today!