This is my 3rd year teaching the course (using Code.Org), I’ve looked at the performance tasks, scoring guidelines, student samples, etc. but I still struggle with defining these two things for my students. With the possibility of students having to do CREATE remotely this year I really want to get some clear language to use to explain what is expected of them.
First off, I’d LOVE to know if there is any document for teachers, from AP or otherwise, that clarifies this better that maybe I missed. Either way, here goes.
Here is the explanation for what is required for algorithms (2c) and abstractions (2d) from the performance task sheet:
2c. Capture and paste a program code segment that implements an algorithm
(marked with an oval in section 3 below) and that is fundamental for your
program to achieve its intended purpose. This code segment must be an
algorithm you developed individually on your own, must include two or more
algorithms, and must integrate mathematical and/or logical concepts. Describe
how each algorithm within your selected algorithm functions independently,
as well as in combination with others, to form a new algorithm that helps to
achieve the intended purpose of the program. (Must not exceed 200 words)
2d. Capture and paste a program code segment that contains an abstraction you
developed individually on your own (marked with a rectangle in section 3
below). This abstraction must integrate mathematical and logical concepts.
Explain how your abstraction helped manage the complexity of your program.
I won’t paste the scoring guidelines for those parts here because they are long, but I read through all of that document and I’m not sure that they answer the questions that I have either, so here goes.
MY QUESTIONS FOR BOTH:
-
What exactly is being counted as a mathematical concept? Is there an example list anywhere? Sometimes my students ask me, for instance, if incrementing a variable counts as math, and I’m not sure if that counts. To ME it’s clearly math, if very basic, but I’m not sure what the standards are here.
-
What exactly is being counted as a logical concept? Is there an example list anywhere? If been assuming if statements, loops, etc. but I’m not sure what the standards are here either.
-
This feels kind of obvious, but the same code could theoretically count for both of these, right? Like, they don’t have to be two distinct chunks of code?
MY QUESTIONS FOR ALGORITHMS (2c):
-
How exactly is algorithm being defined? Is it just essentially anything that completes some definable task? Is there an example list anywhere?
-
Does “must integrate mathematical and/or logical” mean that they only need one or the other? (That’s how it clearly reads to me, but I want to be sure this is what AP intends.)
-
“Describe how each algorithm within your selected algorithm functions independently, as well as in combination with others, to form a new algorithm that helps to achieve the intended purpose of the program.” What exactly does this mean? I feel like I kind of get it, but I’m struggling to figure out how to put it into clear language for my students. Each algorithm needs to be some specific task on its own that can be explained independently, but also needs to work together with the others to some larger goal?
MY QUESTIONS FOR ABSTRACTIONS (2d):
-
How exactly is abstraction being defined? Is it just essentially anything that simplifies a task? Is there an example list anywhere? If I tell them “pretty much any function you create to simplify your code counts” is that accurate?
-
Does “must integrate mathematical and logical” mean that they need at least one of each? (Again, that’s how it clearly reads to me, but I want to be sure this is what AP intends.)
-
What exactly does managing the complexity of the program mean? Is there an example list anywhere? In our Code.Org curriculum managing complexity includes things as simple as “choosing a name that helps explain what the code does” but is that enough to get the point here, or does the code itself have to be something that would, for instance, be duplicated otherwise if it wasn’t contained in its own function that could easily be called or something like that?
Sorry for throwing so many questions out there at once, but any answers to any of these, especially if they include AP sources, would be VERY helpful, I’m sure not just to me but to a lot of people.
Thanks!