OK, I finally passed this, and here is what’s confusing: If you fail, it indicates that your test failed in two ways. The first one for a failed grade, the 2nd for a successful grade.
Here’s the 2nd one:
2. Your function call of studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19], 100)
should return the following message: "Class average: 50.8. Your grade: A++. You passed the course."
.
“Your” function call?" I never made that function call; I never even met that function call. All that information came out of nowhere, so I thought I had to ‘fix’ my program to include it, which obscured my legitimate error and just gave me new errors to worry about.
(Note that my career was designing videogames, and then educational software: I learned that for people trying to solve problems or learn new things, extraneous data can seriously muddy the waters. This is sometimes intentional in adventure games, but is just counterproductive in educational software.)
As for ‘hidden data’, that’s something that the Norton ebooks do, testing your program with several possible inputs that you can’t anticipate, which is a good system for making your code robust. That’s how I interpreted: “You don’t have to type that function call yourself. The tests do it for you”.
Anyhow, I still believe this challenge needs some tinkering to strip away the confusing feedback. (And t wouldn’t hurt to reiterate in the bulleted tips that the function is just 'return’ing a text element, not logging it.)