TEERADEJ LO
AP
COMPUTER SCIENCE A
Password
Strength
Deter
Mining
Program
Challenges:
At first, I used scoring system by adding or subtracting score depending on the characteristics of the password. The first draft I just subtract it by a constant no matter how the password was, like if it was 1 character long and 6 character long, I will still subtract the total score by same amount. I, then, work on to fix this by subtracting the length of the password and what the condition has so that it become fairer. It became more logical but by using score it was hard to setup the scale so I just change to use combination method which seem to be more reasonable. Some problem with the combination is that I confused about its formula. I try to draw the combination concept out and finally I understand how it work.
What did I learn?
I have more understanding about String as I understand that it was a sequence of characters and by giving the index behind the String name, we can take out one character from specific location of that String. I know more about type-casting: the situation that it should be used like changing char into int or change a variable into float so that we will get float as a result. I know how each data type require different amount of bit thus lead to an error in setting double into int type because double use 64 bit which it was more than what int can handle. I become more familiar with the syntax of the for loop as I has used it a lot in my code. Using && and || in a condition to decrease the amount of line used. I understand more of how the scanner work and the way I used to keep the input with System.in is to immediately save the first input in a String and close the scanner after that to prevent it from asking for input every time we run other lines of code.
Lie
Detector
Algorithm
What did I learn?
I learn the ways that we can integrate the concept of class into an algorithm. I think the benefit from these is that it makes the code become much cleaner and also we can limit the user access to some information. . In this project, I use a lot of arrays and I get more familiar with it now. Other thing is the ways we managed the condition of a "for loop." The ways that we don't need to run the "for loop" all the way for the array length or initializing the local variable to be 0 in a "for loop" helps in making our code run faster as it needs less work to do.
Will I use this to convict someone?
I won't be using this. In the first place, I don't really agree with this way of lie detection. I think that the word used can't really tell if someone is lying or not. Each person has a different ability. Some might think it easy to describe some scenery descriptively but for someone like me who doesn't really remember what I see then isn't it making me into a bad position and are more likely to be misjudged by the algorithm. In addition, in my code, there is a lot of makeup number. Even though I have tried using my code a lot and thus decide to use those numbers but it was still far from being called reasonable. There is not enough evidence or action that will support my program.
Evaluate myself
I have no objection to the score I got. I feel that I, myself, didn't put my best effort into this work. I first think of having a static variable that will collect the word that the program has seen and make the looping of the code become more effective. But it ends up just being an idea. According to the grading rubric, I think for following instructions I might get around 8-9 because I complete the work. I think that for content comprehension, I should get 9 because I use the concept of class and I think I understand the benefit of using it. For analytical abilities, I will just give myself 7-8; I try to make my code clean but the criteria for my algorithm are very simple. Lastly for the presentation, I will also give myself 7-8. I think that my justification is not strong enough and it was not engaging.