Spring 2021 Developers Decal


Welcome to Blockchain@Berkeley’s Blockchain for Developers DeCal for the Spring 2020 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.

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

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

Course Number: COMPSCI 198-077 (class #33134)
Course Listing: Berkeley Academic Guide, EECS Department
Units: 1
First Class Time: February 3rd 6 – 8 PM
Course Staff: Ayush Aggarwal, Simon Zirui Guo, Janice Ng, Joe Broder, Ryan Adolf
Prerequisites: CS61A minimum, CS61B recommended, Fundamental CS Concepts needed
Course Syllabus: Link
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.
Class Entry Policy:
Enrollment for this course is capped at 50. In order to begin enrolling in this course, potential students must submit an application at https://forms.gle/T8KT2QBMLdSPYgVT7 before February 2nd 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.


P/NP: Grading is P/NP for this course. In order to pass the course, students will need to achieve an overall grade of above 70%. Grading will be based on Homework (50%) and Attendance (50%).

Homework (50%): In blockchain development, you can only learn by doing. There will be homework dispersed throughout the course and will be weighted equally, each weighs 5%. 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. We will check-off in-person each week’s homework at the end of the class, or at the latest, during the subsequent lecture. All homework check-off must be done in-person. If you have special circumstances that you cannot physically be at lecture for check-off, please contact us. 

Homework will be posted weekly on the course GitHub repository.

Attendance (50%): We will take attendance every class. We expect excused absences to be rare; we grant you 2 unexcused lecture absences without grade penalty. If you have to miss class after using up your 2 free absences, please let the course admins know! We will do our best to be as understanding and accommodating as possible. If you are expecting an academic conflict such as a midterm, please let your facilitator know at least 24 hours in advance, and we will work out an alternative assignment with you. Other emergencies can be excused if instructors are informed far enough in advance. Having 3 unexcused absences will result in automatic failure of the course (10% deducted from overall score per absence).


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.


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

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

Solidity Language Documentation