PPT6: Scientific debugging

Slides:



Advertisements
Similar presentations
Active Reading: “Scientific Processes”
Advertisements

Steps of a Design Brief V Design Brief  Problem, identification, and definition Establish a clear idea of what is to be accomplished. Identify.
Chapter 1 Conducting & Reading Research Baumgartner et al Chapter 1 Nature and Purpose of Research.
Introduction to Science: The Scientific Method
Locating Causes of Program Failures Texas State University CS 5393 Software Quality Project Yin Deng.
Undergraduate Dissertation Preparation – Research Strategy.
Research Hypothesis Dr. Abraham So far Theoretical –Thesis Algorithm that solve real problems Evaluation by mathematical proof Experimental –Project.
SCIENTIFIC METHOD THE STEPS.
How Failures Come To Be By: Blake Burton. Golden rule: Software testing begins with careful design Modularity of your code is a big part in software testing.
CEN 4072 Software Testing Chapter 1: How Failures Come To Be.
6/3/2016 SCIENTIFIC METHOD PROCESSES OF SCIENTIFIC INQUIRY.
Scientific Reasoning Forensic Science. Copyright © Texas Education Agency All rights reserved. Images and other multimedia content used with permission.
Introduction to Computer Graphics 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 711,  ex 2271 
CS-1030 Dr. Mark L. Hornick 1 Java Review Interactive.
Data Display Debugger (DDD)
SCIENTIFIC METHOD. A researcher must follow scientific method for research to be considered valid. The following slides will discuss the procedure for.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
Black Box Activity: Scientific Process
Exploring Algorithms PROGRAMMING FUNDAMENTALS. As you come in Find your section area. Find your team. One person from each team should get the team folder.
Research Word has a broad spectrum of meanings –“Research this topic on ….” –“Years of research has produced a new ….”
The SCIENTIFIC METHOD. Definition Scientific method - steps used by scientists to solve a problem.
Announcements The sample C code from these slides is available in the same place as these class notes. It can compile with both C and C++ compilers. You.
The SCIENTIFIC METHOD. Definition Scientific method - steps used by scientists to solve a problem.
Group 1 Turn to page: Define: All bolded words 2.What is the study of psychology? 3.Why study psychology? 4.What is the difference between a theory.
Home Problem Scenario Problem Encounter Problem Analysis - Generating Ideas - Learning Issues Discovery & Reporting Solution Presentation Navigation Menu.
Leaving Certificate Biology Plus Chapter 1 The scientific method.
Overview 4 major memory segments Key differences from Java stack
PROCESSES OF SCIENTIFIC INQUIRY
Claims Evidence Reasoning CER Anchor Charts
Scientific Reasoning Forensic Science.
7. Scientific Method- = The systematic approach to problem solving that involves observation and experimentation.
Overview 4 major memory segments Key differences from Java stack
הרצאה 08 פרמטרים ל- main קרן כליף.
Introduction to Computer Graphics
Introduction to Computer Graphics
PPT and video are due: no later than November 16, 5:00 PM
Chapter 1 The scientific method.
Introduction to Computer Graphics
PPT9: Asserting expectations
What is Science?.
The Scientific Method.
PPT1: How failures come to be
What is Science?.
Effective Debugging.
PPT1: Basics of software engineering
What is Science?.
How do we start research?
PPT and video are due no later than February 15, 2019
PPT4: Rational B-spline Curves and Surfaces
PPT12: Shape Modification Tools
Scientific Method—designing an experiment.
PPT3: Project planning and management
PPT3: B-spline Curves and Surfaces
PPT6: Advanced Geometric Algorithms
PPT9: Global and local interpolation
Scientific Method Learning Outcome A2.
PPT7: Conics and Circles
PPT2: B-spline Basics Functions
PPT4: Requirement analysis
PPT8: Common Surfaces as NURBS
PPT6: Object-oriented design
PPT and video are due no later than March 1, 2019
Scientific Method—designing an experiment.
PPT and video are due no later than March 22, 2019
PPT11: Advanced Surface Construction Techniques
PPT and video are due no later than March 29, 2019
PPT11: System maintenance
PPT10: Global and local approximation
PPT5: Fundamental Geometric Algorithms
What is Science?.
Presentation transcript:

PPT6: Scientific debugging CEN 4072 Software Testing PPT6: Scientific debugging PPT and video are due: no later than October 5, 5:00 PM Submit to: lpiegl@gmail.com This template file is just an outline of the presentation that you need to complete. Additional pages will be necessary to fully explore the topic above. Each page should contain adequate text as well as illustrations. You are free to use all publically available information (text as well as graphics) as long as the sources are properly acknowledged.

Team members’ contributions Member [name]:

Errors Content outline: What is an error in the software

Causes and effects Content outline: What is the cause of a problem? Examples

Causes and effects Content outline: How to prove causality? Example

Causality Content outline: Repeating history Can we repeat history in software?

Causality Content outline: Repeating program runs How much data and knowledge does it take?

Causes by intuition Content outline: Can intuition be taught? What is tacit knowledge and how one would acquire it?

Scientific method: what is it? Content outline: Explanation and examples

Scientific method: main steps Content outline: Steps and their explanations in using the scientific method

What is a theory? Content outline: The road from hypothesis to theory

Scientific method of debugging Content outline: Details, explanation and chart

Sample program revisited int main(int argc, char *argv[]) { int *a; int i; a = (int *)malloc((argc - 1) * sizeof(int)); for (i = 0; i < argc - 1; i++) a[i] = atoi(argv[i + 1]); shell_sort(a, argc); printf("Output: "); printf("%d ", a[i]); printf("\n"); free(a); return 0; } static void shell_sort(int a[], int size) { int i, j; int h = 1; do { h = h * 3 + 1; } while (h <= size); h /= 3; for (i = h; i < size; i++) int v = a[i]; for (j = i; j >= h && a[j - h] > v; j -= h) a[j] = a[j - h]; if (i != j) a[j] = v; } } while (h != 1);

Debugging with the scientific method Content outline: Detailed steps of how to use the scientific method to debug the sample program

Explicit debugging Content: Stating the problem explicitly can help solve the problem The Teddy Bear principle of software

Keep a notebook Content outline: Keep a record of each debugging session

Algorithmic debugging Content outline: Steps of the algorithmic debugging

Example code for algorithmic debugging def insert(elem, list): if len(list) == 0: return [elem] head = list[0] tail = list[1:] if elem <= head: return list + [elem] return [head] + insert(elem, tail) def sort(list): if len(list) <= 1: return list head = list[0] tail = list[1:] return insert(head, sort(tail))

Algorithmic debugging session Content outline: Step-by-step debugging of the sample code above Include an explanation as well as a chart

Pros and Cons Content outline: Pros and cons of the scientific debugging

Obtaining a hypothesis Content outline: Observing a run Deducing from the code Problem report Earlier hypotheses

Reasoning about the programs: deduction Content outline: Details on how to use deduction Example

Reasoning about the programs: observation Content outline: Details on how to use observation Example

Reasoning about the programs: induction Content outline: Details on how to use induction Example

Reasoning about the programs: experimentation Content outline: Details on how to use experimentation Example

Your code experimentations Content outline: Share your experience(s) with experiments Examples