Unit 3 Lesson 16: Online PD Discusison


Use this space to discuss the challenge activity for online pd. If you completed this lesson as part of your PD, be sure to share the following:

  • The programming artifact you created in doing the lesson (specific level is specified in code studio).
  • The assessment question or extending learning activity that you produce for this lesson.
  • Notes for others who are going to teach this lesson. This should include:
    • Advice for someone who is going to teach this lesson (consider what was challenging about doing the activity, what you think students will struggle with, etc).
    • What ideas do you have about how to structure and teach this lesson? what modifications do you plan to make to the lesson?
    • What additional resources (if any) might be helpful in teaching this lesson


Here is the link for my madLib. https://studio.code.org/projects/applab/i1eDj7_QySRuJzqzKenWtQ

Before you teach this lesson, be sure that you have done it yourself so that you can help your students as they do it.

As an extension activity, I would explain to my students that the text is put into the mad lib in a similar way that mail merge is done in Word. I’d ask them where else they have seen similar things.


My App: https://studio.code.org/projects/applab/IXFZCsgh0pmgP7GX26uwmg

My assessment/extension:

Modifications and advidce: Creating a Mad Lib is not trivial and could consume an entire period for my sophomores. I have created a couple that they will modify. It will take much less time. Activity Guide Mods.docx (123.1 KB)


Here is the link for my mad lib project : https://studio.code.org/projects/applab/w-T4ggQ7TBhE-j7ykSKNKw

An assessment question for this lesson could be:

  1. “What issues did you notice with making your text look correct, when using the string concatenate feature?”
  2. Would “/n” achieve the same result as “\n”? If not, what would each one show?
  3. Is there any other “/” commands you can discover? What are they and what do they do?

Notes for others who are teaching this lesson:

  • Sometimes I found myself going into what was supposed to be the next activity. Remind students to carefully read what each step is asking them to do.

  • Sometimes I also found it was easier to just do what i knew I would need to do, even though it was in the next step.

  • try this out first, because some of the steps are hard to understand.

  • The lesson seems fine, I won’t need to alter anything, though I might do a preassessment to make sure my students are familiar with mad libs.

  • This lesson took me about an hour to fully complete.

  • The only other resource would be a function to make just the first letter of a string capitalized, but I think that must be too advanced for now.


Hi All,

I have a few random questions for you. The good news is that my students are REALLY getting into the programming and want more! The difficult thing is that I am BARELY a stage ahead of them and they are googling and wanting a lot of other tools.

  1. Is there a way to connect the programming in studio.code.org to other apps. For example, I know AppInventor allows people to connect to Twitter or Google Maps so students could generate a tweet or embed a google map. Is that possible to do with studio.code.org?
  2. I am trying to differentiate to meet student needs and I have one student who is just plowing through this material in class (and at home). He is starting to get interested in modifying the design elements further than he can in the studio.code.org environment. What do you recommend students do who are interested in going further? Do you feel like studio.code.org has a limit for students? At some point, does it make sense for students to use a different platform or program? If so, do you have any recommendations?

Again, all of “what if…” questions are due to the fact that my students are VERY engaged with the materials you have created! Thank you!



Short answer, yes you can, and you will be able to, but it’s under development right now.

There is a longer answer in which I say: what you’re really talking about is connecting to web services through public APIs, and that is growing increasingly complicated - we’re looking for ways to make this easier for students. We had it working, but recognized some security issues, so it’s back in development right now.

In theory, in the near future you’ll be able to use the app lab command:

