Unit 4 Lesson 7 (U4L7)

Why are the conditionals practice levels now more difficult than the conditionals make project?
I’ve been teaching AP CSP on code.org for four years now and in previous years there was example code on the practice levels that students had to debug that gradually covered concepts. Now there are essentially blank screens without starter code for the conditionals. Looking at the example solutions, the examples are not beginner friendly even on the least “spicy” level. Jumping from lesson 6 to lesson 7 without additional scaffolding just does not make sense.


@jessica.wagner Thanks for positing this question. One explanation comes from the Change Log released this summer.

Blockquote One Practice lesson in Units 4, 6, and 7 now includes a level progression where students build out a fully functioning program over the course of 5-7 levels. Students can choose which app they’d like to program in the lesson. In addition, the progressions are differentiated by complexity (indicated by “Spice Level”). These differentiated level progressions can help meet the needs of a more diverse range of students. In addition, the progressions students don’t complete the first time through the lesson can be used for review, reteaching, or extra practice.
I’ll also reach out to the curriculum team on your behalf.

1 Like

Thank you. I appreciate the leveled options; however, I feel the easiest is still too difficult for students who have just been introduced to conditionals for the first time ever. There needs to be more scaffolding.


Thanks so much for the feedback, Jessica!

These levels are definitely a departure from the previous style of Practice levels that were seen before. Rather than looking at a series of discrete apps and their accompanying code, we decided to give students the opportunity to build out an app, focused around the learning objectives for the particular lesson, while some of the other coding and design is abstracted away to allow them to focus on these core understandings. The hope is that this new style of Practice level, while possibly more difficult initially, might also give students more confidence over time in seeing how an interesting and engaging app might be built, allowing for greater scope and vision for the Create Performance Task in the Spring.

A couple of suggestions that might help you and your students to navigate this new style of Practice level:

  • Each level has a numbered discrete task(s) in the Instruction Pane along with a corresponding place in the Starter Code where that task should be performed–

  • If the students are confused about how to go about completing the task, there is an accordion tab at the bottom of each task in the progression that provides guidance and examples of the code using both block & text based coding solutions–

  • At the top of the level, there are solutions for the level’s specific task available to you as the instructor so that you have a model of what a possible solution might look like. If you click the Example Solution 1 button, that will open a copy of the solution in App Lab that you can remix, explore, and possibly share–


  • Last, it might be helpful to print out the Task List for students, so that they can reference all of the tasks that are being asked of them within the program, allowing them to refer back to previous tasks, to take notes, and to write questions that arise. While these documents only contain the tasks themselves, I could see them being modified by an instructor to also have places to practice written responses where students can explain what they are doing / what they are learning in order to prepare for the new Create PT written component–


Thanks again for the feedback. Since these are new, we are actively gathering feedback and impressions from our amazing teachers like you in order further hone these activities and to provide you all with the best and most engaging experience possible.


1 Like

The slide deck doesn’t correlate at all to the Unit 4, Lesson 7 material for instructional purposes; it just repeats the directions in CodeStudio. Students have not been introduced to increment & decrement yet, but the code for the ‘spicy’ apps have them. Also, even with pair programming, my students are very frustrated with the instructions. Generally, I go through the slide deck with my students and pop back and forth between the Lesson and the slides. This one has tremendous changes from previous years and I feel the material exceeds the student knowledge & comprehension at this point.

6 year CSP instructor…


Hi. I completely agree with Jessica. It does not make any sense that the three projects involve the use of functions (several of them) when functions are introduced in lesson 9. I am planning on assigning my students lesson 7 from last year’s curriculum.
We might be able to use the projects later on, but not here. I honestly think the students will only get confused and frustrated.


It does not make sense to have these projects in lesson 7, which is a “practice” level. The projects involve the use of functions, and this is a topic that is introduced in lesson 9. I feel that we are putting the cart before the horse.


The For Teachers Only is about the only thing that saves me on some of these. With this new Lesson 7 and spicy-ness, I still struggle a lot. The Example Solutions are not complete and I am tearing my fingernails out trying to complete the different blocks for spicy 2 and 3. Please just give us the complete code - at least that way I can walk through what to do rather than spend too many hours coding and getting beyond frustrated.
I’m using Mr. Kaiser myself (he saved me when I started teaching this course) but even his videos skip items. Please give full solutions, not teasers.
Thank you for listening.

Mr. Kaiser is the worst and I’ve emailed him multiple times asking him politely to make his videos private and share with his own students. He has never replied. His “help” makes grading student work nearly impossible.

1 Like

I was also really surprised by the difficulty level which is how I found this discussion. I think this lesson is going to be very frustrating even for my most advanced students.


