182 karma · joined June 6, 2012
Hyperlinks on the Interwebs: ============================
* http://elliotthauser.com
* http://trinket.io
* http://github.com/eah13
* http://hastac.org/blogs/eah13
* http://bit.ly/elliottgplus
* http://linkedin.com/in/elliotthauser
* http://unc.academia.edu/elliott
For scientists or data analysts, jupyter notebooks are a great choice since they mirror the professional and research tools they'll use.
For web development, an in-browser IDE like Cloud9 would be my choice to get an arbitrary room of adults up to speed.
But for middle or high school audiences, or even adult beginners, solutions like the above are far too complex. It's easy to get a certain expert blindness, but a Jupyter notebook for instance can actually be a huge problem form someone trying to understand flow of control, since you can execute code blocks in an arbitrary order into the same runtime.
Tradeoffs between power and usability abound. Jupyter is a good blend. A full IDE is power. Skulpt prioritizes usability. Some group of users fits into each of these buckets.
So (surprise, surprise!) The meanings of 'best' and 'terrible' are highly dependent upon specific user needs.
Client-side execution lets you do visual things that would be slow and complicated (maybe practically impossible) if you ran them server side. Visual results are one of the most important motivators for students learning to code.
Take our Sense HAT emulator, made in partnership with Raspberry Pi:
This uses 3D CSS and SVG to make a virtual Raspberry Pi that you can rotate around. The Sense HAT has a gyroscope, accelerometer, etc that kids can actually program to respond to these movements.
The alternative to this emulator was the Raspberry Pi Foundation sending boxes of computers to classrooms (which they still do). But the emulator makes this scalable while also synergizing with the computers: kids can download their code and run it on the real device if they want.
The next phase in the project is letting kids run their code in space. Mission Zero uses the emulator to let European kids get their code run on one of the Raspberry Pis in orbit on the International Space Station:
https://trinket.io/mission-zero
Skulpt makes this possible.
Why not Brython or RapydScript? Theoretically, either could do most of this. Skulpt is designed for the needs of teachers and learners. Those projects have slightly different goals (making Python a web scripting language and providing a Pythonic way to write JS, respectively) which may make them a better fit for your project but we've found Skulpt to meet our users' needs the best. Our users are teachers and students in middle and high school, and some undergrads, who want to write, run, and share programs and websites as quickly and easily as possible. They need reasonable speed, fidelity to Python and lots of fun visuals. Turtle, Matplotlib, and now the Sense HAT emulator provide the visuals.
Skulpt isn't perfect but it's got a great community and is getting better all the time. I think it's the clear best choice if your users are teaching or learning. And projects like Anvil (anvil.works) show how the project can work outside of education as well, in that case for non-specialist business analysts/ops people who would otherwise be stringing together spreadsheets.
Our users have benefitted hugely from contributions by Meredydd, Albert Jan, Michael Ebert, Marie Chatfield, Scott Rixner, Brad Miller, and a whole bunch of other contributors. Go team!
Plug: you could easily prototype this with Trinket embeds. Add #!/bin/python3 to the top of our Python (Skulpt) trinkets to get strict Py3 mode. Add data files via the + button (no directory support, so treat them as all in the local directory). Use the Share menu to get embed code. Paste. You've got your first interactive lesson. If your users like it, you can then decide whether and how to build skulpt in to the site.
Nicely done- looking forward to the next iteration
You're likely right that an apology with less commitment could have been effective as well.
Interesting to think of Mead as the analog, and perhaps a more apt one. Thanks. Personally I'm much more familiar with biology and with Goodall. But, from my perspective cultural anthropology is a science whether or not it wants to be. The AAAs rejection of 'science' may be more indicative of science's rejection of inductive logic than anything.
By the way, older people who share the characteristics of being only lightly acculturated (i.e. eccentric) share the relevant characteristics with children and may be able to learn things like languages with childlike speed. Hence, I believe, PG's observation that startup founders of any age tend to be weird, quirky, or poorly socialized in various ways.
It's well documented that the median language-learning speed/ability of younger people is greater than that of older people.
Happy to hear suggestions of others- I haven't found much and haven't looked lately.
I do think that much of what humans do is ascientific. But Jessica's examination of founders, esp via a structured interview, is not in this category.
Experience is a big factor, but I think there's a limit to the amount of language learning most 50 year olds can undergo, even in a decade. But luckily for us we agree young exposure to code is a good thing :)
Phenomenon > observation > Induced hypothesis > Method choice > Deduction via metrics > Phenomenon ...
Starting at "a concrete basis for performing repeatable, independent experiments" is a skyhook. Scientists have a hand in generating that "basis" and it's called inductive logic.
I think we agree on the fact that the production of knowledge involves the testing of hypotheses but not whether the generation of hypotheses via observation of phenomena is part of science. Semantic, I suppose, but I think it's crucial to take the rudder so to speak by developing hypotheses deliberately.
For many learners technology is a turn-off because it seems 'arbitrary'. It is, in the same sense that a biological organism or historical event is arbitrary. It's only with context that these things start to become intelligible. So ontogenous CS education is about giving a historical context to modern technology.
Wittgenstein's philosophy of mathematics might be interesting to you. His description of calculation as a linguistic process should settle the issue if you buy it.
Edit: just found this related item on HN, a math prof examining the nature of a proof: http://profkeithdevlin.org/2014/11/24/what-is-a-proof-really...
Edit: whoa, downvoters! This comment was about getting more information to inform productive discussion. Not sure who would disagree with that?
Agreed. I'd add this thought: code is a human language and like all languages fluency is most easily developed as a child but immersion and repetition can help adults develop it too.
An apology (in the original sense) of Jessica's work for those who think that the experiences of these individuals don't matter: What I think people don't get about Jessica's interviews is that they're part of a scientific process of understanding what makes great founders and great companies. Many discredit qualitative, observational scientific data. But for new, rare, or poorly understood phenomena, observation is the only way to make scientific progress. In engineering the phenomena are often well understood, common, and within the discipline, familiar. In this case deductive logic, reasoning from known principles, is quite fruitful; but its success biases engineers against inductive reasoning. But for other subjects, such as what makes a great startup founder, or what makes a great female startup founder, the inductive method is much more fruitful.
This is not some anomaly: all sciences started with observation and the inductive method. These are the beginnings of insight, generating hypotheses to be tested. We're still quite early in our understanding of startups, and even more so in our understanding of female-founded startups, that this approach is not just warranted, it's the only way to make true progress.
Jessica is like the Jane Goodall of startup science. Even though she's studying individual founders she's ultimately helping us understand more about ourselves.
Seems quite likely that someone would have discovered it sooner, especially since it's so simple to exploit.
A project like this should be an open source side project we build because we want it, not a startup.
Which one's always on you? If you, like some photographers I know, always have your camera around your neck, great. For everyone else, there's the iPhone.
Edit- added attribution