Submission I:
Criteria |
Points? |
Why? |
Purpose |
Yes |
The purpose, functionality, input, and output are described. |
Data Abstraction |
No |
Neither criteria were met. There is a way to program the app without a list, which makes it so that the list does not fulfill the program's purpose. |
Managing Complexity |
No |
Again, the list is there just because it is a requirement. It does not actually manage the complexity of the application. |
Procedural Abstraction |
No |
The procedure is student developed, but the actual procedure, due to the lack of data abstraction and complexity management, is not useful and is inefficient. |
Algorithmic Implementation |
Yes |
The algorithm is in enough detail that another could recreate it, and it is also student developed. |
Testing |
Yes |
It described both calls to the procedure, described the conditions that were passed through, and identified the result of each call. |
Submission II:
Criteria |
Points? |
Why? |
Purpose |
Yes |
The purpose, functionality, input, and output are described. |
Data Abstraction |
Yes |
Both program segments are shown, the list variable is identified, and the data of the list is used in the program. |
Managing Complexity |
Yes |
The program both had a list being used to manage complexity as well as explained how the program depends on the list. |
Procedural Abstraction |
Yes |
The procedure is both efficient enough and student-developed. |
Algorithmic Implementation |
Yes |
The algorithm is in enough detail that another could recreate it, and it is also student developed |
Testing |
Yes |
It described both calls to the procedure, described the conditions that were passed through, and identified the result of each call. |
Submission III:
Criteria |
Points? |
Why? |
Purpose |
Yes |
The purpose, functionality, input, and output are described. |
Data Abstraction |
No |
Neither criteria were met. There is a way to program the app without a list, which makes it so that the list does not fulfill the program's purpose. |
Managing Complexity |
No |
Again, the list is there just because it is a requirement. It does not actually manage the complexity of the application. |
Procedural Abstraction |
No |
The procedure is student developed, but the actual procedure, due to the lack of data abstraction and complexity management, is not useful and is inefficient. |
Algorithmic Implementation |
No |
The algorithm does not include iteration. It also is not explained how the index value completely works. |
Testing |
No |
There was no call to the selected procedure, the conditions were not described, and neither were the results of the call. |
Submission IV:
Criteria |
Points? |
Why? |
Purpose |
Yes |
The purpose, functionality, input, and output are described. |
Data Abstraction |
Yes |
Both program segments are shown, the list variable is identified, and the data of the list is used in the program. |
Managing Complexity |
Yes |
The program both had a list being used to manage complexity as well as explained how the program depends on the list. |
Procedural Abstraction |
Yes |
The procedure is both efficient enough and student-developed. |
Algorithmic Implementation |
Yes |
The algorithm is in enough detail that another could recreate it, and it is also student developed |
Testing |
No |
The description of how and where the function was being called, the conditions used, and the result, are not good enough. |
Reflection
In my own words, the criteria are:
Purpose
- What problem am I solving?
- How am I solving it?
- What is the input from the user?
- What does the application output?
Data Abstraction
- How does the list in the program store data from the user?
- How is it needed by the program?
- What is the variable representing the list?
- How is the data in the list needed for the program?
Managing Complexity
- What code lets the list manage the complexity?
- If the list was not used in the program, could the program still work somehow?
Procedural Abstraction
- Do I have a code segment that shows my own procedure (with at least one parameter) having an effect on the application's functionality?
- Do I have a code segment where said procedure is being called?
Algorithm Implementation
- Does my algorithm include sequencing, selection, and iteration?
- Have I explained my algorithm in enough detail for another to recreate it?
Testing
- Do I have two different calls to the procedure?
- Have I described the arguments/conditions for both calls?
- Have I described the results of both calls?