Spring 2022 Developers Decal

Enrollment Information

In order to begin enrolling for the course, potential students must submit an application before January 31st at 11:59PM PST. If course staff deem the student to be a good fit for the DeCal, we will give a permission code to the student so that they can be officially enrolled in the course.

Application: https://docs.google.com/forms/d/e/1FAIpQLSe0q8sg7tK33lYIq-ebrfnklZ7f7QPhrNBD6hXpww7A027jaQ

Course Listing: https://classes.berkeley.edu/content/2022-spring-indeng-198-002-grp-002

About

Welcome to Blockchain@Berkeley’s Blockchain for Developers DeCal for the Spring 2022 semester! This course is designed to provide students a comprehensive general overview of currently relevant topics in blockchain development, as well as hands-on experience in developing and deploying their own smart contracts.

Blockchain is currently one of the fastest growing industries in the technology sector, with 14 job openings for every blockchain developer. In response to this shortage of blockchain developers, this course aims to teach students the fundamentals of blockchains, the Solidity programming language, as well as industry-relevant tools such as Metamask, Infura, Truffle, and Ganache so that students will be equipped with industry-relevant experience in an accessible, collaborative environment. We hope that through this course, students will become more confident in their ability to develop and deploy blockchain-based solutions on important industry issues.

Syllabus: https://docs.google.com/document/d/1AlyadUu0SEnDyfZYphq5gqLmMnWuIM1XCwbc1bzRsow

Previous Semesters: https://blockchain.berkeley.edu/courses/archive

WeekTopicLectureHomework
1Introduction to Blockchain Development: A High Level Overview
2Solidity and Developer Tools
3Solidity Syntax
4Web3.js and Interacting with Ethereum
5Security, Tokens, Wallets
6DApp Architecture 1
7DApp Architecture 2
8Scalability, Interoperability, Zk-SNARKs
9Special Topics W/ Guest Lectures
10Special Topics W/ Guest Lectures
11Special Topics W/ Guest Lectures
Logistics

Units: 1-2
Schdule: 6:30-8:30 PM every Tuesday
Course Staff: Lawson Graham (lawsongraham@berkeley.edu), Nazli Urenli (nazlidenizurenli@berkeley.edu), Nathan Zhang (nathanzhang1@berkeley.edu)
Prerequisites: CS61A minimum, CS61B recommended, Fundamental CS Concepts needed
Course Email: dev-decal@blockchain.berkeley.edu

Class Format: The course will be split into two parts. The first half of the course will be dedicated to a quick overview of blockchain (with a special focus on Ethereum, as we will develop and deploy smart contracts through the Ethereum ecosystem) and learning to work with various developer tools. The second half will feature a series of guest lecturers that will introduce students to additional blockchain development applications. 

Each class will be divided into two parts as well. The first hour of each class will be dedicated to a lecture covering the topics planned for that week. We will then switch gears in the second hour of class to focus on more hands-on work with that week’s topics.

Grading

Grading is P/NP for this course and based on completion. In order to pass the course, students will need to complete the final project, finish all the homework, and attend all lectures.

Homework: In blockchain development, you can only learn by doing. There will be homework dispersed throughout the course and will be based on the content of the lecture in the previous week. Each lecture will be structured in a way that homework can be completed within the class. First half of each class covers the concepts, and the second half focuses on hands-on understanding through doing the homework. All homework check-offs will be graded on completion due at the beginning of next lecture. To pass the class, you must submit all the homework on time except two of your choice. 

Homework will be posted weekly on the course GitHub repository: https://github.com/BerkeleyBlockchain/Dev-Decal-Spring-2022/

Project: There will be a final project due by the end of dead week. It will be a simple project where you create your own Ethereum backed token. It is a perfect opportunity for you to put into practice the concepts you learned in lecture into a significant blockchain based application. If you have any questions about it, please contact us, we’d be happy to talk about it. Completion of the project is mandatory to pass the class.

Policies

Plagiarism and academic dishonesty is strictly prohibited and is treated with automatic failure of the course. Working collaboratively and discussing ideas are encouraged. 

Please do not post your solutions on public repository on sites such as GitHub or GitLab. Please make them local or set them to private repository.

If you have any questions, please feel free to contact any course staff.

Resources

Previous Course Pages: https://blockchain.berkeley.edu/courses/archive

Course GitHub Repo, where homework skeleton code and solutions are posted

Solidity Language Documentation