startWebRequest(url, function(status, type, content) {


You can find this under the “Data” tab in App Lab.

Here’s how it works: if you know of a URL that you can request data from, you put that in the url. When the data comes back from the internet it calls that function, and passes 3 parameters. The last one, content, contains all the content which you can then parse with code.

Another simple example is to use Google maps api. You just need to compose the URL the right way and you’ll get an image back. I’d send a link to a demo app, but it’s broken at the moment as we resolve the aforementioned security issues. However, pretty sure this is the same way it works on App Inventor.

We should have a similar thing to App Inventor for more than twitter - the issue with all that stuff is you need to go to the website to make your individual API key, which adds a layer of stuff you have to do to get it working. There is no way around that. But we’re looking for ways to make it as straightforward as possible.

One thing that you can do App Lab that you can’t really do in App Inventor is quickly and easily create and use a backend database for your apps. We actually have curriculum developed around this, but haven’t released it yet because it’s beyond what students need to know how to do for the AP exam which was our current focus. We’re hoping to release this sometime in the late winter/early spring. All of it uses the “Data” commands in App Lab. You can take a look at them and the documentation yourself to see if you can make heads or tails of it. It requires a slightly different mindset and pattern of programming - it can get tricky because your program is now dealing with the internet so things have delays, happen asynchronously, etc.

As for the ceiling on App Lab. It’s actually pretty high. I use it all the time now for personal projects. However, I would say that it’s mostly made for rapid-prototyping of apps rather than full-blown professional apps. If I were teaching CSP to a group of students who was really learning programming for the first time, I don’t think I’d change languages or environments. If I did change, I’d keep the language javascript and maybe just switch to a more professional setup - however, I’d have to balance that with the fact that creating a data-backed app in App Lab that takes maybe 5 minutes, would easily take 30-60 minutes doing it “for real”.

So there’s a super-long answer to a simple question. In the end, we’re trying to build more and more resources around App Lab itself for exactly your scenario. Our priority right now is to make sure it supports what’s in the curriculum. More coming. And keep the requests coming!


Behold my super-original, very creative programming artifact: https://studio.code.org/projects/applab/nt1_HfawdUufLsejLlgLRQ

I just know that some kid will rush ahead and do the entire Mad Libs project in Stage 3 without reading the directions…because that’s what I nearly did. As usual, I’m going to need to remind the kids to take things one step at a time, read the directions & don’t rush.

There’s a lot to remember to do in this lesson, particularly at the end when assembling the whole app, but it was all pretty manageable. A gallery walk w/ peer review feedback fits well with this, particularly if the idea of everyone making separate stories is emphasized at the front. They’ll come up with some crazy stories and they love seeing each others’ work on this kind of project (See: Stage 13). I’d probably have little feedback sheets at each computer and let them leave notes as they try out each others’ Mad Libs. Not only does this engage the testers more, but it provides a little extra value and oomph to each student when they receive their feedback.


Hi Katie,

You are quite a bit ahead of me in the curriculum at this point. I am at U3 Lesson 5. I’ve been thinking about the same problem of what to do with the students who are ahead. I’ve been looking into “Bootcamp” type curriculum that teaches web development online. Here is what I have so far. The moving towards employability section maybe the most useful for you. None of my students have done this yet so I don’t know how it will go. https://docs.google.com/document/d/1PDY658cjHivSlbmkOc8VE_DHe9NDE00wl1eeMRpSKQo/edit

We are on chromebooks so I’m thinking of having students try cloud9 online IDE. But again, haven’t gotten there yet…

I’m also thinking of connecting some of my advanced students with mentors from local tech companies.


Extension Activity:

For the U2L20 Practice PT one of my students came up with an idea for making secure, memorable passwords by asking people questions then concatenating words and numbers. I did a quick prototype of this idea and will likely encourage my students to make different variations.

I also ran into the problem of coding ahead of the instructions for the stage. I also revised my text area and screen names a few times. I noticed that block mode is great for putting in IDs because its fairly smart about which one you would want.


Hi Baker,

That is great to know! Right now I think students are excited about what they might be able to do in the future and the reality is that it might just take a while for them to get there!

Thanks again!


Excellent resource for extra credit opportunity – thank you for sharing.


A lot of my kids took multiple days to complete this stage. At this point in time, I have students on different stages because I could not just justify “holding” students back. I am going to have students finish up to Stage 18 and then cycle back as assistant teachers for students that need to catch up.


We have three weeks left of class before exams. We are at Unit 3 Stage 16. What shall we do? Complete Unit 3 or Do Unit 4?


For my students who are very far ahead, I do two things. The first is to have them be a helper to other students. They aren’t allowed to give answers or tell other students how to do the problems, but they are allowed to ask questions to other students to get them started and they are allowed to help other students find and correct programming errors. The second thing I do for students very far ahead is to have them create their own project in app lab on the side. I tell them that it has to have some features that you currently know how to program and some that you don’t know yet and will have to learn how to do. Those two things have helped me keep all of my students close to the same pace as each other for the lessons.


Here is my artifact for lesson https://studio.code.org/projects/applab/dDOXgeproqycClXNtpBsGw

One of the challenges I had during this time of the year was keeping peer feedback up. They were used to having me tell them to peer critique and would even fill out peer rubrics but the engagement drop. It even dropped in playing peers games. I would like to try peer game musical chairs. Students fill in a mad lib and move chairs to read them until the music stops. Once the music stops who ever is last to sit down would read the lib. I think it would be a fun way to keep them engaged throughout the lesson.


Are any of the aforementioned examples available?


Hi @azeno,

I hope all is well in TX! Can you clarify what you are looking for? Do you want to use APIs? Or are there other specific features you would like to use with your students?

Happy Coding!


Yes, my students want to use APIs. Are there any examples aside from the weather one?