Software Debugging (Udacity)

Offered by Udacity,
Software Debugging (Udacity)

Automating the Boring Tasks. In this class you will learn how to debug programs systematically, how to automate the debugging process and build several automated debugging tools in Python.

Class Deals by MOOC List - Click here and see Udacity's Active Discounts, Deals, and Promo Codes.

At the end of this course you will have a solid understanding about systematic debugging, will know how to automate debugging and will have built several functional debugging tools in Python.

What You Will Learn

Lesson 1
How Debuggers work

  • Theory: Scientific method and its application to debugging.
  • Fun fact: First bug in the history of computer science.
  • Practice: Building a simple tracer.

Lesson 2
Asserting Expectations

  • Theory: Assertions in testing and in debugging.
  • Fun fact: The most expensive bug in history.
  • Practice: Improving the tracer.

Lesson 3
Simplifying Failures

  • Theory: Strategy of simplifying failures. Binary search. Delta debugging principle.
  • Fun fact: Mozilla bugathon.
  • Practice: Building a delta debugger.

Lesson 4
Tracking Origins

  • Theory: Cause-effect chain. Deduction. Dependencies. Slices.
  • Fun fact: Sherlock Holmes and Doctor Watson.
  • Practice: Improving the delta debugger.

Lesson 5
Reproducing Failures

  • Theory: Types of bugs (Bohr bug
  • Heisenbug
  • Mandelbug
  • Schrodinbug). Systematic reproduction process.

-Fun fact: Mad laptop bug.

  • Practice: Building a statistic debugging tool.

Lesson 6
Learning from Mistakes

  • Theory: Bug database management. Classifying bugs. Bug maps. Learning from mistakes.
  • Fun fact: Programmer with the most buggy code.
  • Practice: Improving your tools and practicing on a real world bug database.
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

JavaScript and the DOM (Udacity) Udacity
Udacity

JavaScript and the DOM (Udacity)

Dynamically control the browser. JavaScript is an extremely powerful programming language. One place where its power truly shines is using it to control a web page. Through this course, you'll learn about the Document Object Model (DOM), how it's created, and what capabilities it provides. Then you'll use JavaScript and the DOM to add, delete, or alter page content; control page styling, and respond to user actions.

Self Paced
Self-Paced
Algorithms, Part I (Coursera) Coursera
Princeton University

Algorithms, Part I (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Sep 21st 2026
5-12 Weeks
Software Analysis & Testing (Udacity) Udacity
Georgia Institute of Technology,Udacity

Software Analysis & Testing (Udacity)

This course covers the theory and practice of software analysis, which lies at the heart of many software development processes such as diagnosing bugs, testing, debugging, and more. It presents diverse techniques, each with their own strengths and limitations, for automating tasks such as testing, debugging, and finding bugs in complex real-world programs. These techniques include dataflow analysis, constraint-based analysis, type systems, model checking, symbolic execution, and more. The course teaches the principles underlying these techniques as well as imparts hands-on experience with using and implementing tools based on these techniques.

Self Paced
Self-Paced
HTML5 Canvas (Udacity) Udacity
Udacity

HTML5 Canvas (Udacity)

From Pixels to Animation! Canvas is an HTML5 element which gives you drawable surface inside your web pages you can control with JavaScript. Powerful enough to use for compositing images and even creating games. In this course, through several sample projects, you’ll learn how to use the canvas; how to make compositions using shapes, images, and text; how to create effects and filters on images and how to create animations.

Self Paced
Self-Paced
Swift for Developers (Udacity) Udacity
Udacity

Swift for Developers (Udacity)

Your Next Programming Language. This course offers a quick practical introduction to Swift basics, including types, variables, constants, and functions. It combines syntax exercises with hands-on iOS development in Xcode. By the end of the course students will build their first iOS app, an app that creates and displays song lyrics customized to user input.

Self Paced
Self-Paced
Intro to Relational Databases (Udacity) Udacity
Udacity

Intro to Relational Databases (Udacity)

SQL, DB-API, and More! This course is a quick, fun introduction to using a relational database from your code, using examples in Python. You'll learn the basics of SQL (the Structured Query Language) and database design, as well as the Python API for connecting Python code to a database. You'll also learn a bit about protecting your database-backed web apps from common security problems. After taking this course, you'll be able to write code using a database as a backend to store application data reliably and safely.

Self Paced
Self-Paced