• University of Michigan logo

Debugging: Hunting and Squashing Bugs

Boost your coding ability by learning to use debuggers, unit tests, and strategies to find and minimise bugs in your code.

A group of cartoon people examining a purple computer monitor with magnifying glasses on a yellow background.
  • Duration

    4 weeks
  • Weekly study

    4 hours

Expand your Python programming skills

Learning how to debug is the most valuable skill to develop as you learn to program. This four-week course from the University of Michigan will help you improve your programming ability by providing you with the skills you need to understand and debug code.

What’s more, you’ll learn the crucial techniques to help minimise mistakes and problems in your code.

Use a debugger to fix problems with your code

Most modern development environments contain a debugger, which you can use to find bugs and understand what is happening in your code. However, many people still rely on print statements when they debug.

This course will help you gain confidence in using debuggers, so you can spend less time seeking out and fixing bugs and focus on building exciting new programming projects.

Learn to recognise semantic and syntax errors in your code

The majority of coding errors occur when the programmer doesn’t understand the code or makes mistakes with the language, resulting in bugs.

On this course, you’ll gain the knowledge and skills needed to spot and solve semantic and syntax errors more easily. You’ll also streamline your coding process by learning to write and run unit tests to examine and check your code.

Study with the experts at the University of Michigan

Barbara Ericson is an Assistant Professor in the School of Information at the University of Michigan and an award-winning author of computing curricula.

With her years of expertise and creative approach to programming, she is best positioned to help you unlock your programming potential by hunting and squashing bugs.

What topics will you cover?

  • Discover strategies to minimize the number of bugs (mistakes) in your code.
  • Learn how to use a code stepper to see exactly what happens when code executes.
  • Gain skills with common tasks in a debugger (setting breakpoints, examining variable values, stepping through code).
  • Learn to recognise common syntax and semantic errors.
  • Understand how to create unit tests to test your code.
  • Use the output from unit tests to debug your code.

Learning on this course

On every step of the course you can meet other learners, share your ideas and join in with active discussions in the comments.

What will you achieve?

By the end of the course, you‘ll be able to...

  • Apply strategies to minimize the number of bugs (mistakes) in their code.
  • Practice with a code stepper to see exactly what happens when code executes.
  • Practice with common tasks in a debugger (setting breakpoints, examining variable values, stepping through code).
  • Identify common syntax and semantic errors.
  • Create unit tests to test their code.
  • Apply the output from unit tests to debug their code.

Who is the course for?

This course is designed for those interested in developing their Python skills or communicating with other programmers in a professional setting.

Who will you learn with?

I am an Assistant Professor in the School of Information at the University of Michigan. I study how to improve both computing education and the diversity of students in computing.

Who developed the course?

University of Michigan

As the #1 public research university in the United States, U-M has been a leader in research, learning, and teaching for more than 200 years, with 102 Grad programs in the top 10 — U.S. News & World Report (2019).

  • Established

    1817
  • Location

    Ann Arbor, Michigan, USA
  • World ranking

    Top 30Source: Times Higher Education World University Rankings 2020

Learning on FutureLearn

Your learning, your rules

  • Courses are split into weeks, activities, and steps to help you keep track of your learning
  • Learn through a mix of bite-sized videos, long- and short-form articles, audio, and practical activities
  • Stay motivated by using the Progress page to keep track of your step completion and assessment scores

Join a global classroom

  • Experience the power of social learning, and get inspired by an international network of learners
  • Share ideas with your peers and course educators on every step of the course
  • Join the conversation by reading, @ing, liking, bookmarking, and replying to comments from others

Map your progress

  • As you work through the course, use notifications and the Progress page to guide your learning
  • Whenever you’re ready, mark each step as complete, you’re in control
  • Complete 90% of course steps and all of the assessments to earn your certificate

Want to know more about learning on FutureLearn? Using FutureLearn

Do you know someone who'd love this course? Tell them about it...