Welcome back to Software Development!
STAIR Design Method STAIR
STAIR Design Method STAIR State the problem
STAIR Design Method STAIR State the problem Tool identification
STAIR Design Method STAIR State the problem Tool identification Algorithm
STAIR Design Method STAIR State the problem Tool identification Algorithm Implementation
STAIR Design Method STAIR State the problem Tool identification Algorithm Implementation Refinement
STAIR – Step 1
STAIR – Step 1 State the problem
STAIR – Step 1 State the problem Clear and concise
STAIR – Step 1 State the problem Clear and concise Just a sentence (to maybe a paragraph)
STAIR – Step 1 State the problem Clear and concise Just a sentence (to maybe a paragraph) Indicates what you want to accomplish
STAIR – Step 1 State the problem Clear and concise Just a sentence (to maybe a paragraph) Indicates what you want to accomplish As non-technical as possible
STAIR – Step 1 State the problem Clear and concise Just a sentence (to maybe a paragraph) Indicates what you want to accomplish As non-technical as possible Very important!
STAIR – Step 1 State the problem Clear and concise Just a sentence (to maybe a paragraph) Indicates what you want to accomplish As non-technical as possible Very important! If you can’t simply state what you are supposed to do…
STAIR – Step 1 State the problem Clear and concise Just a sentence (to maybe a paragraph) Indicates what you want to accomplish As non-technical as possible Very important! If you can’t simply state what you are supposed to do…how can you do it?
STAIR – Step 2
STAIR – Step 2 Tool identification
STAIR – Step 2 Tool identification The programming “stuff” you think you will need…
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions?
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart)
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop?
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information?
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information?
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information? (strings, numbers, …)
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information? (strings, numbers, …) How many?
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information? (strings, numbers, …) How many? For what?
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information? (strings, numbers, …) How many? For what? (user name, favorite color, …)
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information? (strings, numbers, …) How many? For what? (user name, favorite color, …) Will we need anything .NET provides?
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information? (strings, numbers, …) How many? For what? (user name, favorite color, …) Will we need anything .NET provides? Console.ReadLine and/or Console.WriteLine
STAIR – Step 2 Tool identification The programming “stuff” you think you will need… Will our program be making decisions? (diamonds in the flowchart) Will our program need to loop? Will I need variables to hold information? What type of information? (strings, numbers, …) How many? For what? (user name, favorite color, …) Will we need anything .NET provides? Console.ReadLine and/or Console.WriteLine Will we need any algorithms we’ve already written?
STAIR – Step 3 cont
STAIR – Step 3 cont Test Plan
STAIR – Step 3 cont Test Plan Before you write code
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong…boundary conditions
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong…boundary conditions Write out a plan:
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong…boundary conditions Write out a plan: We will look for these things to be working
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong…boundary conditions Write out a plan: We will look for these things to be working We will test these bad things to make sure our program still works right
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong…boundary conditions Write out a plan: We will look for these things to be working We will test these bad things to make sure our program still works right Do this before you write code!
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong…boundary conditions Write out a plan: We will look for these things to be working We will test these bad things to make sure our program still works right Do this before you write code! Play computer
STAIR – Step 3 cont Test Plan Before you write code Determine how to tell if your program is doing what it is supposed to Think through what may go wrong…boundary conditions Write out a plan: We will look for these things to be working We will test these bad things to make sure our program still works right Do this before you write code! Play computer “Run” your algorithm step-by-step to see if it does what you expect
STAIR – Step 4
STAIR – Step 4 Implementation
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005)
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code!
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code! Edit
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code! Edit Type in the C# code implementing your algorithms
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code! Edit Type in the C# code implementing your algorithms Compile
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code! Edit Type in the C# code implementing your algorithms Compile Translate your C# code into machine language
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code! Edit Type in the C# code implementing your algorithms Compile Translate your C# code into machine language The compiler will catch any language problems
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code! Edit Type in the C# code implementing your algorithms Compile Translate your C# code into machine language The compiler will catch any language problems Correct error and recompile
STAIR – Step 4 Implementation (using the IDE…Visual Studio 2005) This is the first time you are writing code! Edit Type in the C# code implementing your algorithms Compile Translate your C# code into machine language The compiler will catch any language problems Correct error and recompile Run the program!
STAIR – Step 5
STAIR – Step 5 Refinement
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time Two general types of bugs:
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time Two general types of bugs: Crashes
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time Two general types of bugs: Crashes You will get an error message and the debugger will show you what line of code the error occurred on.
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time Two general types of bugs: Crashes You will get an error message and the debugger will show you what line of code the error occurred on. Logic errors
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time Two general types of bugs: Crashes You will get an error message and the debugger will show you what line of code the error occurred on. Logic errors Your algorithm is wrong
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time Two general types of bugs: Crashes You will get an error message and the debugger will show you what line of code the error occurred on. Logic errors Your algorithm is wrong Program isn’t doing what you really intended
STAIR – Step 5 Refinement Rarely will it run correctly the 1st (or 2nd) time Two general types of bugs: Crashes You will get an error message and the debugger will show you what line of code the error occurred on. Logic errors Your algorithm is wrong Program isn’t doing what you really intended Remember, the computer does exactly what you tell it to!
Clear and Unclear Windows