13

We are testing out the idea of hosting coding challenges on Stack Overflow. Feedback on the general concept, and on the first challenge specifically, are being collected on the original meta post.

Please use this post to provide feedback on the second challenge. General feedback about Coding Challenges, and how it could be improved, is also welcome.

10 Answers 10

10

First off, I'd like to say that I find this challenge much more entertaining than the previous one, and that I'm super glad you decided to give us two weeks instead of one for it.

I know feedback is often negative, but efforts need to be pointed out, too! Kudos to y'all for listening to the community!

Some more feedback, though.

Interpretation problems

If you have chosen a board with very limited possible states (like tic-tac-toe) you can use sequential board states.

Should I understand that if the board I've chosen doesn't have very limited possible states, I can't use sequential board states? Is this a hard requirement?

How many possible board states would you consider "very limited"?

Your entry is not permitted to be written, in full or in part, by AI. AI assistance with coding or debugging is permitted if it is disclosed in your entry and the initial code is wholly your own.

I'm not sure I understand: "Your entry is not permitted to be written, in full or in part, by AI." (emphasises mine), meaning essentially that no code in my entry can come from an AI, even if it's just a small part of my codebase.

But, "AI assistance with coding or debugging is permitted" (emphasises mine), so I am allowed to have some of my code written by AI.

Wait, so am I allowed to use AI-written code or not? Don't get me wrong, I'm NEVER gonna use AI to code, but I wouldn't be surprised if I wasn't the only one to be confused by these two sentences that contradict each other.

What I would have done differently

The board state does not need to be a board state that is legal in the game you have chosen.

This is the only part of the challenge that I find a disappointing. Having to make the board state legal would have played a huge part into making this challenge interesting in my opinion, especially with the extended deadline.

There's 10 entries already as of writing, though, so it's too late to change that, but for future reference: this kind of criteria can be interesting.

General feedback

General feedback about Coding Challenges, and how it could be improved, is also welcome.

I'm confused by the "awards" given when challenges end. Challenge #1 claims awards have been given to the winners.

When I hear "award" on SO, I'm thinking about a badge, or rep, or anything really that you can find on someone's profile that show they legitimately won something.

In reality though, the "award" here is getting a nice title in the challenge's updated description. While it was agreed that no reputation would be given during this beta, badges were still mentionned. I'd suggest to either give (maybe temporary) badges, or some kind of icon (similarly to the trophy icon for big contributors to collectives), or to reformulate this from "awards" to some word that doesn't usually imply that something was given.

4
  • 2
    I agree with the valid board state thing. There are a few submissions that are just a grid using the alphabet of the game they want to encode to (Sudoku, tic-tac-toe, chess, etc.). This allows for some pretty arbitrary and near-trivial submissions. Commented Jun 10 at 12:55
  • @RedStoneMatt Thanks for flagging that this wasn't answered in the other comment thread. You cannot use AI to write your code but you can use AI assistance in debugging. We tried to make the text much clearer in this challenge than the last but there's always room for improvement! Commented Jun 13 at 14:42
  • Same on board state. It’s not just a technical thing, it’s tradecraft—a game in an invalid state will make people pay attention, the opposite of what you want when being tricky. Commented Jun 14 at 14:07
  • @kristinalustig "You cannot use AI to write your code but you can use AI assistance in debugging" Okay, so why does the Challenge #3 post say "AI assistance with coding or debugging is permitted" again, even though it is established that the entry (meaning, the code) can't be written, even in part, by AI? If AI assists you with coding, it means that your code is in part written by AI. The sentence still contradicts itself. Commented Jun 23 at 14:50
10

I submitted an answer using Conway's Game of Life. I could not submit what I wanted to originally as when I hit "Add", it responded with either the "Post must be less than 30000" message or then when I shortened it to the bare bones, "This looks like spam." As a result, I had to split the submission into a main post and then 2 replies (because the whole writeup without code apparently also looks like spam). I understand why you wouldn't want me to know what exactly triggers an anti-spam guard. However, maybe here are a few potential heuristics for you to fine tune:

  • The text representation of the program (RLE file) and alternatives look like a wall of unreadable text with few unique characters.
  • The write-up was long and required a lot of explanation and reference links.

