Some thoughts on the provision of future problems

Back to General discussions forum

CSFPython     2021-11-11 15:19:03

It is always interesting to see the progress that new members make when they first discover the site. You can feel their enthusiasm as they rapidly add to the number of problems solved. Unfortunately I think that too many of them soon reach a point at which they decide that the problems are getting too difficult. They then lose interest and stop coming back to the site. This is a real shame because of all that the site has to offer.

I am sure that many more people would regularly visit the site if they had an expectation of new problems which they would have a good chance of solving. I recognise the conflict between the addition of new problems and the preservation of standards with the two certificates on offer. I think that the certificate system is one of the best elements of the site and would not want to see the certificates degraded in any way. However, there are obvious ways of adding new problems of varying standards without any degradation of the certificates.

One method of achieving this would be to state that only the first 240 problems can have their solutions count towards a certificate. I have chosen 240 as this is the current number of problems but any reasonable choice of the maximum problem number would do instead.

Alternatively, new problems could be categorised such that problems not reaching the required difficulty level for a certificate could be clearly marked as such. However, this method is less straightforward than the previous approach. I am sure that there are probably several other compromises which could be considered as alternatives.

If people are encouraged to keep on returning to the site because of the likelihood of amenable new problems, they are probably also more likely to try some of the existing problems that they haven’t yet been able to do. The issue of encouraging people to return to the site applies right through the difficulty levels. Even for those who have achieved certificate level it can be disheartening to think that there are no new problems coming along that are within their grasp. The most recent 10 problems have just 64 solutions between them, an average of 6 or 7 per problem and, not surprisingly, it is the same small group of solvers for most of them. The most challenging problems are great and I am sure that they are really popular with the small group of members who can solve them. I just think that it would be so much better if there was a good mix of difficulty levels within the new problems. This would bring more people back to check them out, which in turn would lead to more people tackling some of the other problems.

It might also help to have a more convenient way for people to check on new problems. One possibility is to have a new menu option for the most recent 10 problems. These would be listed in order of newness with a small amount of useful additional information. The current number of solvers, together with a very brief introduction would probably be appropriate. The most important aspect of the introduction would be to give an indication of the difficulty level of the problem. This is something that is not easy to judge but some indication is more helpful than none. If some particular skill or area of knowledge is needed then that also could be included here. I don’t think that information like this gives too much away but it would help someone to judge whether or not they are likely to be able to do the problem. It might also encourage them to explore the area of specialist knowledge deemed appropriate for the problem. I realise that some of this is information is already provided in the problem description but I think a most recent 10 problems summary could be quite useful.

Next there is the issue of providing a succession of new problems. It certainly seems to me that this is far too much for Rodion to do without any help; although he seems to have done a remarkable job so far. It is clear that a number of the current members (myself included) are happy to provide fairly detailed ideas for new problems. I wonder if it would be worth having a new forum section specifically for ideas for new problems. Members could put their suggestions here (Ideally with some detail) and this can then be commented on and possibly refined by other members through the forum. Ultimately the accepted suggestions would get the appropriate makeover in Rodion’s individual style.

Rodion (admin)     2021-11-12 23:05:02
User avatar

Dear Clive, Hi and thanks for this post!

Sorry for I have noticed it just now - but these are precisely thoughts on which I myself spent a lot of pondering.

I think I re-read this in the morning and try to share whether I have ideas/answers or no...

Rodion (admin)     2021-11-13 13:40:15
User avatar

Well, here am I again :)

Thanks once more for this detailed analysis of situation - it's either exact or close. Perhaps I should try describing it to myself in written form some time ago...

About marking problems which count to certification and which do not
Not sure, but probably this didn't come to me in this form at least. I considered splitting tasks to categories with dedicated awards for each (especially when trying to invent OpenAbbey, but it never sounded clear enough.

This part is pretty doable and easy, I think. For example problem #240 probably should be excluded one of the first as Quandray demonstrated there exist ready cracking programs. There could be minor challenges to solve (perhaps, filtering and pagination of tasks list at some point etc).

Perhaps it would be better to provide new version of certificate (for marked problems) and maintain older active for some period (for problems below #240). New certificate may require less problems but with exclusion of too many too simple and similar ones.

One thing we probably may stop updating on this way - is inventing new "ranks". But probably it's not great loss as after Bishop they are less or more confusing anyway.

On list of recently added problems / notifications
Surprisingly we had such a list (on a front page) - I just removed it at some point when I found that no problems were added during few years (perhaps somewhere between 2015-2018. Surely easy to return it.

But also there is email subscription - I revived it recently - not sure whether it works :)

About user participation in inventing new problems
I suspect that current form of forum is not extremely convenient :) And due to privacy concerns I never tried to add notifications to it. So not sure if the forum section shall help (I even thought on contrary we should dispense with sections as they are bit confusing too).

