Course description
Software Debugging: E-learning from Udacity
This course guides users through the basic requirements and understanding necessary in systematic debugging. Participants will learn how to systematically debug programs, automate processes and build debugging tools in Python.
Course project
As part of course materials participants will develop a complete debugger that will be immediately usefull within their existing projects.
Do you work at this company and want to update this page?
Is there out-of-date information about your company or courses published here? Fill out this form to get in touch with us.
Upcoming start dates
Who should attend?
This Software Debugging course is intended for professionals hoping for a better understanding of systematic debugging.
Pre-requisites
Learners should have a basic understanding of programming and Python. Basic knowledge of object-oriented programming would also be helpful.
Find out if this course is right for you - request more information here!
Training content
This Developing Scalable Apps with Java takes learners through:
Projects
Put all the things you learned in this course together and finish a complete debugger that you can use on other projects
Lessons:
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.
Asserting Expectations
- Theory: Assertions in testing and in debugging.
- Fun fact: The most expensive bug in history.
- Practice: Improving the tracer.
Simplifying Failures
- Theory: Strategy of simplifying failures. Binary search. Delta debugging principle.
- Fun fact: Mozilla bugathon.
- Practice: Building a delta debugger.
Tracking Origins
- Theory: Cause-effect chain. Deduction. Dependencies. Slices.
- Fun fact: Sherlock Holmes and Doctor Watson.
- Practice: Improving the delta debugger.
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.
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.
Costs
This Software Debugging course is Free of charge.
Estimated time for completion assuming 6 hours per week: Approx. 2 months