Education Center

The Internet Computer Education Center is a resource aimed at supporting research, education, and the adoption of the Internet Computer. Here you’ll find open-source course curriculum, university focused initiatives, and academic community channels.

JUMP TO

Online Courses

The Internet Computer Association develops open-source course content available to educators, teaching assistants, and student leaders seeking to instruct the next-generation of developers on the infinite possibilities of building on the Internet Computer and the future of the internet. Course materials seamlessly integrate with Github Classrooms.

Blockchain and Cryptocurrency

In this course, students will learn about the fundamentals of blockchain technology as well as the cryptocurrencies built on top of it. Module 1 serves as an intro to the concept of blockchains, cryptocurrencies, limitations of these services, and payment channels. Module 2 explains tokens and gives students the opportunity to experiment with an ERC-20 style token built on Motoko. In Module 3 students begin their own implementation of a payment channel in Motoko, and in Module 4 they finish this implementation. Each module builds upon concepts learned and activities completed in the prior modules.

Modules

  1. Introduction to Blockchains
  2. Understanding Tokens
  3. Implementing Payment Channels
  4. More Payment Channels & Off-Chain Transactions

Distributed Systems

In this course, students will learn the fundamentals of distributed systems programming by building on top of the open auction platform we previously created in the Web Development section. Module 1 serves as an intro to this unit, providing a primer for Distributed Systems by reviewing distribution transparency and distributed time. Module 2 introduces students to the idea of "locking", borrowed from database management systems, which ensures that users cannot simultaneously bid on the same auction. In Module 3, students implement a feature that ensures bids are processed in the correct order. Finally, in Module 4 students explore how they can maintain bid "secrecy" in a distributed system through the use of hashing.

Modules

  1. Intro to Distributed Systems
  2. Locks
  3. Bid Ordering
  4. Hashing Bids

Protocol Design

In this course, students will learn about the basics of protocols, understand how core protocols create the internet as we know it, and develop a high-level conception of the Internet Computer Protocol. Using this knowledge, students will implement their own version of DNS and a basic banking application on the Internet Computer.

Modules

  1. Intro to Protocols, the Internet, and the Internet Computer
  2. Starting off Simple with DNS
  3. Banking as a Protocol
  4. Building on Top of a Protocol

Programming Languages

In this course, students will learn about the foundational elements of programming languages as well as the design principles behind Motoko and the Internet Computer, ultimately using these ideas to build their own simple stack machine. Module 1 serves as an intro to this unit, providing historical context for programming language design and how this relates to Motoko. Module 2 introduces the idea of a stack machine that can sequentially process instructions, and Modules 3 and 4 build upon this implementation to extend the functionality of the stack machine with type enforcement and branching.

Modules

  1. The Anatomy of Programming Languages
  2. Simple Stack Machine
  3. Type Enforcement
  4. Branching

Data Structures

In this course, students will learn about the foundational elements of data structures as well as how they work on the Internet Computer. Module 1 serves as an intro to this unit, providing context for data structure design and the tradeoffs to consider when weighing which to use in certain projects. Module 2 and 3 explore the distinction between Motoko's differing styles for writing data structures: object-oriented (collection of functions that mutate state), and pure (no methods, no mutations). Module 4 builds on the data structures explored so far. Students will get hands-on experience via the IC's BigMap library, learning to scale their data structures beyond a single canister in the process.

Modules

  1. Data Structures on the Internet Computer
  2. Object-Oriented Data Structure: Bloom Filters
  3. Pure Data Structures: Binary Search Trees
  4. Scaling Data Structures with BigMap

Web Development on the IC

In this course, students will learn how to develop web applications on the IC and ultimately implement an open auction platform similar to eBay. Module 1 serves as an intro to this unit, providing a primer for web development by reviewing canister messaging, HTTP requests, cycles, and autonomous canisters. Module 2 introduces students to the idea of an open auction platform and completes the majority of the backend required for such a project. In Module 3, students connect their backend code with a frontend accessible via browser. Finally, Module 4 has students implement an autonomous governance canister, that acts as the decentralized arbiter of our auction platform's feature upgrades.

Modules

  1. Intro to Web Development on the IC
  2. Open Auction Platform on the Internet Computer
  3. Connecting to the Frontend
  4. Autonomous Governance

Welcome to our community of educators, TAs, student leaders, and academic partners

Join the Internet Computer Partner Slack to connect with others researching, teaching, and investing in next generation software and applications.

Education & Lectures

A Generational Shift in Technology: Remarks on Decentralized Computing by Dan Boneh (Stanford)

DFINITY at UC Berkeley: Building Decentralized Apps on the Internet Computer

Motoko: A Language for the Internet Computer | Stanford Blockchain Conference 2020

Simplifying the developer experience

What is the DFINITY Canister SDK?

Requesting a Lecturer

Representatives from the ICA and DFINITY Foundation are available for speaking engagements for your class, meetup, or conference. Submit an inquiry to learn more.

Request

Internet Computer Fellowship

The Internet Computer Fellowship is a 12 month program for CS Students & TAs designed to build a network of ICP advocates and give them the opportunity to support local ecosystems of educators through knowledge sharing, lesson creation, and community organizing.

About the fellowship

Internet Computer Clubs

Internet Computer Clubs bring people and organizations together to learn and collaborate on products that help steward the next-generation of internet software and services.

Find a Club near youRegister a new Club