Format of name, input, and output unclear

!!! This topic is actually meant for the course C++ Challenges, but there is no category for that on this forum so I’m hijacking this one.

The problem with said course that I keep finding is that it is really unclear, or even impossible to know, how the coded functions should be called, what format the input and output should be, and everything around it. The user cannot know what everything should be until they run the correctness check and deduce from the generated errors what the right names, input, and output should be.
Some examples: the function to reverse a string was reverse_string(), I could guess that. The function to calculate the Hamming distance had to be called compute(), a word not present in the description. In my current challenge, where I need to count how many of each letter there are in a DNA sequence, it took me a fair while to understand that I should be using a class dna with some counting functions.
This does not help at all, and it makes the challenges really bothersome instead of fun and inviting (which a good course should be in my opinion).

Could someone take a look at it and improve on this aspect? Thanks in advance! :slight_smile:

Hi Simon,

Thanks for the feedback! The C++ challenges are designed to be completed using test-driven development. The instructions describe the challenge, but to begin coding your solution you should first run the task and view the Test Contents section to see what functions/namespaces/classes/methods are used so you can stub those out in your program. Once there are no longer any compiler errors in the test output you can begin working through the tests one-by-one until they are all passing.

I’ve updated the course description here with a note that the challenges should be completed using test-driven development. The process of reviewing the test contents and stubbing out the functions may not be the most exiting part, but hopefully that part doesn’t take too long and you can spend the majority of the time writing the logic to solve the challenges.