I am not sure if TB is even the right tool for this project. But I am trying to construct a gradebook within TB. Each note is a student record with their personal data and attributes for each assignment, exam, project scores. There are around 15 assignment scores, 3 exam scores, and 1 project score. The part that I am stuck with is creating an attribute that will add the scores of each category. Do I create an attribute that =$A01+$A02+ … +$A15 or is there function that will do this. Most of the functions I see are computations across notes. This grade book is within a note.
Yes it sounds like you need to sum the values of $A01 through $A15 in the fashion you describe:
$ScoreTotal = $A01+$A02+ … +$A15;
There may be ways to parameterise that but until things like the number of tests it settled, I’d hand code for now. Tinderbox is very forgiving of reworking such code later on allowing you to formalise as you go rather than have to work-out everything else.
Another approach might be to make a child note per test, and store the test’s score in a Number type attribute e.g. $TestScore; perhaps you might also note the date of the test—you can use the built-in . Now the parent note can easily sum all scores without needing to know how many tests there are:
$ScoreTotal = sum(children,$TestScore);
Want a list of all the individual scores from the same selection?
$MyList = collect(children,$TestScore);
You could do something like:
This would be a rule for the note — perhaps a rule inherited from the student prototype.
Here is a sample file you might try.
My strategy is to have a unique note for each assignment for each student. That way you can add comments to your grading effort. Be sure to check out the prototypes and their Edicts. If you have any questions, let me know.
TBX L - Simple Gradebook.tbx (163.3 KB)
Ya, I personal prefer this approach. The prototype and edit automates the note naming and grade summations. Also, you’ll then have room to record your notes or observations on each assignment. Building off this you could tie in a rubric and we could create export reports that could be shared with the students. You could then run reports on each individual assignment across students as well. Finally, you could create separate notes then define each assignment and link them to these grading notes. Over time you could track how students do across classes.
@philsche, see sample above, maybe useful for you.
If more notes feels like bloat, it is actually the reverse. Tinderbox is most fleet of foot with small notes rather than large. Your original concept, I should add, of putting the score data in an attribute was on the money, as was a willingness to create user attributes as needed. There is rarely one right way.
The many-note approach reflects a different aspect of the task. Placing data like scores in attributes makes them addressable (an important conceptual step). The next part is addressing that addressable data, which is where the available action code methods may guide our design.
A pivot from data in one note to same data in many child notes also shows the flexible nature of the app. Sure there is some work (which gets easier as you learn the app) in re-structuring the data. But, compared to many other apps, even having this option is a big win.
Thanks, @satikusala I used to do something like this. I used weighted categories so I used rules in the student notes to calculate the three or four (depending on the class) category scores then calculated a total course grade by multiplying each category by its weight and adding the adjusted category scores much like what you, @mwra, and @eastgate suggested. I abandoned the grade book since I can use a grade book in our course management system (CMS) that gives students continuous and instantaneous feedback. But, the Tinderbox grade book did work well, while I used it. To archive the grades the CMS will output the grades as a CSV file that I import to Tinderbox at the end of the semester.