Please describe your proposed solution
The free course from Código Brazuca for 100 students, starting with Web 3 Fundaments and advancing to Haskell, offers a strategic solution to increase the number of developers capable of building on the Cardano blockchain. By first introducing programming fundamentals and then diving into Haskell’s functional programming paradigm, the course prepares developers to create smart contracts. With this approach, more people will be able to contribute to the Cardano ecosystem, promoting innovation and strengthening the blockchain market in Brazil.
Developers in Brazil
The software developer community in Brazil is one of the most vibrant and rapidly growing in the world, reflecting the growing importance of technology and innovation in the Brazilian economy and society. With a robust technological ecosystem, Brazil has stood out not only in Latin America but globally as a significant hub for information technology talent and software development.
Size and Growth
Although specific figures may vary according to different sources, it is estimated that Brazil has over 400,000 software developers, with forecasts indicating continued growth in this number. This is partly due to investments in technological education and the increasing interest of younger generations in technology-related careers.
Education and Training
Brazil boasts a strong network of higher education and technical institutions offering courses related to information technology, including software development, computer science, and computer engineering. Additionally, there's a proliferation of bootcamps, online courses, and training programs that facilitate the rapid development of specific programming and technology skills, enabling more people to enter the profession.
You can check the official source here: <https://github.blog/2023-11-08-the-state-of-open-source-and-ai/>
1. Fundamentals of Web 3
Course Objectives:
- Understand the transition from Web 2.0 to Web 3.0
- Learn the core principles of blockchain technology
- Explore decentralized applications (dApps) and smart contracts
- Understand the basics of cryptocurrencies and wallets
- Learn about decentralized finance (DeFi) and non-fungible tokens (NFTs)
- Explore the potential of DAOs (Decentralized Autonomous Organizations)
- Gain hands-on experience using Web 3 tools and platforms
Course Structure:
1 : Introduction to Web 3
- Overview of Web 1.0, Web 2.0, and Web 3.0
- Evolution of the Internet: From static content to dynamic and decentralized experiences
- Peer-to-peer networks
- Tokenization
2: Blockchain Fundamentals
- Basic concepts: Decentralization, consensus, and immutability
- Overview of popular blockchains: Bitcoin and Ethereum
- Key Components of Blockchain: Nodes, miners, and validators
- Blockchain security and cryptography
3: Cryptocurrencies and Wallets
- Introduction to Cryptocurrencies
- Bitcoin and Ethereum: Use cases and differences
- Altcoins: Types and purposes
- Understanding Crypto Wallets
- Types of wallets: Hardware, software, and custodial
- Setting up and using a wallet
4: Smart Contracts
- Self-executing contracts on the blockchain
- Benefits and limitations
- Bitcoin and Ethereum: The Building Blocks
5: Decentralized Applications (dApps)
- What are dApps?
- Architecture of decentralized applications
- Key platforms for dApp development
- Case studies of popular dApps (e.g., Uniswap, Aave)
- Interacting with dApps
6: Decentralized Finance (DeFi)
- Introduction to DeFi
- What is DeFi? Lending, borrowing, yield farming, liquidity pools
- Comparing DeFi to traditional finance
- Risks and rewards in DeFi
- Key DeFi Protocols
- How decentralized exchanges (DEXs) work
7: Non-Fungible Tokens (NFTs)
- What are NFTs?
- Defining non-fungible tokens and their properties
- Use cases: Digital art, gaming, collectibles
- NFT Marketplaces and Ecosystems
- Exploring platforms like OpenSea, Rarible, and others
8: DAOs and the Future of Web 3
- What are DAOs?
- Introduction to Decentralized Autonomous Organizations
- Governance in a decentralized world
- Case studies: MakerDAO, The DAO, and others
- The Future of Web 3
- Challenges and opportunities for scalability, security, and adoption
- Web 3 beyond blockchain: AI, IoT, and the metaverse
9: Cardano Ecosystem
- Introduction to Cardano
- Cardano Infrastructure & Tooling
- Pratical Tesnet
- Projetcs in Cardano
1. Haskell - Introduction to Functional Programming
Objective: Bridge the gap between imperative programming and functional programming, which is at the core of Haskell.
- Differences between functional and imperative programming
- Immutability and Pure Functions
- First-Class Functions (functions as first-class citizens)
- Higher-Order Functions and Recursion
- Introduction to lambda expressions
3. Introduction to Haskell Syntax and Concepts
Objective: Dive into Haskell syntax and its functional programming paradigm.
- Haskell syntax overview
- Data types and pattern matching
- Lists, tuples, and recursion in Haskell
- Type classes and polymorphism
- Function composition and currying
4. Deep Dive into Haskell for Cardano Development
Objective: Train students in the specifics of using Haskell for developing on the Cardano blockchain.
- Monads and Functors
- Handling IO in Haskell
- Advanced functional programming techniques
- Writing smart contracts in Plutus (Cardano's smart contract platform)
- Cardano-specific libraries and tools (e.g., Plutus and Marlowe)
5. Project-Based Learning
Objective: Apply the skills learned to real-world applications within the Cardano ecosystem.
- Build a decentralized application (dApp) on Cardano
- Interaction with Cardano wallets and smart contracts
- Testing and deploying on the Cardano testnet
6. Advanced Topics and Optimization
Objective: Explore advanced Haskell and blockchain development concepts.
Content:
- Optimizing Haskell code for performance
- Best practices in smart contract development on Cardano
- Security in smart contracts
Detailed track: [https://hackmd.io/<member communityid="163" id="98135">pribaeta</member>/Hy0SGWhRR](<https://hackmd.io/<member id='98135' communityId='163'>pribaeta</member>/Hy0SGWhRR>)