Bitcoin Engineering (CS251P) by Stanford (Coding skills required)

  • Level: Hard
  • Certificate: Yes
  • In_person
  Rating: 4.9 (no reviews)

Course Details

The first two weeks of the course will provide a fast-paced introduction to Bitcoin and Bitcoin-enabled computing.

In subsequent weeks, you will build Bitcoin-powered versions of several popular Internet services, previewing a future where services are paid for not by ads or monthly fees but by per-use micropayments. There will be two weeks of open time for you to build interesting Bitcoin projects (the weeks of 1/18 and 2/15). In other weeks, we will provide you with stub code illustrating the basic mechanics of a Bitcoin-powered Internet service. You, as an individual or as part of a small group, will have a week to get the stub code running, add your own improvements, and test it with your peers in an online marketplace.

Grading will be based entirely on class participation. There is no final examination. The best student projects each week will be written up in Bitcoin Magazine.

Course Summary

Familiarity with basic programming at the level of Stanford’s CS106B is required, particularly in Python. Some exposure to HTML, CSS, and Javascript will also be helpful. Students who have previously taken the Autumn 2015 versions of CS251 and CS251P will have more context, but this course is primarily new material.

  • Introduction to Bitcoin. Introduction to basic Bitcoin concepts such as transactions, digital signatures, the blockchain, and mining.
  • Introduction to Bitcoin Computing. Introduction to Bitcoin micropayments. Learn how to transparently add micropayments to any web service using payment gateways that implement the HTTP 402 error code. Gain experience by running and then modifying several demo apps.
  • Hack Week 1. A free week for your creativity. Extend any of the micropayments demos that you’ve worked with over the previous week to add new functionality, or build a new one entirely.
  • Bitcoin Instagram. Develop an app that allows you to set a price on your Instagram photos and build a machine-payable stock photo search engine. Project: after getting this to work, experiment with monetizing your user-generated content on other services.
  • Bitcoin Twitter. Develop an app that allows you to accept micropayments for making retweets. Add permissions and filters to ensure you only promote content that’s interesting to your followers. Project: experiment with paid endorsements on your other social networks.
  • Bitcoin WordPress. Develop an app that lets you monetize your blog by charging a small micropayment for each page view. Project: place the same micropayments wrapper around other types of content, like wikis or database result pages.
  • Hack Week 2. A free week for your creativity. Extend any of the code that you’ve worked with over the previous weeks to add new functionality, or build a new demo entirely.
  • Bitcoin Linux. Develop a command line program that outsources part of its code to the cloud, charging micropayments for each use. Project: build your own simple machine-payable command line app.
  • Bitcoin Google. Develop a simple web search engine funded not by ad views but by micropayments, turning the primary customer into the user rather than the advertiser. Project: extend the search functionality to search other kinds of content.
  • Bitcoin Dropbox. Develop a file server that charges clients per byte with precision even below a single satoshi (below $0.000004 USD) using Bitcoin micropayment channels. Project: build other kinds of grid computing services with fine-grained micropayments.

We think this should be an exciting course, and we encourage you to ask the students from last quarter’s course (CS251/CS251P) whether they enjoyed it. We’ll see you in class!


The Bitcoin Engineering (CS251P) by Stanford (Coding skills required) Reviews

The comments are closed.