Question about about pyramid project and general thoughts on new JS curriculum

hi all,

I noticed that the beta JS course attempts to teach for loop syntax before introducing conditional statements. Wouldn’t it make it easier to understand loops by first understanding conditional logic and its uses in code? I find this order to be off-putting even from my perspective as a has-been soft. dev, so I imagine newbies would too. Has this order found success so far?
I would also add that I have never come across a programming course or book that introduces loops ahead of conditionals. Teaching conditionals first can also lead us to seeing the need for loops.
My other thought is when teaching loops, we should really start with the simplest loop type available, which to me is a while loop, but I understand if there are other schools of thought on this.

Looking at the lesson here, it looks like conditions are taught at the same time as loops.

Here is step 30, which introduces conditions

Then the step before that talks about loops.

So it looks like the same time to me.
Not necessarily one before the other if that makes sense.

If we wanted to add lessons before current step 28 on conditions, then that would be possible. But the rest of the JS team would need to chime in before we start making changes

Here is the current step 28 talking about loops

yes step 28 is where the for loop intro starts but conditionals come sometime after (I didn’t confirm where so thanks for checking). I really find the intro of loops without any talk of conditionals to be off-putting (sorry to repeat my point but I feel it bears repeating).

Would be glad to hear from and discuss with the respective stakeholders for this.

edit: looking at lesson 30, I see it doesn’t actually teach conditional logic the way I meant above. Conditional logic for me is an if and if-then-else type statements and understanding booleans.

As to the question of why the for loop comes up first is because the campers are asked to build out the pyramid and the original prototype used a for loop for that.

Other courses are not using a project based approach, including our legacy course, so that is why conditionals were taught then loops in those other cases. But in this case, it looks like it was taught in this order because of how the project was structured.

If we do teach conditionals first, then there does need to be a step to follow that immediately applies what they learn to the actual project they are building. That is something to keep in mind.

Same goes for introducing the while loop before the for loop.
If we teach the while loop first, then step 28 and what follows would need to be refactored to use a while loop instead of a for loop

then it would need to be refactored to teach a for loop.

Yes, definitely worth keeping in mind the project approach but building pyramids in programming courses is actually quite common. Multiple methods of getting to the pyramid are taught including

1- learn how to make a pyramid manually by printing out 1, then 2 then 3 hashes for example to form a three row pyramid.

2- learn if statements and booleans in general

3- learn while loops and make a pyramid of #s with a while loop (perhaps it would be a flat pyramid on 2 sides versus a centered one here)

4- modify the while loop to print the pyramid with alternate characters depending on whether the row is even or odd (for eg use # if even and $ if odd)

5- learn for loops and create the pyramid again

Not sure if this type of progression would be possible. I am curious if people have been able to grasp for loops easily without it.

Yeah, I am not disagreeing with you.
I see where you are coming from.

You just wanted to know why it was structured this way, and I was providing more context on the choices made based on how the project was structured.

So I am not opposed to these changes. It is just important that everything gets ironed out and everyone is one board with a game plan since this would involve a lot of changes :+1:

1 Like

Thanks I appreciate your responses.
I guess my perspective is always from the ‘how is this helpful to someone learning’ versus ‘how does this align with the org’s pedagogy or goals’.

I also get how hard it is to make these courses (or at least, I get it theoretically as I have never created one) and I empathize with a need to get something out or else spend forever fine-tuning… :slight_smile: Since the JS course is in beta, I hope robust criticisms are still welcome. (scratch that, I know they are welcome so I’ll just say, I hope people are not too married to their hard-work so much so as to not want to change it much)

1 Like

“how does this help someone learn” and “whats the pedagogy here” are the same question :upside_down_face:

Was hoping no-one would notice that :slight_smile:
Okay, so what I meant was, the ‘pedagogy’ of using ‘project-based learning’ is not quite the response I was looking for. More needed to understand beyond that perspective.

Oh, I also question if putting the users through a bunch of step by step tutorials is the right call, but that is the direction the curriculum seems to be very set on.

Thank you, but keeping that discussion aside for a bit, what I was looking for originally was to understand why teach loops before conditionals. It just seems like a rough go.
(saying: it’s because this is a project and this project requires loops doesn’t work for me as we can get to the end goal of making a pyramid while still teaching conditionals first. I provide a rough progression of topics as an example a few replies ago as an example).

So this post provides the reasoning for the project based approach

To sum up, it was basically in response to how campers were going through the original curriculum and what they were struggling with at the time.

Other team members that were around for the beginning of this can probably provide more context since I wasn’t around during those early days. But that is basically the jest why the whole curriculum is shifting to this project based approach.

Oh, I know the reasoning. I just don’t think its actually working as we hoped. Students seem to be coming out the other end with worse skills than the old curriculum unfortunately. There’s less fiddling and exploration from the learners and more replication of a series of small tasks without a good grasp of the bigger picture.

1 Like

There are active PR’s and changes working on that.
And the addition of the review projects is helping with that too.

I think the project curriculum can work, it is just undergoing updates to address the core issues

as an aside: I was wondering if fCC has a way to track student’s learning success? Is it done for eg just by how many people can get certifications completed?

there are analytics setup to see how long people spend on certain steps.
We often look at that information to see where people are struggling the most on steps and how to improve the lessons

1 Like

I think we’re replicating the old problem from YouTube tutorials that fCC was originally trying to battle. I definitely agree that the new courses are getting better, but I think we still are fundamentally fighting how project/tutorials work. The individual steps are so fine grain that its super hard for a learner to see the big picture. And the way tutorial courses work, a student doesn’t need to see the big picture to pass the steps.

They were hard work on the students, but I think the old Algorithm Scripting sections did a really good job building those sort of intermediate to bigger picture skills for learners. And the learners asked more engaged and thoughtful questions about those sorts of problems than they do about the Steps. I know there’s been discussion and I hope those do end up coming back into the new curriculum.

1 Like

A lot of those can easily be repurposed into the new review projects we are adding.

That’s sorta the opposite of what I suggested though. I don’t want to see those parts of the old curriculum chopped into tiny steps. I want to see learners given intermediate size tasks like those old problems.

Have you seen the Gradebook review project? what do you think of that?