Alternative way to teach CS Disoveries



Common slogans include “Anyone can Code” and “Everyone can Code”. But let’s face reality, not everyone wants to code. Another problem with teaching coding is the maturity, commitment and drive with the students. A High School Junior or Senior taking a coding class may have a strong drive to follow an on-line, self-paced lesson. On the other hand middle school students do not necessarily have that same drive. Some want to look tough and won’t admit they need help. Instead of asking for help they fight back and say things like “I didn’t want to take this class, but I had a missing class and I was forced to fill it.” Some of my middle school students sign up for coding because of the gaming description in the class announcement. They signed up for the class because they wanted to play games, not code games.
The maturity level of middle school students can also be a problem for concepts like paired programming. In my first year of teaching middle school I learned to hate team projects. In the team projects the good students carried the brunt of the work. With paired programming I first tried assigning teams which resulted in some strong personality conflicts. I tried letting students pick their partners. Good students paired up with other good students, lazy students paired up with other lazy students. And, oh yes, even some of my “good” students are lazy. The good but lazy students want to run through an assignment and do the bare minimum to get by. As soon as they are done I hear comments like:
“I’m done, can I play on my phone?”
“I’m done, can I play games on the computer?”
They hate my “No” answer. They hate my answer telling them to make their web page look better. They don’t like my comment to go help someone else.
“So what’ wrong with me?” I asked. I switched products, liking better than the product I used last year. I have tried numerous ideas to get my students engaged.
Another problem I have been vocal about is TIME. Take U2 L8 Step 5 for an example. On a one-on-one basis, if I spend five minutes helping each student, in a class of 30 students, it would take me 150 minutes to help every student on this one step. Students are impatiently waiting for help, loose interest, and go to other web sites. It is a losing battle to keep students from wandering to other web sites if they are just sitting there waiting for help. Then the visiting other web sites becomes the norm for the class and you lost!
I visited other classes at other schools and I learned that I was not alone. Keeping all of your students focused can be an issue.
Let’s look at some real data. I gave my students one day each to do Unit 2 Lessons 3-9. I mean come on now, how hard is it to put < p > and < /p > around a sentence or two? How much time does it take? On Unit 2 Lesson 7 only 30% of my students finished the lesson, even though they had more than one day to finish the lesson. Yes I could have gone on, but in doing this I would be allowing my non-performers to fail. Paired programming wasn’t working for the non-performers. I had students complete with every lesson in Unit 2, and I had students not even started in lesson 6.
As a starter one day I asked the students to brainstorm ideas on what we could do as a class to better teach and learn the topics. One student, who liked to sit at the computer, not do her work, and talk to her partner, wrote down for me to talk less and give them more time on the computer. I didn’t say it as I thought “That is not going to happen.”
So now I’ll discuss wild idea number 13,759. I took the entire class, EVERYONE (even those that were finished) back to U2, L6 and we started going through the steps one at a time. I told the students that they were not allowed to go to the next step until everyone had finished the step. I also told them that once I checked off that step that they had to help another student that was not finished. In two of my four classes I received a comment of something like, “Do we really have to help someone?” On my first day of this approach I went home smiling. I was even happier on my second day of this approach. In one class period I went from 30% of my students complete on Lesson 7 (with almost no hope for the rest) to 100% complete on Lesson 7. On the second day I felt like I was rushing between computers to put a check mark on my tracking sheet indicating that the student had successfully completed the step.
I mentioned the Ponzi Scheme. What happened is I ended up with 1 student helping another student, then those two students helping two other students, then those four students…
I now have another change in progress which I will write about in the future.



Sounds like you found a way to reach your students, that’s great! I’ve heard a lot of the same comments in my classrooms and remind them that they are all in this together, trying to teach into community and empathy, rather than leaving others in the dust because you’ve had more prior experience (or many other ways that students get ahead of others). Glad to see you stuck with the course and students are succeeding - would love to hear from your in the future if the “everyone helping everyone achieve” model takes off and they naturally get into it. Best of luck!



