nor's blog

By nor, 15 months ago, In English

Firstly, the CF Catalog is a great feature that makes it much easier to learn topics by having a lot of educational content in the same place, so thanks MikeMirzayanov!

I was originally going to post this as a comment under the catalog announcement blog, but it became too large for a single comment, and it will probably need some more discussion.

I want to suggest the following improvements for the catalog (and initiate a discussion on how best to tackle these issues with the current version):

  1. Multiple topics per blog
  2. Blog submission for review

The reasons and detailed suggestions are as follows: $$$ $$$

Multiple topics per blog: Sometimes, a blog might not fit into just one category at a time. For example, consider the following blogs:

  1. This blog fits into both combinatorics and trees.
  2. This blog, even though it is in the NT section due to having a similarly named analog in NT, covers a wide range of combinatorial constructs.
  3. This blog fits into both probability and strings.
  4. This blog, even though it is in the geometry section due to solving problems using geometry, could have also been categorized by the applications it has.
  5. This blog is not just a geometry blog, it can be added to tools as well.
  6. This blog is in the segment tree section because it has a faster implementation, but it should also be in the C++ section because it is specific to C++.
  7. This blog is in the data structures section, but it should also be in some section that deals with permutations.
  8. This blog is only in the DP section, but should also be in the segment tree section, to be educational for people who are learning segment tree.
  9. This blog is correctly added into two sections, but the redundancy is a bit concerning.
  10. Recently, I was discussing about how to categorize this blog, and there were 6 different suggestions among the currently existing topics — combinatorics, data structures, abstract nonsense, number theory, graphs and strings. As a result, despite being a collection of a lot of major ideas concerned with that topic, it is still not in the catalog. I wonder how to categorize blogs that take a topic and try to collect some ideas around that topic. General idea based blogs are currently categorized under a general section under algorithms, and they suffer from the same issue, but to a lesser extent because they are kind of global.

The current solution seems to be to just add duplicate entries in different section, but that is not done for most of the above blogs (and might not be the first thought that comes to mind for a lot of people, who will probably settle for adding it into one section). My suggestion is using some sort of a community-assigned tag system (not the blog tag system) for this task, where a single blog can have multiple tags. This is similar to problem tags. Then, the filtering can be done by tags rather than displaying the whole tree at once.

Blog submission for review: The idea behind currently allowing only people whose maximum rating is $$$\ge 2400$$$ is to avoid spam and vandalism in the catalog. However, I think it is not optimal for the following two reasons:

  1. This gives the (somewhat thankless) task of finding and adding content to the catalog only to higher rated people, who are few in number, and IMO it is better to make the "finding" part of this task a larger community-sourced initiative.
  2. Sometimes, they might miss a lot of blogs that are good, or just because they have some issues like not being able to categorize the blog correctly and the fact that blog addition is publicly available, they might not want to make any mistakes and leave the addition of some blog to some other red.

My suggested solution that fixes both of these is to add another stage before blogs are added into the catalog. Sure, reds can directly add things to the catalog. The idea is to also allow people that are lower rated (but bounded below by, say, expert) to suggest additions to the catalog. Some kind of pull requests (implemented very simply as a simple blog suggestion with tags/topics) that can be viewed by people who can add stuff to the catalog should work this way.

This way, the issues are resolved as follows:

  1. Finding good content becomes more community-driven, and people who write educational blogs can suggest their own blogs, making the catalog more complete.
  2. If a red is unsure of which category to add a suggested blog to, the suggested tags can help them make a decision.
  3. If a red is unsure of which category to add a blog that they want to suggest, they can just suggest it as an addition to the catalog, and someone else can add it to the catalog.
  • Vote: I like it
  • +146
  • Vote: I do not like it

»
15 months ago, # |
Rev. 2   Vote: I like it +76 Vote: I do not like it

I think additionally, we should have the ability to collapse the folders, and open only one directory at a time. Currently it looks like we only have the option between collapsing all and expanding all.

Additionally, I think there should be a top level split between different levels of difficulty. I think a neat classification would be,

  • Beginner oriented

  • Competitor oriented

  • Advanced knowledge oriented

And if we can collapse and expand one folder at a time, a bit of redundancy might not be the worst thing.

  • »
    »
    15 months ago, # ^ |
      Vote: I like it +50 Vote: I do not like it

    Thanks for mentioning the difficulty-wise split. Somehow slipped my mind while I was writing the blog, but I think it's a very important feature to have.

    In my opinion, the redundancy issue is not just limited to viewing the catalog. When someone adds a blog to a category, they implicitly assume that there is meant to be a single category per blog (and moving previously added blogs to multiple categories takes a lot of operations). I think an explicit mention of the possibility of multiple tags will make it much better.

  • »
    »
    15 months ago, # ^ |
      Vote: I like it +26 Vote: I do not like it

    I would not put the difficulty as a top level distinction; rather, I would add a 3-star or 5-star difficulty rating to every problem and agree to generally order blogs within a category by the difficulty.

»
15 months ago, # |
  Vote: I like it +8 Vote: I do not like it

I kind of disagree with putting many tags or categories to a blog in most cases, i.e. I think a blog should not be in every category it kinda sorta relates to. A blog should be in a category if it really is about that thing the category talks about.

Compare this to problem tags: problems have multiple tags and some tags are kind of useless because somehow, people find a way to justify putting "dp", "binary search" and "constructive algorithms" on just about everything.

For example I would not put your blog under strings, graphs, number theory or data structures even though it does have some relation to those things.

  • »
    »
    15 months ago, # ^ |
    Rev. 2   Vote: I like it +45 Vote: I do not like it

    In that specific case, me neither. It really just talks about permutations, and it should have a single tag that signifies that. My main concern in this specific case was the fact that if there is still no consensus on such simple blogs, maybe there is something wrong with the categorization as it is now. Hence the part that says "I wonder how to categorize blogs that take a topic and try to collect some ideas around that topic. General idea based blogs are currently categorized under a general section under algorithms, and they suffer from the same issue, but to a lesser extent because they are kind of global."

    In the remaining cases, I think the concern is genuine, and the blogs really talk about more than one thing. For example, the blog on segment tree talks about how to do certain kinds of optimizations in C++ (not limited to segment trees), and including it in the section on segment tree only is a bit weird. Similarly, the Mobius inversion blog is more of a general idea in algebraic combinatorics, than just a generalization of something you see in NT (maybe it would make sense to remove it from NT and add it into some other specific category). And it is surprising that the blog on visualizing geometry is not in tools.

»
12 months ago, # |
Rev. 2   Vote: I like it +22 Vote: I do not like it

Bumping this, since the catalog seems to have had no activity for a couple of months, but there have been quite a few high quality blogs in this duration that could have been added. I think implementing the second suggestion would definitely help in this scenario.

In the meantime, one can go searching for educational blogs here.

Maybe it's just what I think, but adding features requested by the community should be given priority over features no one asked for.