Unit 1.4 - Identifying and Correcting Errors
Video 1:
4 types of errors:
 1) logic error  – mistake in an algorithm where it behaves in an unintended way 
 2) syntax error  – mistake where rules of program arent followed
- this could be a typo, or a missing character/line
 - common examples: forgetting colons, parenthesis/curly or square braces, indentations, quotes.. 
3) run-time error – error that comes up while the program is running
 - program starts to run but then crashes and can not finish
 - also known as a bug
 - may happen because of dividing by 0, inappropriately entered data type (a number instead of a word), or other types 
4) overflow error – error that happens when the computer tries to run a number outside defined range of values - because of memory constraints, some numbers are too big for a program to handle (imagine a calculator that has only a 4 digit display – 100*100 would not be able to be displayed)
 
-> errors will always happen when coding no matter what, and should be an expected part of programming 
-> good programers can identify what type of error it is and act accordingly
Video 2:
good ways to find and correct errors:
- test cases
 - hand tracing
 - visualizations
 - debuggers
 - adding extra output statements
 
what to do once an error has been found:
-> easiest error to correct is a syntax error – traceback info states which line the error is happening (though sometimes a little more searching is needed)
-> logic errors are much more difficult – in this case, test cases are helpful
- test cases: using specific, varying inputs to test whether the input works, and to find where the problem is
 
grade <– INPUT(“enter a grade”)
if (grade > 89) {
    DISPLAY (“A”) }
if (grade > 79) {
    DISPLAY (“B”) }… etc
good test cases would be numbers within those intervals – also consider: would decimals work? What about negative numbers?
Hand tracing (most useful for loops): writing out the values of the variables of a loop as the loop iterates
- useful for a loop that repeats a small number of times
 - larger loops need a debugging program
 
Adding extra output statements:
- used to help find errors
 - once the error is corrected, the extra output statements are usually removed
 - similar to hand tracing but makes computer do most of the work
 
If all the above strategies fail:
- visuals and debuggers can sometimes be used
 - visualizations: graphs, images, colors (or anything else that can be seen) that can show whether or not the program is working
 - debuggers: software designed to test programs – can be paused in the middle of running to test whether that section is working correctly
 
Video 3:
- programmers start thinking about testing as soon as they start programming
 - 
    
ask yourself: “how will I know the program is working correctly?”
 - programmers have defined inputs to check whether or not the program is working
 
testing is a cycle of testing and refining