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
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.
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.
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.
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.
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.
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.
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.
Join the Internet Computer Partner Slack to connect with others researching, teaching, and investing in next generation software and applications.
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?
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
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