"tutorial" entries

Learning programming at scale

Bringing some of the benefits of face-to-face learning to millions of people without access to an in-person tutor.

Millions of people around the world — from aspiring software engineers to data scientists — now want to learn programming. One of the best ways to learn is by working side-by-side with a personal tutor. A good tutor can watch you as you code, help you debug, explain tricky concepts on demand, and provide encouragement to keep you motivated. However, very few of us are lucky enough to have a tutor by our side. If we take a class, there might be 25 to 50 students for every teacher. If we take a MOOC (Massive Open Online Course), there might be 1,000 to 10,000 students for every professor or TA. And if we’re learning on our own from books or online tutorials, there’s no tutor or even fellow learners in sight. Given this reality, how can computer-based tools potentially bring some of the benefits of face-to-face learning to millions of people around the world who do not have access to an in-person tutor?

I’ve begun to address this question by building open-source tools to help people overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of a program’s source code. Without this basic skill, it is impossible to start becoming fluent in any programming language. For example, if you’re learning Python, it might be hard to understand why running the code below produces the following three lines of output:


A tutor can explain why this code prints what it does by drawing the variables, data structures, and pointers at each execution step. However, what if you don’t have a personal tutor?

Read more…

Comment: 1
Four short links: 21 November 2013

Four short links: 21 November 2013

Offline Design, Full Text, Parsing Library, and Node Streams

  1. Network Connectivity Optional (Luke Wroblewski) — we need progressive enhancement: assume people are offline, then enhance if they are actually online.
  2. Whoosh fast, featureful full-text indexing and searching library implemented in pure Python
  3. Flanker (GitHub) — open source address and MIME parsing library in Python. (via Mailgun Blog)
  4. Stream Adventure (Github) — interactive exercises to help you understand node streams.
Comments Off on Four short links: 21 November 2013
Four short links: 10 October 2012

Four short links: 10 October 2012

Intuitive Linear Algebra, Bayes Intro, State of Javascript, and Web App Builders

  1. An Intuitive Guide to Linear AlgebraHere’s the linear algebra introduction I wish I had. I wish I’d had it, too. (via Hacker News)
  2. Think Bayesan introduction to Bayesian statistics using computational methods.
  3. The State of Javascript 2012 (Brendan Eich) — Javascript continues its march up and down the stack, simultaneously becoming an application language while becoming the bytecode for the world.
  4. Divshot — a startup turning mockups into web apps, built on top of the Bootstrap front-end framework. I feel momentum and a tipping point approaching, where building things on the web is about to get easier again (the way it did with Ruby on Rails). cf Jetstrap.
Comments: 3
Four short links: 3 August 2012

Four short links: 3 August 2012

CV Camouflage, Best Practices, Failure Conference, and Fiber Lessons

  1. Urban Camouflage WorkshopMost of the day was spent crafting urban camouflage intended to hide the wearer from the Kinect computer vision system. By the end of the workshop we understood how to dress to avoid detection for the three different Kinect formats. (via Beta Knowledge)
  2. Starting a Django Project The Right Way (Jeff Knupp) — I wish more people did this: it’s not enough to learn syntax these days. Projects live in a web of best practices for source code management, deployment, testing, and migrations.
  3. FailCona one-day conference for technology entrepreneurs, investors, developers and designers to study their own and others’ failures and prepare for success. Figure out how to learn from failures—they’re far more common than successes. (via Krissy Mo)
  4. Google Fiber in the Real World (Giga Om) — These tests show one of the limitations of Google’s Fiber network: other services. Since Google Fiber is providing virtually unheard of speeds for their subscribers, companies like Apple and I suspect Hulu, Netflix and Amazon will need to keep up. Are you serving DSL speeds to fiber customers? (via Jonathan Brewer)
Comments Off on Four short links: 3 August 2012
Four short links: 25 August 2011

Four short links: 25 August 2011

Jobs Quotes, Tao of Programming, Distraction, and Canvas Tutorials

  1. Steve Jobs’s Best Quotes (WSJ Blogs) — Playboy: We were warned about you: Before this Interview began, someone said we were “about to be snowed by the best.”; [Smiling] “We’re just enthusiastic about what we do.” (via Kevin Rose)
  2. The Tao of ProgrammingThe Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages. Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. But do not program in COBOL if you can avoid it. (via Chip Salzenberg)
  3. In Defense of Distraction (NY Magazine) — long thoughtful piece about attention. the polymath economist Herbert A. Simon wrote maybe the most concise possible description of our modern struggle: “What information consumes is rather obvious: It consumes the attention of its recipients. Hence a wealth of information creates a poverty of attention, and a need to allocate that attention efficiently among the overabundance of information sources that might consume it.” (via BoingBoing)
  4. 31 Days of Canvas Tutorials — a pointer to 31 tutorials on the HTML5 Canvas.
Comments Off on Four short links: 25 August 2011
Four short links: 28 June 2011

Four short links: 28 June 2011

Mediasaurus Dix, Mobile Numbers, Machine Learning, and Software Patents

  1. Networks Blocking Google TV — the networks are carrying over their old distribution models: someone aggregates eyeballs and pays them for access. In their world view, Google TV is just another cable company. They’re doubling down on this wholesale model, pulling out of Hulu and generally avoiding dealing with the people who ultimately watch their shows except through ad-filled shows on their corporate sites. (via Gina Trapani)
  2. Mobile Market Snippets — lots of numbers collected by Luke Wroblewski. After the Verizon iPhone launched in the U.S., Android suffered its first quarterly decline. Apple’s share of the U.S. smartphone market gained 12.3% to 29.5% in the March quarter while Android’s share in the U.S. fell from 52.4% to 49.5% — its first sequential loss in any region of the world since early 2009. The post has lots more like that.
  3. Unsupervised Feature Learning and Deep Learning TutorialThis tutorial will teach you the main ideas of Unsupervised Feature Learning and Deep Learning. By working through it, you will also get to implement several feature learning/deep learning algorithms, get to see them work for yourself, and learn how to apply/adapt these ideas to new problems.
  4. A Generation of Software PatentsThis report examines changes in the patenting behavior of the software industry since the 1990s. It finds that most software firms still do not patent, most software patents are obtained by a few large firms in the software industry or in other industries, and the risk of litigation from software patents continues to increase dramatically. Given these findings, it is hard to conclude that software patents have provided a net social benefit in the software industry.
Comment: 1