Both of these naturally follow from programming with things that aren't text-based programming languages. I really don't feel good about just linking to a gist or repo for the same reason I have a problem with link-only-answers on the main site.

It's not exactly a conventional program, so I get it if this it's considered too small an edge case to fix. It was annoying to have this blocked, though, so I thought I'd mention it.

I also do have to wonder about whether the chances of getting spam are nearly as high on these as opposed to Discussions. Maybe it's worth relaxing some of these restrictions. E.g. the ability to add images, or at least upload from the editor and link to save vertical space, would also be nice on a challenge like this one where a game board is more readily understood visually.

Also, this challenge was way more interesting than the last one. Thanks.

2
  • 4
    "I really don't feel good about just linking to a gist or repo". I mostly agree, even though I did it for one of my solutions, since it involves something like 200mb of data. I guess the community will need to decide: Do we allow such links, or just accept "code must fit in textbox" as a creative and design limitation? Commented Jun 6 at 19:14
  • 1
    First has the same problem, and after reducing to <30k charars, "This looks like spam.". I've written a ton of math explanations & formulas, redirected to many other SE answers, questions, and external references, but "This looks like spam.". The filter is clearly broken, at least some criterias that trigger it should be disclosed. Commented Jun 10 at 12:48
9

I enjoyed the challenge, but I want to mention two things:

  • I noticed that when you write a solution post, you don't see any preview.
  • Also, there seems to be no syntax highlighting even when code blocks start with a language hint.
2
  • 3
    I guess these are limitations from recycling Discussions. Commented Jun 5 at 11:17
  • I think the "rich text" mode was intended as the "preview", but I also don't really like that. But yeah, syntax highlighting where the goal is to submit code seems like a pretty basic feature that should be there. Commented Jun 6 at 14:31
7

I dislike the general concept of hosting code challenges on SO, so my main feedback would be to get rid of that experiment. With that out of the way, here's some specific criticism of the current challenge:

  • I would expect a "code challenge" to focus on, well, writing code. The challenge here is about steganography, hiding a message in a board game. At first glance, the primary goal of this challenge is to invent a clever way to map the state of a board game to a character set, so basically creating a mapping or algorithm for building a state from a message and reading a message from a state. All of that could be done in plain english and it's unclear why any code would be required at all, or what role the code should fulfill specifically.
  • As people can choose any board game and any encoding, the solution space seems pretty big, which means comparing submissions to others is close to impossible. You acknowledge that your current way of simply counting upvotes to determine the best solutions is not good, but for a challenge this broad, you will never be able to find an objective way of judging.
  • As you don't exclude scrabble, I forsee 275897823 entries with some variety of "simply write the message on a scrabble board", maybe in rot13 if someone is clever. There are also various other games which allow for trivial solutions (e.g. a 6 bit encoding in connect four). I don't see anything for weeding out trivial or troll submissions, which means you might get flooded in them and interesting submissions might get lost in the noise.
1
  • Agree wholeheartedly on the first two points - This is very much not a code problem, just one that can be implemented in code Commented Jun 16 at 18:12
4

What character set is the domain for challenge 2? The larger the character set, the more states a solution needs to be able to support.

7
  • 11
    Our intent was to keep it more open-ended so that people could approach it with as much simplicity or complexity as they want (like, just doing 26 characters, for example, vs supporting some much larger character set). So, there is no particular guidance for character set, you can choose what makes the most sense for your solution. Commented Jun 4 at 16:44
  • 6
    submission: "for the nothing game. there is no board game. it encodes every possible 8-character-long string in the character set of size 1". Commented Jun 4 at 16:56
  • 4
    Scrabble would probably work well. Commented Jun 4 at 18:13
  • I mean, if my answer got the "technically correct" award for last time, I think you might have a shot with that. Commented Jun 6 at 14:32
  • @NoDataDumpNoContribution, except there is an inherent limit to how many As, Bs, Cs, ..., Qs, ..., and Zs there can be on a valid Scrabble board. I'm not sure the challenge designers thought of that, though. Commented Jun 8 at 3:45
  • 2
    @NoDataDumpNoContribution: Your comment, for whatever reason, kicked of a chain of thought that lead to my Scrabble solution. Commented Jun 9 at 0:16
  • @Nanigashi from the challenge rules: "The board state does not need to be a board state that is legal in the game you have chosen". So it should be fine to use scrabble letters more often than allowed in the scrabble rules. Furthermore, I don't see any rule that defines consistency of game pieces etc so technically nothing disallows adding scrabble pieces to literally any other board game and writing the message with them (as in "my solution encodes a message on a monopoly board by placing letters from scrabble on the board"). Commented Jun 12 at 15:58
