JavaS Course - Palindrome should be after Date Formatter

Just wanted to leave a suggestion about the main curriculum. Let me know if this is the right place to post a suggestion (it’s not really clear).

The Palindrome Checker project should come after the Date Formatter. Right now, the latter is right after the former. The reason being, you get vital information necessary for completing Palindrome in Date Formatter. That is, how to split, reverse, and join a string. I had to google that info in order to complete Palindrome. I see no reason why the order should remain as it currently is.

You’re also missing other info that you need to complete the Palindrome project. That is, certain regex operators. You get taught some regex operators in the Music Builder lesson, but not all the ones you need in Palindrome. Either Music Builder should include this info, or if another lesson has it, move that prior to Palindrome.

You don’t need these to check if a string is a palindrome.

You don’t need regex either.

As true as that is, I’m betting, most, or a lot of solutions use the very methods that is suggested should be taught before the project. Including the demo (at least the reverse/join). Not sure about the regex, what is it that hasn’t been taught yet?

I feel like the expected solution isn’t a plain looped string compare, or at least not intentionally so, even if it can be solved without the help from the methods in question. It might be intentional that it wasn’t move because it can be solved as such, but it doesn’t feel super intentional.

Personally, I would prefer if reverse/join had been taught before this challenge.


It is also worth noting that for the old curriculum this project is at the end after all the sections, so there you would have been taught everything in the JS sections first. Or at least had the option to learn more first.

1 Like

The cleanest solution would be with a split, filter, and join, yeah. Though, I sorta suspect that one issue we see here is that people go look up how other folks have solved palindrome problems instead of developing their own code and then they see others using split, filter, and join and assume (like OP) that those are mandatory to solve this project (which they are not). Since most of our new curriculum baby-steps people through projects instead of giving them room to explore like the old curriculum, I worry that this issue may be more common with the new curriculum than the old.

1 Like

I 100% agree with your assessment. I don’t see how anyone would know they were “missing” the methods if they hadn’t looked it up. In fact, they would solve or try to solve it using what they had been taught so far.

But as said, it doesn’t feel intentional, and the challenge could be a reinforcement opportunity for the suggested techniques of solving this.

Yeah, this project is probably best after string manipulation methods are taught.

Not sure how to best handle the other half though

Of course there are other ways. But split, reverse, and join is by far the simplest. When looking for ways to reverse a string, I found other methods. But they were more complicated and also had not been taught before.

What was needed in the regex was a way of identifying non-alphanumeric characters. I did this with this code /[^a-z\d]/ig The part which wasn’t taught was this symbol ^ (don’t know what it’s called), which is an excluder. You could also probably make a regex without an excluder to specifically find non-alphanumeric characters, but the syntax for that was not taught either.

A basic for loop is the simplist IMHO.

The word “simple” is a loaded word in coding. People use it to mean different things.

Simple as in using basic methods, sure a loop is simple. Personally, I think using the string/array methods is “simpler” if we are talking about the code being readable and declarative. You barely have to read the code to know what is happening because of the method names.


I think knowing about ^ with a character class would make sense, but again, it isn’t strictly needed I suppose. BTW, MDN has ^ with a character class listed as a “complement class”.

It is not that we want to present a problem you can’t solve with what has been taught, but it is somewhat expected that the camper does a bit of leg work themselves at times.


@totaleclipse BTW, if you want, you can open an issue for it and see what people have to say.

1 Like

Is that the best place to put feedback (where the site developers would have highest likelihood of seeing it and possibly taking action)?
I currently don’t have a gitHub account and am not very familiar with the site. If it is indeed the best place for feedback, I’ll strongly consider posting there.

Really interesting discussion here.

I like the idea of people completing this different ways. For example

  • some people complete it with basic loops
  • some people learn to use split/reverse/join through their own research

I think if someone looks up those methods and learns them before they’ve been taught in the curriculum it’s a great and totally valid way to learn.

Regarding this problem:

Maybe there could be be a brief note saying this can be completed using basic loops only. Other string methods, regex or any other approach is permissible but not required.

1 Like

yes, as that is where developing is coordinated

Okay, thanks. I’ll post there in the future, once I explore more of the curriculum. That will give me more knowledge, so I can build a better argument.

It really isn’t scary or anything.

You will want a GitHub account anyway and posting an issue is just like using the forum. If you open an issue you can also link to this forum thread to give more context.

The fCC repo is one big “playground” for beginners. We are pretty friendly and won’t bite. Give it a go when you feel up to it.

1 Like

Ok I will do so in the near future.