I sure wish that I had come to the forum before opening this lesson. My first mistake was that I didn’t realize the Practice had changed for Conditionals- that’s my bad. "No biggie, " I thought- this actually looks better. However, the only app that is reasonable at this point in the curriculum is the emoji movie app. The other two require coding skills the students haven’t been introduced to yet. Not only functions- but parameters! The Code Feed app instructions say to use the “userAnswer” variable, but it is a parameter. I don’t mind this, for students who come into the class with previous coding experience- but that is very, very few of my students (only 1 this year). Also, there should be a warning that “Spiciness Level 2” and higher means that students will need skills they haven’t been taught in my class yet.

There was also a lot of confusion about how the levels progressed in this lesson. I was able to clear that up, but I would suggest very explicitly pointing out to your students how the levels progress.

I like both the Tic Tac Toe and Code Feed App challenges, but I will be using them later. I will also be apologizing to my students for being unprepared and not knowing the lesson had significantly changed. For many students it was a wasted class period, because I couldn’t get to all the students who were having significant issues fast enough and the frustration level was very high. I’ll be reteaching this one and using last year’s Practice instead.


I strongly agree. I am doing the same - assigning last year’s level 7.
6 year AP CSP instructor


Thank you all for your feedback on this lesson. Its always important to have the perspective of teachers in the classroom in order to understand what is working and what might need some iteration. I have shared your concern with the code.org curriculum team so they can consider how best to address this content in the future.


came here to agree with everyone… WHYYYYYY put functions in when the students have not been taught or exposed to it at all… they are supposed to be practicing conditionals not investigating functions…


What existed last year and prior was far better scaffolded and - honestly - a really effective way of teaching Conditionals. I taught it for years, and I loved it.
There was no reason to change it.

Now? Students are spending more time trying to figure out how to insert emoji into their code before they’ve even created their first conditional.
Not to mention three separate projects that ran simultaneously on top of each other.
Here’s how that goes in class:
“Okay class - we’re on Bubble #3
“Which Bubble #3?”
See my problem? You’d have trouble getting adults to follow this!

This was so frustrating that, after wasting so much class time trying to explain the format… it made more sense to skip Lesson 7 outright, and move on to Lesson 8, and use it as a ‘My First Conditionals’ lesson.
I used to be able to use Lesson 8 as a summative assessment - to see if they understood conditionals before moving on (and I’m pretty sure that was the point of structuring it).
I don’t have that, now.

There was no reason to change this; especially for such a crucial CS lesson.
It kinda feels like you wanted to show off ‘Hey, I can have three projects run simultaneously’ - but it’s a nightmare to navigate and grade; it feels like it didn’t go through any UX testing in an actual classroom.
The weirdest part is that all three of these just started having students use functions before even teaching them what functions are - that’s the lessons after these ones.
That’s a pretty obvious fault - how could you miss that?

Honestly, I adore code.org material; I’ve pushed the district to adopt it across other high-schools and middle schools. It’s obvious you care, and I rarely have strong issue with the materials provided.
But this one was a pretty big mistake.
Can we please have the lessons from previous years back?
They were effective, my students liked them, and my students understood them.


1 Like

So I completed the 4.7 lesson as is for this year. Obviously knowing that it was really different than past years, I had to make sure to complete the lesson myself before presenting it to the class. Because it was a huge step up, I decided to “lead” the lesson with the class instead of turning them loose. I spent 2 full days and only got through spicy level 1. The other 2 levels didn’t seem appropriate given the fact that they utilized functions and functions with parameters.

After spending some time reflecting, I realized that I did really like the emoji app, BUT think last year’s version was better student practice. Here’s what I might propose: return to the old way of doing conditionals practice (lots of levels = lots of practice), then move into the conditionals make and then do functions. However, maybe include this lesson after the functions make and before the unit 4 project. Maybe it’s an optional extension lesson (what code.org had years ago?)

In my opinion, the practice last year is better early on but the lesson this year definitely pushes the kids harder. Just my .02


I really like that solution - thanks for sharing your experience :slight_smile:

1 Like

Code.org has been exemplary at scaffolding in coding. That’s one of the reasons why I went with them. This lesson really misses the mark. I will look at last year’s lesson too. I have found that if students arent’ scaffolded properly, they get overly frustrated and not like coding. Sorry to bring this up as others have but I totally see the issue here with this lesson.

1 Like

I completely agree. This new “practice” level is not practice. It is much too difficult for students just learning this concept. I assigned my students last year’s level 7 first, then we did this year together.

1 Like

When my classes went through conditionals a couple of weeks ago, I gave them a link to the previous years’ practice. In case anyone was wondering, you can still see their activity on your teacher dashboard and view their current work as long as you are also in the '22-'23 version of the course.

Once they went through the old practice, we coded the movie emoji app in one class period as a group. When they took on the conditionals: make activity on their own, many of them remarked that it was easy to understand and they were very successful with it.

I encouraged some of my more advanced students to take a look at the other two activities, but the questions immediately flooded in about the functions with parameters.

My hope is that code.org can come to some compromise with this lesson. It is far too important to not have rote practice when writing conditionals.

1 Like