3

It will be nice for this challenge to enable us to include photos in the post. My solution encrypts using a Rubik's cube and it is hard to visualize without the colors.

2
  • While I agree having inline images would be preferable for most of the solutions presented here, you could make some use of emoji to visualize the cube Commented Jun 12 at 18:09
  • I agree it would be nice but as long as they don't have it, simply upload images somewhere and link to there. Commented Jun 13 at 7:27
3

Please state up-front in the challenge body next time if images aren't allowed. I chose an extremely creative interpretation of the challenge that depends on minute details in the image. No, it's impossible to visualize without images because it's designed to be completely independent of the textual board state. Now there is only irrelevant information shown:

current post without images but only with link captioned with irrelevant details

It only uses relative distortions and positions, so it works equally well with any other board state and can't be visualized with text.

original image

The introduction was originally going to catch peoples' attention by being unique, and now it just looks like a wall of text.

1
3

First of all I have to say that I really like the idea of the code challenges and this time it's really more interesting and entertaining than the first one.

My main point of criticism is the voting system. It's so hard and time consuming to look through all of the submissions choosing one to vote on.

It might be better that the SO staff is doing a preselection first after the deadline ends. Maybe the ten best submissions in staffs opinion but without revealing the staffs no. one choice.

The voting itself should only be possible after the staffs preselection is published.

I ran into another issue that my code was too long to post it in one go. Fortunately I could simply cut off my comments part at the beginning of the code and post it separately without breaking the code itself. Maybe it should be a general challenge rule that the code length must be 30k chars maximum.

2

"Cipher" and "encode" are not generic terms without specific meaning.

This challenge sometimes uses "cipher" and sometimes uses "encode" to describe the task. Encoding is a one-to-one mapping using a codebook, so the confidentiality of the message depends on keeping the codebook (i.e., the algorithm for computer encoding) secret. Encipherment scrambles the message using a key, which is usually shared out-of-band (i.e., not as part of the message), so the algorithm is public and the key is secret.

The challenge says nothing about a key. Is the challenge intended to include or exclude the use of pre-shared keys?

