Kattis problem grading system

As an aid to students looking for appropriate problems to solve, I have developed a rough grading system giving an indication of the level of background knowledge needed to solve a problem. This is often independent of problem difficulty: some low-difficulty problems are “easy” only if you only know the right (advanced) algorithm; conversely, some high-difficulty problems have tricky corner cases but can be successfully attacked by someone with only basic programming knowledge.

Each grade consists of a letter and a number, like B/2. Pluses and minuses are sometimes used to denote particularly tricky or easy problems within a certain level of background knowledge. For example, B+/0 would denote a problem which technically only requires knowledge from a Data Structures course but which a typical Data Structures student might find tricky.