Slashdot Mirror


Rikers Inmates Learn How To Code Without Internet Access (fastcompany.com)

An anonymous reader sends the story of another prison where inmates are learning the basics of programming, despite having no access to the vast educational resources on the internet. Instructors from Columbia University have held a lengthy class at New York's Rikers Island prison to teach the basics of Python. Similar projects have been attempted in California and Oklahoma. The goal wasn’t to turn the students into professional-grade programmers in just a few classes, [Instructor Dennis] Tenen emphasizes, but to introduce them to the basics of programming and reasoning about algorithms and code. "It’s really to give people a taste, to get people excited about coding, in hopes that when they come out, they continue," says Tenen. ...Having an explicit goal—building the Twitter bot—helped the class focus its limited time quickly on learning to do concrete tasks, instead of getting bogged down in abstract discussions of syntax and algorithms.

24 of 173 comments (clear)

  1. Huh? by gstoddart · · Score: 5, Insightful

    learning the basics of programming, despite having no access to the vast educational resources on the internet

    Bah, when I learned programming there weren't "vast educational resources on the internet".

    It's been done.

    Since when the hell have we reached the point of "zomg, someone learned something without teh intertubes"??

    Because if other people haven't learned to basics of coding over the last few decades without the use of the internet, I'd be completely shocked. The internet is not a pre-requisite to learning, as much as people seem to think it is.

    --
    Lost at C:>. Found at C.
    1. Re:Huh? by ksheff · · Score: 3, Insightful

      It's as if the writer had no concept of the "dead tree" form of documentation: books. It may just blow his mind that some programmers used to write programs w/o computers.

      --
      the good ground has been paved over by suicidal maniacs
    2. Re:Huh? by Viol8 · · Score: 4, Funny

      " Because you can't just go to google or stackoverflow and copypasta your way out of a problem"

      There seems to be an entire subcontinent who've been taught to use that exact method to program.

    3. Re:Huh? by grimmjeeper · · Score: 2

      I guess they weren't needed for object-oriented programming (OOP).

      The flow chart method is only good for iterative programming. OOP is an entirely different way of approaching programming and flow charts aren't really useful.

      And to be quite honest, flow charts were never really all that useful for a lot of us. I started coding in the 70's. I learned how to design flow charts but figured out that they were superfluous and wasted time when I could be getting real work done. I can't remember the last time I wasted the effort to draw a flow chart. Sure, I do actual design and planning on larger projects. But I never add flow charts.

    4. Re:Huh? by Marc_Hawke · · Score: 2

      The Internet isn't required for learning, but it is required for Twitter. It seems a Twitter bot was a strange project choice when he knew going in that there was no Internet. In fact, he even printed out Tweets to show them what they looked like.

      How did they test their functionality? Did he have a fake API for them to hit against?

      --
      --Welcome to the Realm of the Hawke--
    5. Re:Huh? by grimmjeeper · · Score: 3, Informative

      Absolutely this. I learned my programming back before the Internet. And I learned by reading manuals and text books. And I can still do that.

      But why should I have to? I can get the same information faster by looking on the Internet. I still teach myself how to do new things by reading about it. The only difference is that I use my computer screen instead of dead trees. Well, that and the difference is that I can find answers to my questions in the literature a whole lot faster on the Internet than I can by digging through the appendix in the book(s).

      While it's a good idea to learn the basics without having people on the Internet do your homework for you (so you actually learn it), having the Internet as a resource makes the day-to-day job of programming so much easier and I take full advantage.

    6. Re:Huh? by __aaclcg7560 · · Score: 2

      I recently started converting old BASIC games from a book into Python to improve my programming skills for that language. On several occasions I had to write out informal flowcharts to understand the GOTO/GOSUB spaghetti hell that I was dealing with. No wonder I could never get any of these BASIC games to work on my Commodore 64 as a kid.

    7. Re:Huh? by grimmjeeper · · Score: 3, Interesting

      Proper formatting and commenting was possible in the old BASIC. It was just rarely done. When dealing with spaghetti code I start by going through the original source and clean it up with a coding standard and it makes the job of reading it so much easier. Well formatted code is, to me, more useful than a flow chart.

      True story. When I was in my assembly class, we were in the computer lab doing an assignment. One of my classmates asked me for help. His code had no spacing and his labels were just L1, L2, etc. so they didn't convey any meaning. I told him to go clean up his code and apply a decent coding standard with meaningful labels before I would help him. He found his problems pretty quick when he did that.

    8. Re:Huh? by The-Ixian · · Score: 2

      I find that "book vs. Internet" it is analogous to the difference between instructor lead classes and just having access to the training material.

      It is nice to have a text book that will shepherd you through a series of related subjects and ideas.

      The Internet is great for quick answers to specific questions.

      So, yeah, I love my Camel book and you will have to pry it out of my cold, dead hands.

      --
      My eyes reflect the stars and a smile lights up my face.
    9. Re:Huh? by dpidcoe · · Score: 3, Informative

      Yep, it's two different things, and I find that the two sources compliment each other quite well.

      The internet is great for getting instant answers and examples for specific questions, and that instant gratification is great for keeping me from being frustrated from being hung up on some stupid little thing for hours that the book forgot to mention. It comes with the downsides of learning how to do things but not why they're done (basically copying and modifying as opposed to creating), and feeling like I know more than I actually do (I know there's a term for this but I don't remember what it's called). There's also the loss of experiences gained through struggling with the code for hours at a time. A lot of the things I remember best I remember because I spent all day and all night fighting with it only to find out it was some stupid thing I'd missed somewhere else

      On the other hand, books are good for getting a broad overview of the subject. Since it's a lot harder to search a specific question and find the answer distilled down to a sentence and a few lines of sample code, there's generally a lot of reading of things that aren't entirely relevant to my question. Even though said things aren't relevant then, I often encounter them later and think "oh yeah, this is that thing the book was talking about". The downside to books though is that it's a lot harder (compared to following some internet quickstart tutorial) to just dive in and start, and that in turn makes it hard to contextualize and store the information presented in the book.

      Thinking back on my education, the best programming classes I took were the ones that combined a lecture and a lab segment. Get the broad overview of the concepts in the lecture and book portions, then get some practical examples that provide a base with which to test the lecture concepts on.

    10. Re:Huh? by NormalVisual · · Score: 2

      You should probably do it while naked, cold, hungry, and being beaten every time a verbose compiler flags an error. You should learn to code as if your life depends on it. Except no substitutes!

      *** SYNTAX ERROR LINE 3 - UNEXPECTED VERB "EXCEPT"

      ;-)

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    11. Re:Huh? by ksheff · · Score: 2

      A co-worker told me about a guy that used to work for IBM that lived in the woods somewhere in Pennsylvania. His project managers would mail him the requirements documents and he'd mail them boxes of punch cards with the complete programs. Other than the delay due to the USPS, I guess the workflow wasn't much different for the guys who came into the office every day.

      --
      the good ground has been paved over by suicidal maniacs
  2. Internet for programming? by chthon · · Score: 3, Interesting

    Hell, I learned a whole about computers without computer. I was 18 when I could afford one, a ZX Spectrum.

  3. You mean they use .... books??? by Viol8 · · Score: 3, Insightful

    Say it ain't so!

    My god, there's crual and unusual punishment, but making they have to read from a book - where's Amnesty International when you need them??

    How does this idiot think everyone up until the 90s learnt to code?

  4. Wait, what? by chinton · · Score: 2

    Only the basics? I learned the BASICs, Pascals, Modulas, and Cs without the internet...

  5. Re:Go back in for the free doctors that cover more by hajile · · Score: 2

    Ah, the old Hans Reiser retirement plan.

  6. Weird choice of project by PvtVoid · · Score: 3, Interesting

    Why have them write a Twitter bot if there's no internet access? There are thousands of interesting problems to solve with a computer code. Why that one?

  7. Without the Internetz? Horror! by barc0001 · · Score: 2

    How is this newsworthy at all? I learned programming as a kid from a book in the last 70s, before even BBSs were a common thing. LOTS of people learn that way. Hell it's actually better in many ways as you don't get distracted and can focus.

  8. Coding vs Programming by cwills · · Score: 4, Interesting

    Coding and programming are two different things (they are related, but they are different). Coding is learning the syntax of a language and the mechanics of implementing a solution to a problem. Programming is analyzing a problem and determining what computational steps are needed to arrive at a solution.

    In the mid 70's, my high school offered a FORTRAN programming class out of the math department. It was a full school year class that met daily. For the coding aspect of the class, we had one shot a week on the computer. On Friday we would hand in our punched cards and on Monday the teacher would return the cards and the compile/run printouts (the computer we used was the school district's main system). The time we spent actually coding was done outside the class room.

    The majority of the class however was learning how to program. Coding was a secondary aspect of the class (typically one day a week was going over specific FORTRAN concepts). Our first assignment was to break down the steps one used to make a phone call (step 1, walk over to the phone, step 2 pick up receiver, step 3 listen for a dial tone, step 4 if no dial done ...., etc.). We discussed and went over problem solving, algorithms, and how to break a problem down into it's discrete steps. Sometimes the problem was able to be solved without a computer (just analyzing the problem gave the final solution). Our coding assignments were usually stripped down problems that demonstrated that we could actually implement the solution (if I remember correctly, the biggest coding assignment was maybe 50 or so statements long).

    In the parent article, it sounds almost the same. They are being introduced on how to program.

    In today's environment, there are a lot of coding frameworks that have pre-canned solutions that address many typical programming requirements. So it's easy to approach solving a problem by learning the frameworks and connecting the pieces together. The real programming has already been done within the framework. This is both a blessing and a curse. The blessing is that a lot of people can code a solution to many real-life problems without needing to really understand the programming aspect. The curse is that the solution will more then likely be bloated, and computationally inefficient.

    The internet really helps with coding, it acts as a helpful reference for finding frameworks, the syntax of languages and little coding snippets.

  9. Question is how to get a job by ErichTheRed · · Score: 2

    I think it's a really good thing to try to help prisoners learn a skill. Anything that reduces recidivism is a good thing.

    However...have they thought of where these inmates would work when they came out? You can't get a job with the vast majority of companies if you have bad credit, let alone a criminal record. Everyone wonders why the recidivism rate is so high -- this is one of the reasons. If you can only get crappy off the books jobs, you're more likely to return to crime because it pays better.

    This is the major problem with the age of easy, cheap record checks. The second you're involved with the police at all, even if you're not convicted, your resume will immediately be tossed in favor of someone who doesn't have a record. Basically, sentencing someone to prison is permanently writing them off no matter for how long or for which crime. The inability to get meaningful work later on, combined with being housed with violent angry people for a long time doesn't make for a well adjusted person when they do get out.

  10. Re:jobs by tompaulco · · Score: 4, Insightful

    You merely contract to an overseas resource. The Indian company sells their services to mega-corp US, and use you as part of a pool of developers. Don't expect a decent income, though. Most globals are doing this already. They buy coding resources from India, get the source back, bang it into shape. It's far cheaper to get 90% for not a lot, and fix the bugs. The banking/c-card industry got in their first. Manufacturing and retail will be next.

    The Indian companies won't hire Americans. They only believe in Globalism when it benefits them.

    --
    If you are not allowed to question your government then the government has answered your question.
  11. Re:jobs by Anonymous Coward · · Score: 2, Insightful

    You're more likely to get background checked as a gardener than a programmer at a startup or small business. Nobody expects a programmer to have a record, so they're not looking for it.

    If there's even a checkbox on the application, you just lie. Chances are good that they'll never check at a small place. And it's a safe bet that while you won't get hired if they do, and an even smaller chance that you'd get fired if they find out later, they won't bin your application if you lie.

  12. I did by Anonymous Coward · · Score: 3, Informative

    I did, he was a corporate VP by the time we got bought out. It costs more to screen them, but they tend to stay a lot longer than the entitled generation, are willing to learn new things, and are a lot more resourceful than our standard employee with a CS degree. My experience has been largely in the programming field, with most of the convictions drug related, and we've only had about a dozen. Hell, one who worked with me for 5 years went to one of the defense contractors and got a security clearance; I was interviewed in his clearance process. There are plenty of organizations who are willing to hire a good employee in spite of a criminal record. There are, on the other hand, a bunch of ex-cons who haven't decided to change their lifestyle, so calling references is crucial.

  13. Re:jobs by The-Ixian · · Score: 2

    Whatever happened to the "debt to society: paid" notion?

    Can companies legally discriminate based on a served sentence?

    --
    My eyes reflect the stars and a smile lights up my face.