Git Product home page Git Product logo
Internet Computer Education photo

dfinity-education Goto Github PK

repos: 8.0 gists: 0.0

Name: Internet Computer Education

Type: Organization

Bio: The Internet Computer reinvents the internet as a global computer that hosts open internet services & secure software. New open-source materials every month.

Twitter: dfinity

Blog: https://dfinity.org/

Internet Computer Education's Projects

blockchain-and-cryptocurrency icon 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.

data-structures icon 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.

distributed-systems icon 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.

docs icon docs

Documentation for writing code for the Internet Computer

governance icon governance

In this course, students will learn about open governance on the IC and implement their own NNS-like system to create an open internet service. Module 1 serves as a primer for all things governance; we discuss the ideas behind open governance models, how the IC implements open, autonomous governance via the NNS, and the potential for open internet services. In Module 2 students begin implementing their own version of the NNS by allowing users to "lock" balances for neuron creation. In Module 3, students add the ability for neurons to vote on proposals and follow other neurons. Finally, in Module 4 students implement canister upgrades for passed proposals.

programming-languages icon 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, and will build their own simple stack machine using these ideas. 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.

protocol-design icon 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. Module 1 serves as an intro to this unit, providing context for protocol design that will then be leveraged in Modules 2-4 to implement several applications on the Internet Computer.

web-development icon web-development

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.