Teaching Programming Now Emphasizes Sharing
An anonymous reader writes "The NY Times explores some of the best ways to teach kids and finds that some of the new tools are encouraging the kids to share their work with each other. One teacher first tried to keep the kids quiet and staring at their own monitors but found it was better to let them copy each other. He calls MIT's Scratch a 'gateway' tool. Then the article points out that programming Blender with Python is not as hard to pick up as your grandparent's programming languages — and kids today are learning them in a few months." The Wikipedia entry on Scratch is worth reading, too.
The summary makes it sound like these kids are being encouraged to cheat off one another. The actual article just says that they're looking at each others' work to build on one another to make more complex programs. That pretty much describes what any good programmer does. Unless you live in a bubble building all small projects solo, you're always going to be working together on a project with other programmers and designers. And even if you live in a bubble, you had to learn coding from SOMEWHERE. You look at code in a book or on a website, you learn how it works, you start using it and adapting it in your own projects. That's just learning.
I, for one, say "Huzzah!" for these kids. If they keep at it and get their CS degrees, they'll have a great future working for $3-an-hour in India someday.
Wait, that sounds cynical. I meant $4-an-hour.
Oh, and I've found Alice to be a great teaching tool for kids too. It teaches programming principles in a way that's a little more exciting for beginners than having to learn Commodore 64 PEEK and POKE coding (the way some of us came up).
SJW: Someone who has run out of real oppression, and has to fake it.
Sounds like a gateway drug into P2P, torrenting, and ultimately murder.
In high school my math teacher organised us into pairs and encouraged us to work together on the problems. It's can be very enlightening to see a situation from someone elses point of view. And teamwork is also a skill that has to be learned, preferably in school.
If your students are motivated by "building cool stuff", sharing is great - they are trying to add the elements they find into their own designs. However, if your students are motivated buy "getting the passing grade", then sharing may become copy-pasting, and they will not retain any knowledge of the process. In real life, students are motivated, to a different degree, by building cool stuff, grades, and a host of other factors. My policy up to date has been "ideas sharing is fine, peering at screens and finding out how others did things is fine, but if I find evindence of significant copy-pasting, you will get a stern warning and/or a some sort of discipline". Works fine with undergrads learning compsci, especially once they learn that our in-house copy-pasting detection system is quite accurate at finding cases of badly-disguised cut&paste.
I am even going one step further, and *making* my students review each other's code (they get good grades for writing good reviews, not for receiving them, and reviews are anonymous, so there should be little incentive to 'cheat'). I find that far too many students are not exposed to a) the potential beauty and simplicity of good code vs. b) the horror that bad coding is to the unwary mind.
Does anyone know good systems to automate this peer-review for undergrad coding exercises?
High school computer science teacher here in my 4th year of teaching. This year, I've emphasized group programming much more than the past 3 - I used to do 50/50 group/individual in-class stuff, but this year nearly every in-class exercise is done with randomly-assigned partners in my Intro and AP courses. The difference in comprehension is astounding - students are grasping concepts much quicker than usual. The thing is, when they go off on their own to do individual assignments now, they do so with much more confidence, thanks to the discussions they were able to have with their partners.
FYI, I teach at an all-girls school, so it's possible that these are unique results for girls, but I imagine that boys would similarly benefit from working with partners.
But to learn what? I was in the very top percentile of my class at every school I went to. Unfortunately for me, very few of the teachers could teach me anything that I did not find remedial. In the 7th grade I had a math teacher give me the greatest insight I have ever had the pleasure of realizing. She said, I would never learn anything from the teachers or textbooks in school that I couldn't easily figure out on my own. She encouraged me to help others and learn new and interesting things from those around me by observation.
This opened up a whole new world for me. Yes, I tutored many people for a heft sum (enough to comfortable pay for college without incurring any debt). But I also helped those who couldn't afford my services, I made friends, I learned as I taught, I gained valuable social and managerial skills, and most of all I got a great experience out of school even though I hated just about every textbook I ever picked up and most of the lectures where teachers attempted to prepare me for "life" (which I guess is a code word for some standardized test that helps them get funding for the school).
For me I think collaboration is the way to go. Ultimately, in good companies, that is how things work. I have my strengths and the 6 people on my team sitting around me right now have their strengths. We complement one another and we work well. Personally, I am glad I learned that while I was in school, and have mostly forgotten about all the lectures that bored me so badly.
Sounds like a great way for the teacher to make other students do the job of the teacher. I certainly don't want my son going to school and spending the majority of his time teaching rather than learning something new under some false assumption that they can all be winners. As the kid who always held the class record for math speed tests in elementary school, its a shitty teacher that would make that me spend most of my time helping other students on rudimentary problems when I could have instead moved on to something more challenging.
I want kids to go to school to learn, not teach remedial topics to their classmates.
One of the best ways to solidify one's grasp of a topic is to teach it to someone else. Additionally, everyone has a different method of presenting information to others, and some people are more receptive to different methods of learning. Ideally, students of similar levels of aptitude would be paired together to learn from each other, increasing the knowledge of both, but we all know that the real world does not revolve around ideal situations at all times.