I read your entire post and thought about it for awhile.
I teach in a very diverse middle school that randomly assigns students to my class as an elective regardless of student interests.
When I introduced coding, I started by giving students choices. They could sit at any computer they desired and they could choose where they wanted to start in the course. I simply stated if you want to design your own personal website you will start in Unit 2 and if you want to design a computer game or Ap you will start in Unit 3. This generated a lot of enthusiasm. I had (have) students who speak no English, students who score exceptionally well on standardized tests and students who are struggling learners. Few, if any students, made no choice at all at the start. I then told students that I wanted them to learn to write computer code very well and allowed them to progress at their own pace for about two weeks. No one was held back from advancing and no one was rushed along. Everyone was happy. Everyone was coding and everyone was earning an “A”.
After two weeks, I taught the entire group Unit 1. We had fun for a bit and then it was back to coding.
No complaints. Actually, while we were learning Unit 1 in class, a number of students continued to progress in their Unit of choice outside of class time.
When the students went back to coding in class, I realized I needed to have checkpoints. So, I created a few. The gaming students were creating ellipses and rectangles quite well, but what about other shapes? I decided my checkpoint on creating shapes would be 3 different shapes with different fill and stroke colors/weights for each shape. This required a brief diversion to W3 schools which was good because it introduced a valuable resources for them to expand their coding. Then back to CS Discoveries.
The website students were getting near to inserting images. This tied in to the unit on creative commons and citing sources. Another diversion and a checkpoint that students were properly giving credit when needed and they were able to manipulate the many codes they had learned for lists, headings, etc.
Most everyone hit a big bump when they got to CSS style pages and Game Lab. To me these are really the challenging sections of the 2 main units and places where the students are “teachable” because these concepts are difficult to learn on their own. Now that everyone has attained a high level of success thus far they are motivated to continue.
Everyone can code. Everyone is coding. and most important in a middle school elective we are having fun.
As far as the students helping each other, which I believe is the main thrust of your post. Non-English speakers have gravitated toward each other. I have encouraged them. They are working slower than others, but that is OK. They are learning and smiling about it. The same with the slow learners. They don’t really want to sit with a smart kid and feel stupid all of the time or in need of help so they help each other from a fairly common point of understanding (or confusion) however you look at it. The smart kids race ahead and then hit a stumbling block and are willing to listen to an adult for a change and actually seek help when they need it.
This is a demanding way to teach. I am constantly circulating around the lab offering help and suggestions, assessing progress with checkpoints, etc. I don’t talk less, but I only talk about what the student is interested in at that particular moment. I may not talk to each student every day, but I don’t really feel a need to. I speak to them when they are willing to listen. They speak to each other. Some like to wander over and help classmates so I let them wander over and help.
I hope this will help you to find a happy medium in your future endeavors. Middle school students are most interested in themselves and I, too, make it very clear that I am most interested in their personal success. What bothered me about your post was your presumption that some had “no hope for success”. Given time, patience and encouragement even the most challenged student will succeed. I was amazed just this week to have a student who speaks no English at all actually start to successfully code. The smile on his face as he proudly pointed out his success to me was priceless.


I also teach at a diverse school and I too experience very proud students that want to show me what they did.

I am not making a "presumption that some had “no hope for success” ", but that might have been what they felt inside. From my experience I have seen some students with the outward attitude of no desire for success. I want to promote and encourage a desire in every student to try to do their best so that they can succeed.

It sounds like you like walking around the class. I too like walking around the class helping the students on an individual basis, but the students hate sitting there waiting for the help (see my example if I spend 5 minutes on a one-on-one basis with each student). There is no fun in sitting and waiting.

I’m not willing to accept a typical bell curve distribution and say that it is okay. I am pushing to skew the distribution to the high end of success; I guess it is similar to the concept of “no child left behind”. I have had some of these students thank me for the recent changes I described in keeping everyone focused on the tasks. My floating partners are working out better than the paired partner concept, and I am seeing more celebrations from those that previously had nothing to celebrate. Is it possible some of my students, and others, experience morale killers when they are at one of the first lessons while other students have finished all of the lessons?


I suppose different things work for different teachers, different student demographics and different geographic regions. I am happy that you shared an experience with all of us that is working. I for one need all of the help and suggestions I can get as I navigate this new landscape of teaching computer science.
I don’t think I actually like walking around class, but doing so seems to help my students succeed and stay focused. So, I walk a lot.
I don’t grade on a curve - I grade success at a very high level.
As far as “morale killers”, none of my students have given up on coding. Everyone is eager to get to class and a number of students code at home, so I don’t think morale is dead.
Thank-you for continuing the conversation. I do value your insights and suggestions
Diane Neville - Gulfstream Academy of Hallandale Beach, Florida