But one of curious options is to provide a kind of place where user can draft problem statement and even checker (though we'll need to make checkers working in Python and Perl additionally, I guess) - and show it to others.

(idea of "marked" problems system makes this more adequate as user's problems can be published as unmarked initially and then at some point could be added to certification path)


Sorry if I missed something, and please tell at once. I think I may think just a bit more and start implementing such improvements without much delay.

Also if other colleagues by chance visit this discussion - please share your opinions if any :)

CSFPython     2021-11-13 15:09:01

Rodion, thanks for the interesting and detailed response.

If a cut-off of the first N problems is used for the certificate then one possibility would be to set N at the number of problems that existed when the present certificates were introduced. Some notification of this change would be needed for people who are currently close to completion but this method would be a simple way of retaining the original difficulty level associated with the certificates.

If you move to new certificates based on a list of designated problems then you have the definite advantage of ensuring that only suitable problems are used. I agree with the removal of the very easy ones and others that might encourage cheating. I assume that you would require only a fixed number of these designated problems to be solved in order to gain the certificate. That would include a reasonable level of choice for the person solving them. However, if the problems are in categories, some additional restrictions can be imposed such as “problems must be solved from at least X categories”. Even with this system you have the difficulty associated with adding new designated problems. This could be done by setting the target number of problems to be a fixed proportion of the designated problems rather than a fixed number of them. Alternatively, if the designated problems are chosen with sufficient care there would be no need to add to them. All new problems would not count towards certificates.

With even a small number of members interested in suggesting new problems it should be possible to provide them with sufficient frequency to keep people coming back to the site. Ideally a rate of one new problem every two weeks would be a good target to aim for.

I think that the existing forum structure (with a dedicated section) is a good starting point for a discussion of new problem ideas. This makes it easy for any of the members to join in. There is no need for privacy because the details being discussed are likely to be the same details which would eventually appear in the final problem description. The discussions can easily include sample data and results so that those taking part can try out the ideas if they wish to do so. They would still need to solve the problem with new data at a later stage if it becomes accepted. The only need for privacy comes in when there is a need to produce problem checkers or generators. These would only be needed at a late stage in problem development and e-mail should suffice for this purpose.

I agree with you on the point of not creating any more new ranks, at least not for some time. There is certainly no point in adding a new rank after every 20 new problems. A better yardstick might be to wait until you have 50 members all with the current highest rank before creating a new one. It is likely to be quite some time before you get to that position!

Hopefully some of the other members will add their own valuable ideas to this discussion.

Quandray     2021-11-13 16:06:03
User avatar

The email subscription (for new problems) works for me.

Rodion (admin)     2021-11-13 17:50:19
User avatar

However, if the problems are in categories

No, I guess this is unnecessary complication, after your suggestion. After thinking a bit more, I think we shall utilize existing system of "tags" so even less technical work is needed. E.g. it may look like this:

  • legacy certificate: for solving 145 out of first 239 problems
  • new cert type #1: for solving, say, 120 problems with cert tag
  • new cert type #2: for solving, say, 50 problems of the least solved, marked with cert-top tag

I suppose 170-200 problems could be marked with cert (excluding a handful of too trivial ones) and 55-60 problems could have cert-top tag. This set of tasks could be updated bit by bit as the time passes (adding tag to newer tasks and removing from some older).

Surely some visualization in the task list and user's page should be added to make goals more obvious.

Does it sould just enough? Feel free to object or suggest anything else!

UPD: Grae, thanks for confirmation about e-mails!

CSFPython     2021-11-13 19:06:16

I like the suggestions for new certificates.

I have signed up to the e-mail subscription but don’t understand why you would want to take discussions away from the main forum, making it less likely that other people would see them and hence preventing them from making a contribution.

In view of my previous comments I feel inclined to suggest a new problem and would like to start with a suggestion for a fairly easy one. However, I will wait until you are ready to accept new suggestions first. I am also somewhat confused as to where you would want those suggestions to be made.

Rodion (admin)     2021-11-13 19:19:35
User avatar

why you would want to take discussions away from the main forum

no, most probably I expressed my idea so poorly that it went misunderstood :)

It's quite all right to suggest and discuss problem ideas in the forum - you are welcome to do it immediately or any time you like! it rather was meant that we may try to come up with some additional feature to help people in promoting/testing their problem ideas. E.g. to amend forum discussions, not to replace them. But surely it is a bit for future.

sorry for my confusing explanations!

Rodion (admin)     2021-11-14 11:54:28
User avatar

Page with certificates is updated - for now new achievement is called "Zealous Coder" and requires 120 problems out of 200 specially marked with c-1 tag. In the mail list such tasks are hinted with numbers (ids) in bold.

gardengnome     2021-11-27 08:55:24
User avatar

To encourage more community involvement, you could make contributing a new problem a requirement from a certain rank, e.g. stargazer. I wouldn't apply this rule retrospectively, i.e. everybody keeps their current rank, but if they wanted to move to the next rank then sharing a new problem becomes a must. And I would limit this to one new problem overall rather than one new problem per rank.

Right now there are ~140 stargazers, so that would have created 140 additional community-inspired problems (I know, quite a few of those have already shared their ideas.)

Rodion (admin)     2021-11-30 07:44:27
User avatar

Mathias, sorry for delay - I'd say this ideas of yours is good from one side, but somewhat severe from the other :)

It seems to me that when people are forced in some manner to produce some creative work, the quality may suffer... And since contributing problem relies partly on my accepting/implementing it, this could lead to situations when some problem is proposed but isn't added... and this may lead to unnecessary frustration :)

But I hope we'll be able to move on even as is... Just should add/improve the instruction for contributing problems according to our recent experience. And also am thinking about small set of problems on sql, just need to find a way to run test queries safely...

Please login and solve 5 problems to be able to post at forum