Wednesday, March 14, 2018

Teaching CS IS Hard

Well we have hit the wavefront algorithm assignment in my curriculum, which ultimately will be used to navigate our little VEX self driving vehicles. And for probably 90% of my students in CS Essentials, welcome to what my PLTW CS colleagues on the PLTW forums have termed "code shock" with students.

I think one of the hardest things to manage in designing a curriculum is how to dial the difficulty up at a proper pace for the "center mass" of the class skill level. And in this new curriculum from PLTW this particular unit starts out manageable, but suddenly shoots up rapidly, thus the "code shock" mentioned above. I also have the challenge of having a lot of kids in class who simply don't want to interact in class when, for instance, I'm working through pseudocode on the board.

The good thing for me is it has really illustrated how much more I need to emphasize getting the students off the computers, and crunching out the problem in flow charts or pseudocode. Many of them just want to do everything while in the code editor, and I keep telling them (and trying to show them as well) to solve the problem first, THEN translate your solution into code, and then get into the debugging process.

For my audience of few to several out there, I welcome any insight or input you might have!

9 comments:

  1. Hi Jeff

    I'd like to help. Do you have a link to your curriculum design?

    Best wishes

    Alan

    ReplyDelete
    Replies
    1. What kind of depth of info would you be looking for? I would have to send it by email, as PLTW curriculum is proprietary and they don't allow public posting of deep details. I do blend in other stuff outside the curriculum to help. As I mentioned in the post, I really think part of the issue with the PLTW design is that it shoots up in difficulty way too quickly, before the students are really grounded in fundamentals. I do have a summer seminar with those curriculum writers where I will be able to discuss such issues with them.

      Delete
  2. Nothing new there. I have been teaching CS for 30 years and am still dealing with the issue. Designing a curriculum that works well with the middle group guarantees the computer geeks will be bored stiff and those that do not want to engage will still be un-engaged. This is where experience helps. Canned curriculum like PLTW do not have this flexibility. I break my classes like this into ability levels. The computer geeks get pointed in a direction and then I get out of the way. This will often motivate others to step up their game. Those that are un-engaged, well good luck, if they are un-engaged when getting to play with robots and computers, imagine what they are like in a math class.

    ReplyDelete
    Replies
    1. I hear you on wanting to keep the fast movers engaged. I have thought about having the students have personal coding projects they are interested in, and if they are done with an assignment but others are still working (and presumably I'm helping) they have something to carry on with of interest to them.

      Delete
  3. My students are just finishing up this activity. It's taken waaaay longer than expected, but has been a great learning experience for them (and me).

    The challenge of 'wavefront' navigation breaks down into a couple similar algorithmic processes. To reduce the complexity of each part I introduced each process with pen and paper examples before turning to code. The "computational thinking" seeing interpreting and responding to a 2D array of numbers as a map is something they first need to get very comfortable with.

    The other nice feature is that the sub-algorithms have some similarities, so there's some intrinsic scaffolding. I deviated from the curriculum a little to try capitalizing on this.

    (One other big change I made was in the activity that preceded this project I modified it to begin introducing some of the concepts of movement based on array values: https://docs.google.com/document/d/1iYj6PUaOmrKztr5u9ApSD7xqXlXq2g4FBWP6z0QEanY/ )

    @Garth - I prefer to have all students do the same activity, but offer a graduated finishing goals. The project Jeff is talking about does that: Only a map and planned path are required, movement of the robot is actually left as extra.

    ReplyDelete
    Replies
    1. A fellow CSE teacher! Where do you teach, and have we met either IRL or online? I would love to connect with other CSE teachers, since relatively few get on the PLTW forum. Makes me wonder if a closed FB group might be more effective.

      Delete
    2. We've not had the chance to meet in person yet, but we've interacted online in the 'official' community. It is disappointing that more CSE teachers aren't active there. I don't think another venue is the solution, but it would be nice if it integrated with whatever platform teachers use most.

      My newly minted blog: https://teachingisstem.com

      Delete
  4. Jeff, I am also a newbie to teaching CS. I teach in middle school, and I am using Logo in MicroWorldsEx. The way I structured my course from beginning may be helpful to you. After I introduce a concept from the "garden," the students have a particular project to do, such as "A Horse Race," or "A Virtual Pet," or "A Board Game." I provide some structure but then they can take it to where ever they want as far as subject and complexity. It works fairly well. The advanced kids just go for it and this leaves me available to work with the middle and less experienced kids. As far as the unengaged are concerned, I will work with them up to a point to try to inspire, but they have to bring something to the table. Often, it might be that they are overwhelmed and don't know where to start or they might be afraid to even start for fear of not being able to accomplish anything.

    ReplyDelete
  5. Wow! I am LOVING the conversation and input! If any of you that are commenting for the first time have a blog, let me know so I can add it to my Feedly list.

    ReplyDelete