Forgot your password?
typodupeerror
Education Programming Technology

Teaching Programming Now Emphasizes Sharing 132

Posted by timothy
from the did-you-bring-enough-for-everyone-to-steal? dept.
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.
This discussion has been archived. No new comments can be posted.

Teaching Programming Now Emphasizes Sharing

Comments Filter:
  • by elrous0 (869638) * on Thursday November 10, 2011 @12:11PM (#38013206)

    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 [alice.org] 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).

  • A good method (Score:5, Insightful)

    by Hentes (2461350) on Thursday November 10, 2011 @12:26PM (#38013378)

    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.

  • by brit74 (831798) on Thursday November 10, 2011 @12:26PM (#38013390)

    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.

    If that's the goal, then I don't know why the teacher doesn't give them a generic set of code to build off of (written by a make-believe programmer whom they "work with" or that existed in a book) - and each student still works entirely independently of each other. Then, at least the teacher could grade each student individually instead of making wild guesses about which student did which work and whether a particular student did any work at all.

  • by tucuxi (1146347) on Thursday November 10, 2011 @12:28PM (#38013402)

    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?

  • by Anonymous Coward on Thursday November 10, 2011 @12:29PM (#38013424)

    educationalists

    This is not a word.

  • by SuricouRaven (1897204) on Thursday November 10, 2011 @12:30PM (#38013436)
    It'll teach the kids to write the most simple programs - but once they need to use a real programming language, they need to unlearn Scartch.

    I've taught Scratch to kids before, though only briefly. None of the class picked up much on their own, so it's no replacement for good tuition.
  • by Anonymous Coward on Thursday November 10, 2011 @12:37PM (#38013500)

    Do people really have to wave their massive dicks around every time someone mentions an outdated piece of technology? It gets old. You aren't cooler. You're just less lucky.

  • by jellomizer (103300) on Thursday November 10, 2011 @12:51PM (#38013636)

    The problem is it is hard to draw the line between cheating and working in a group, for an educational setting.

    I remember in fifth grade a "Progressive" teacher had the kids who are good at a topic to work with children who needed some help, to help them out. So I was helping someone with some Math. He got mad at me because I was explaining the steps and not giving him the answer. Because some kids want to learn and others just want to pass, he didn't care about learning, he cared about getting it done and getting a passing grade so he doesn't need to do it again.

    Now in a programming class, this shared concept will work when the students are wanting to learn how to do something vs. just getting a passing grade. So if they want to learn working with peers is great (In any topic) but if they don't they will use it as a way to cheat, and get the answer from someone else.

    I resent the statement about the $4 programmer. In the US there are a lot of jobs that needs Software Developers. That needs a good programming background.
    A Programmer is a Job a Software Developer is a Career. If you need a programmer then you have done all the Architectural work and planning then yes you can hire a $4 an hour outsource to turn out code. But for most organization requirements are more organic and you need a Software Developer who does more then just write code he takes in the Problem, comes with a solution to a problem, figure out the business case, work with the end user for an appropriated solution , calculates the trade offs, then writes the code.

    Most companies when they see a Programmer for $4.00 an hour try to go with them and then pay for it later. Because they soon realize they didn't hire a software developer they just hired a programmer.

  • by Hatta (162192) on Thursday November 10, 2011 @12:55PM (#38013690) Journal

    If that's the goal, then I don't know why the teacher doesn't give them a generic set of code to build off of (written by a make-believe programmer whom they "work with" or that existed in a book) - and each student still works entirely independently of each other.

    Because then students wouldn't be able to ask each other "hey, how did you do this?" or "hey, wouldn't this be a better way to do that?" Collaboration improves learning.

  • A Bad Method (Score:4, Insightful)

    by Kamiza Ikioi (893310) on Thursday November 10, 2011 @01:16PM (#38013928) Homepage

    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.

    That's annoying as hell for the smart kids paired with kids who just don't get it. Being one of those kids that didn't like "showing my work", I would have spent 50 minutes of a 60 minute class teaching my partner how I got the solutions. Conversely, there were kids smarter than me, and I didn't want them giving away the answer before I'd figured it out on my own. People need to learn how to solve problems on their own. In my humble opinion, math is only a team sport for anyone going above Calculus. I don't believe in that one for all, all for one junk in school. Let's save the teamwork for Phys-Ed.

    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.

    If that kid's parents want to pay me for after school tutoring, that's fine! Heck, I paid another student for music lessons over a summer in high school. He was a first chair, and I was 5th. My money resulted in him being paid for a valuable service that helped me make second chair the next year. But should he become the instructor of all the kids below him? Hell no, he was allowed to shine on his own. This guy went on with a music scholarship, and the rest of us just have band camp memories. Why hold him back? Why hold back excellence? I can only imagine someone like modern Einstein in high school wasting time trying to explain chemical bonding to a kid who will grow up to flip burgers. That's a far out analogy, but it highlights the problem, at least until later years of college where classes aren't just large groups of kids lumped together not by knowledge, but simply by age and geography.

    I want kids to go to school to learn, not teach remedial topics to their classmates.

  • Duh! (Score:4, Insightful)

    by gstrickler (920733) on Thursday November 10, 2011 @01:28PM (#38014042)

    Reading (and figuring out) someone else's code is one of the best ways to learn to program. It also teaches the value of commenting your code and making it understandable and maintainable by others.

    As for the "cheating" aspect:
    1. In the real world, programmers "cheat" by sharing code to get the job done with the least effort.
    2. Switch up the groups after every assignment so the learn to work with different people, you'll see a pattern in who is productive and who is a slacker.
    3. In the later phases, switch up the groups in the middle of the assignment, just like a real workplace.

  • Re:A Bad Method (Score:5, Insightful)

    by trcollinson (1331857) on Thursday November 10, 2011 @01:45PM (#38014200)

    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.

  • by Anonymous Coward on Thursday November 10, 2011 @01:48PM (#38014218)

    Collaboration improves most ANY human endeavor.

    Learning....Building...

    Even Cooking.....even when there are lots of cooks.

    Structure isn't the problem. It's the niching, and separation of minds that limits the results we can achieve.

  • by colinrichardday (768814) <colin.day.6@hotmail.com> on Thursday November 10, 2011 @02:52PM (#38014898)

    Making the top 90% doesn't seem so hard. Or did you mean top 10%?

  • by martin-boundary (547041) on Thursday November 10, 2011 @08:16PM (#38018044)
    Teaching isn't about producing results. A team effort is great when the goal is to create a product. Teaching is about training a mind to achieve a certain standard of competency. Two or more combined minds that achieve competency as a whole does not guarantee competency of the individuals.

When in doubt, mumble; when in trouble, delegate; when in charge, ponder. -- James H. Boren

Working...