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?