Do

9 others are in

    Sanhith Chowdary Ludwina Penny Haywood Calder Beads Land-Trujillo jennifer prod Alessandra Rizzotti
Do It

Develop a language arts curriculum for computer programming.

Beads Land-Trujillo

If you can write a cooking recipe, a knitting pattern, or directions to the local supermarket, you can write a machine language program.

Yet formal training in computer programming is generally limited to those who demonstrate proficiency in higher mathematics.

Providing an alternate educational path to programming languages, as languages, would democratize these skills and help to counter the gender imbalance in technology fields.

'All the high-school students will be taught the fundamentals of computer technology will become proficient in binary arithmetic and will be trained to perfection in the use of the computer languages that will have developed out of those like the contemporary “Fortran.”'

~ Isaac Asimov (writing in 1964 about the world in 2014)

Continue to google.com

Inappropriate?

Discuss

  • Beads Land-Trujillo

    Four hours of prototyping and research to draft just a single new page of the Noclisi textbook. This is going to take a while.

    Only about 17⅓ chapters to go.

    • Beads Land-Trujillo

      The challenge of basing learning exercises on a made up game is that to make it realistic one must give a lot of thought to how the mechanics of play would actually work out in practice.

  • Beads Land-Trujillo

    "Dijkstra’s papers contain a single reference to BASIC coinventor John Kemeny. Dijkstra read Kemeny’s 1983 article in Daedalus, an article that discussed the idea of computer literacy and declared that “the development of ‘structured languages’ in recent years has been a giant step forward.” Dijkstra simply wrote a dismissive sentence about the article, saying it “gave a striking example of superficiality” by comparing computer languages to natural languages (EWD 858).

    "The context for these statements was a time of formation and fortification of the discipline of computer science. Also important was that at this time, computer scientists were undertaking the development and use of languages that might support first formal verification (the provability of programs) and later the weaker, but still potentially very useful, technique of program derivation (Tribble 2005). BASIC, created for quick interactive use and very amenable to creative production, was not a suitable language for Dijkstra’s goals."

    http://10print.org/

    Formal verification (a failed project) and program derivation might have excited mathematicians, but for most folks who learn to program, creative production is pretty much what the game is about.

    Yet these days, Kemeny's insight that ordinary folks are perfectly capable of writing computer programs--for the very reason that computer programming languages are not all that different from the natural languages we all use every day--is largely forgotten.

  • Beads Land-Trujillo

    Hi Alassandra, Liz,

    Here's a new attempt to make programming instruction more digestible without a reliance on higher math. It's more college reading level than grade school as I'm drafting it, but I hope you can imagine how through creative materials (song, story, animation, etc.) this could be presented to an audience at any age level.

    https://docs.google.com/document/d/1dyYH8uq4KNh4aYs4b4TXR2KrjnqzlT2zPy9W0iWvxKA/edit#

    My intent in the subsequent sections will be to start introducing kinesthetic learning exercises where students will work with partners to develop an understanding of some basic uninflected and intransitive verbs, each corresponding to machine language opcodes. An understanding of machine language architecture and programs as exercises in following directions to achieve a goal, would be built from there.

    I'm not expecting to be able to work on this again before this weekend, but please do stay tuned and offer any thoughts you may have in reaction to the material.

  • Liz Dwyer

    This is a great idea--and could go a long way toward demystifying coding. We act like your brain has to have some special sort of setting to be able to understand it, but if we actually teach it to kids from a young age, it'll become second nature to them. But what's concerning is that unless we address the sexism in the industry, whether we teach programming like we're teaching any other language won't matter to the ingrained brogrammer culture. I know from stories friends have shared that it's really THAT bad--and tech isn't the only field where being a "culture fit" becomes code language for discrimination--but that ValleyWag article that's linked in the Facebook post was pretty shocking. It should be a must-read for everyone.

    • Beads Land-Trujillo

      Liz, here's the subtext that I left out of the original post: I firmly believe that if there were a route to large numbers of individuals learning to program as an exercise in language arts, that we'd see a new culture emerge with those students as the entrepreneurs and innovators among them enter the workforce. (And this includes adult students.)

      In the comments to Nitasha Tiku's article on ValleyWag, she cites to Om Malik's article on "pattern vs. fallacy". We see "patterns (or fallacies)" in the sexism in brogrammer culture, we see it in carbon-copy startups that try to achieve innovation by doing what came before, we see it in the classrooms that stymie girls in learning math, we see it in the curricula that make computer science learning contingent on maths performance, and we see it in the multitude of biases (both sexist and otherwise) that are baked into the technologies that come out of the tech industry. Another commenter on the same article notes that most of those who currently write computer code amount to "brick layers". Such "patterns (or fallacies)" are embedded at every level.

      Will teaching a different group of students a different way to think about computers that will lead them to applying that knowledge in different ways matter to ingrained brogrammer culture? Hopefully, not.

      Why do I say that? Because what I'm wanting for those students who are approaching the tools so very differently would be that they build parallel institutions (what Gandhi called constructive programme). Rather than try to change a culture stuck in old patterns, build a new culture that subverts the old culture by obviating it. Address the sexism by showing that success can be had without the sexism.

      But as another poster on Tiku's thread states somewhat disingenuously (but nonetheless he's got a point), it's unlikely that women are going to do much to change an industry when so few women appear to get established in the industry. It's pretty challenging to prove industry success sans sexism if the critical mass of those in the industry are inclined to sexism.

      The goal here is tip the balance of just who constitutes that critical mass, by broadening access to knowledge. Let the brogrammers try to get jobs at a new crop of programming arts incubators and see how far their "culture fit" gets them.

  • Alessandra Rizzotti

    Beads- I'm curious if you've found a way to make computer programming easier to digest- or if you know of educational resources? We created a program at GOOD called Coding for Good: http://cfg.good.is/ , but I was wondering if you knew of others?

    • Beads Land-Trujillo

      Hi Alessandra, I've posted a link to a new attempt at digestible programming instruction at the top.

        • Beads Land-Trujillo

          Yes! Yes! Yes!

          This is amazing! It would be someone who was programming since they were 7 to have come up with this!

          Why is there no "Is Great" button?

          I only wish I were as capable as Mr. Shapiro is with creating things that are visually appealing.

          • Alessandra Rizzotti

            Perhaps you can team up with a designer? In NY- there's such a great community! Check out good.is/design to see more, and learn from thought leaders in that field. Adele Peters, the hub manager of Design, is someone that used to live in NY and she knows of cool resources. You can Follow her here: http://www.good.is/members/adele_peters. I know Parsons and NYU have great Interactive Media schools and they design for tech- not just websites, but also creative programs/tools for education/art!

            • Beads Land-Trujillo

              As I expected, the designer of Robot Turtles has quite got his hands full with his current project, what with his now expecting to produce significantly more copies of the game than original targeted.

              I'll try following up sometime in October/November.

            • Beads Land-Trujillo

              I just sent him a mash note. Funded in only 5 hours! But then, he's clearly got a much better command of the production logistics that many Kickstarter campaigns, let alone a working prototype.

              I'm a graduate of NYU and attended the New School (home of Parsons). I know there are designers here aplenty. My challenge has been finding designers whose vision aligns with my own.

              I've worked in the technology field, and moved over to the marketing side of things after a few years (and eventually left the industry) because I simply didn't connect with people who are excited about tech, or even excited about design for tech, as such.

              The brogrammer culture in 90s New York wasn't as bad as in 2010s Silicon Valley, but interactive media stills seems to attract folks who are more excited about the newest toy (whether its a piece of hardware or a media format) than about the social implications of tools vested with language. All good people, certainly, but typically not the audience who see alternative approaches to computer instruction as anything more than something interesting someone else might be doing. I'd be happy to find the exception, of course!

              I'd much rather work with people who get excited about illustrating children's books for Scholastic (also here in NYC) in an effort to excite children about novel cultures and new ways of thinking. But it all comes down to a question of who you know, doesn't it?

              That's why Robot Turtles is so marvellous! (I don't know that I've ever used that word for anything before, but here it fits!) It's proof that computer concepts can be taught without being predicated on computer technology.

              Heck, I could imagine a variation on this game for adults following with the same principle of players bossing each other around, that would teach the same programming concepts, without requiring that a single person at the table knew the first thing about how to turn on a computer.

                • Beads Land-Trujillo

                  Okay, that's exactly my point. What I'm wanting to see embraced is "education for tech". If someone has to know how to turn on a computer (heck, if someone need have access to a computer) in order to learn these concepts and develop these skills, we're doing it wrong.

                  The goal is not to put more computers in front of students (even historically underrepresented students), it's to develop students' ability to understand what we as humans do to communicate plans of action to computers, even in the absence of any computers. This is about human potential, not computer solutions.

                  I'm envisioning a world in which computer programmers start writing their first programs on loose leaf paper with technology no more sophisticated than a three-ring binder and a number 2 pencil.

                  Being able to do this, IMHO, will much better prepare them for using computers than any "tech for education" approach that starts by sticking students in front of a monitor, where much of the experience is already prefigured by the spatial and social configuration of the machine (software, hardware, and ergonomic).

                  "Tech for education" is a mindset that was already firmly entrenched before I even got to college. If anything, the critique of thinking computers are the answer in the classroom has died down since then.

                    • Beads Land-Trujillo

                      When more materials like Robot Turtles and the Noclisi textbook I'm now drafting up exist and have been shown to effectively instill the planning and communication skills I'm pointing to, that might be where I end up.

                      Until those materials exist however, I'm just spouting theory. Hence my wanting to find others to develop such materials with. Theory without practice doesn't do the job.

                      • Alessandra Rizzotti

                        I think you can only test theory by being in the environment that you want to test it in- which is why I suggested a STEM Program. PS- you're featured on our homepage today!

                        • Beads Land-Trujillo

                          Ah, but is this really a STEM program? I see it as more general education. Planning and communication are not skills specific to science and engineering. And where the goal is to get students thinking about their tools as actors in their world, rather than things that exist to be used, it rather cuts against the grain of how we typically hold the word "technology".

                          I believe this approach could support the objectives of STEM, but I also worry that the beliefs and practices that go into STEM fields and STEM education as they are presently constituted are far too overdetermined to provide a comfortable home for what I'm calling for--at least at this early stage.

                          Think of it in terms of how a large business might spin off a new startup rather than try to pursue the vision of that startup in house. They do this when it appears that the vision is valuable, but also sufficiently out-of-sync with the institutional culture as to risk not flourishing if pursued within the bounds of that culture.

                          I'm wanting to build something new here, and my sense is that trying to shoehorn it into old ways of doing things and old ways of thinking isn't the way to achieve that.

                          There's a reason I'm calling for this under the banner of "language arts". It's because I want language, and not technology or math or engineering, to be the conceptual focus around which this approach coalesces.

                          Oh, and thank you for the homepage bump! I did wonder at the new followers from GOOD.is corporate! Hopefully I'll prove worthy of the extra attention, despite being so terribly obstinate and unyielding in my stance.

                          • Beads Land-Trujillo

                            Another way of thinking about this is that while I'm open to working with individuals who have an investment in STEM, I'd be calling on them to do something decidedly un-STEM-like.

                            This is something that I expect will be hard enough for those imbedded in STEM to do without the extra institutional constraints of doing it within the confines of a STEM program.

                            Meanwhile, I'd rather that creative people who might be interested in getting involved not see it as a requirement that they have one foot in STEM to even participate.

                            The student population this approach is most geared towards, after all, are not those who already think of themselves as technologists, but those who see technology as that stuff people "good at computers" (or even "good at learning about computers") do.

                            There's already a cultural divide between those "good at computers" and the rest of the population. I don't want to be positioning this project on the wrong side of that divide.

                            • Beads Land-Trujillo

                              I've added a section to the "manifesto" clarifying how the focus here on skills, not tech. Thank you for helping me to further articulate and clarify that point.

                            • Beads Land-Trujillo

                              No, again, "digital tech immersed in all subjects" is tech for education thinking. I'm advocating education (be)fore tech.

                              Again, if a student needs access to a computer (let alone the Internet) to learn the principles of planning and communication that are necessary to write programs, we're doing it wrong.

                              Further, if higher level languages being taught before machine language has already got the cart before the horse, organizing our attention around network technologies is far and away coming at the problem from the wrong direction.

                              It isn't that "digital tech" should be part of an English or Social Studies curriculum, it is that we should be inculcating the skills that these non-STEM subjects are much better at teaching in ways that better prepare students to easily understand what makes the tools we gloss as "digital tech" possible.

                              There's a reason I don't present the Noclisi as inside your computer but rather as living on a mysterious unmapped continent. There's a reason the word "computer" will never appear in this draft textbook, and that the only thing "digital" going on involves the digits of each hand.

                              It's because the focus is to be on the skills that the human student is called on to develop, not the features of some technology or other that those skills make possible.

    • Beads Land-Trujillo

      Well, I found a way that made computer programming easier for me to digest when I was in grade school.

      I spent months as a kid pouring over what were, at the time, largely nonsensical manuals on the Apple ]['s 6052 processor. Then, one day, while paging through the appendices to one such book, I came upon a chart that cross-referenced opcodes with modes.

      I'd glanced at this table many times previously, but this time, and I really don't know why, I turned the book on its side. Suddenly it all made sense! I realized why the book was so confusing! The entire text had been organized around modes, with opcodes only really being discussed in passing.

      What does this mean? Well, opcodes are the verbs of a machine language (what I now understand our education system has taken to calling "action words"), while modes amount to the forms a verb can take--what in English we think of in terms of inflection, tense, transitivity--and the resulting grammatical rules that apply to the rest of the sentence in which those verbs operate.

      Yet all the books I had were teaching the grammar first! This would be like learning a new language by first figuring out how to put together a perfect sentence, and then acquiring a basic vocabulary!

      But here's the thing: to someone who thinks easily in mathematical terms, that's the right way to present the material. Don't believe me? One word: algebra.

      Indeed, think back to your primary school education and the chapter on diagramming sentences. Do you remember the student who struggled with language arts, and then they were given the tools to diagram their sentences, and their eyes lit up? (Perhaps you were that student?) These are the folks for whom teaching machine language grammar first is the obvious choice.

      But for me, the material was quite simply being presented sideways. It took turning it right-side up for me to make sense of it.

      And it's a good thing I did, because once you understand machine language, all other programming languages are child's play. Why? Well, all the challenging concepts that make higher level languages so powerful amount to so many machine language instructions. So if you think the concept out as machine code, you can think the concept.

      Machine language can be thought of as the phonics of all higher level programming languages.

      So, yes, I found a way to make computer programming easier to digest. The challenge is figuring out how to translate that personal route to easier digestion into materials and methods that others can learn from. This isn't something I expect to be able to do on my own. Hence my posting here.

      https://docs.google.com/document/d/1UWiXy5hunXEAok0QVBwV2S4yM_-mYj5WR3HgvYFErZM/edit#