If there is no pre-shared key, then "inviting other users to crack" the so-called "cipher" amounts to reverse engineering the algorithm (because it's just a codebook). Is that the intent?

For example, DES and AES are ciphers. ASCII and Base64 are codes.

In composing this challenge, it would probably have been worthwhile to ask crypto.SE for suggestions to update/clarify the language. Meanwhile, what is the intent?

14
  • 1
    "cipher" & "encode" are generic terms with specific meanings in specific contexts. Eg Caesar cipher. Commented Jun 8 at 4:44
  • @philipxy, I'm extremely familiar with the difference between a cipher and a code. My point is that the challenge appears not to be. Therefore I have a question. Commented Jun 8 at 4:50
  • Your comment is already contradicted by my preceding comment. Eg en.wikipedia.org/wiki/Cipher "To encipher or encode is to". (Of course, elsewhere Wikipedia also contradicts itself.) Commented Jun 8 at 4:56
  • @philipxy, indeed, your comment and my comment are not compatible. I'll agree to that. Commented Jun 8 at 5:53
  • 1
    I also noticed this. The challenge seems to be about steganography, not cryptography. Trying to keep the encoding secret and calling that a "key" sounds like a violation of Kerckhoffs's principle Commented Jun 10 at 14:22
  • @Aemyl I'm not sure I'd put steganography into the same camp as encoding either, though one may overlap with the other a bit. But, yeah, now that you say this, I do agree that knowledge of the cipher algorithm should not compromise a message if it's truly a cipher system. I guess the challenge really is equating the two, and the vast majority of the submissions seem to just be encodings (some are still really fun, though). FWIW, my Conway's Game of Life submission does in fact perform key-based crypto, so some of us were thinking about it. Commented Jun 11 at 19:03
  • @GeneralGrievance, if cryptography = ciphers + codes, then steganography would be encoding, although the purpose is to conceal the fact that communication is taking place. A picture of a kitten with a ball of yarn just looks like a picture of a kitten with a ball of yarn, whereas a text file with a PNG header looks like noise. But yeah, most people are (probably) just assuming it's an encoding challenge. (Staff seem disinclined to answer my questions, so I haven't submitted anything for the challenge, so I have to guess how people are interpreting it.) Commented Jun 11 at 21:39
  • Yeah, I can confirm that most people are interpreting it as encoding, and a lot of people are using the same popular game boards. If you wanted to make one that was a true cipher system, it would be unique, but you'll probably want to ensure it stands out among the other ones using your choice of board. Also, I realized I was wrong about encoding being viable encryption. There's a difference between having a substitution key that happens to be ASCII and using ASCII to encode. The latter is baked into the algorithm, and with the former, knowledge of the algorithm does not reveal the key. Oops. Commented Jun 12 at 13:25
  • Thanks for the feedback. Honestly, I used the terms pretty generically as I was coming at it from a ciphers-as-puzzles perspective (like, a Caesar cipher technically has a key but doesn't really require it for it to be deciphered). Apologies for creating confusion in the challenge text and if you have specific questions about how you should be interpreting the challenge so that you can submit properly, please let me know and I can try to help! Commented Jun 12 at 14:24
  • @kristinalustig Well, w.r.t. the Caesar Cipher thing, I'm not sure it's a great example. I don't think it's really correct to say that it doesn't "require" a key. It's just that the key is extremely easy to guess. Even if you know that it's a Caesar Cipher, it does not tell you immediately which shift value is being used. A person with a key will decipher much quicker than without, which is even what a lot of current systems count on. Commented Jun 12 at 14:46
  • @GeneralGrievance yeah, that was what I meant by "doesn't really require". In any case, I'm not sure that my playing it fast and loose with ciphers vs encoding in the puzzle description has caused very much confusion w/r/t what folks can submit for the challenge, but if it has, I'm happy to clarify however I can! The original draft of the challenge did focus much more on steganography but I figured that was too niche which was why I broadened it. Commented Jun 12 at 15:16
  • @kristinalustig "if you have specific questions about how you should be interpreting the challenge so that you can submit properly, please let me know and I can try to help!": I have asked about the AI-related paragraph in another answer, but I got no response. Also, may answers that are not about interpretation but also about practical problems with the challenge's system (Like General Grievance's) be at least acknowledged and if possible taken care of? I hoped they would have been before the challenge's end got too close, but they were all ignored even though they're the most important... Commented Jun 12 at 20:41
  • @kristinalustig, the specific question: "Is the challenge intended to include or exclude the use of pre-shared keys?" Other people appear to be interpreting the challenge to mean that they are excluded. Keys, if they are part of the algorithm, are hard-coded into the algorithm. (i.e., it's purely an encoding challenge) Commented Jun 13 at 4:57
  • @Nanigashi In general, our philosophy was to make the challenge as open-ended as possible while still focusing it around a specific goal (in order to make it as inclusive as possible). It's possible that we want to reduce that interpretability for future challenges, but for now, as long as the entries follow the prompt as given, they are valid. I definitely hear the feedback that there's something to be said for constraints breeding creativity. So to answer your question, challenge entries can either include or exclude pre-shared keys. Commented Jun 13 at 14:39
0

Can we use multiple board-state snapshots of the same type of game (for example: chess) to encode the message? Or, do we have to use a single-snapshot of the board-state alone?

The rules stipulated that the board-state does not have to be a legal state as per the rules of the game. If I were to use chess, does that mean I can use 64 pieces at max of any of the two colors, instead of just 16 + 16 = 32?

2
  • The challenge is pretty open ended, you can interpret it in whatever way makes sense to you. All entries will be reviewed, and you won't be disqualified for doing something unconventional. Commented Jun 11 at 16:08
  • 2
    There are a lot of submissions using illegal states (especially chess, go, tic-tac-toe) as it is. While not disallowed, it's going to be really hard to sell yet another one as unique, especially if it's just a mess of pieces on the board. Commented Jun 11 at 18:14

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.