Courses

Spring 2020 Developers Decal

About

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.

Logistics

Units: 1
Day and Times: Mondays, 6:30P.M. – 8:30P.M.
Location: Mulford Hall 240
Course Staff: Minxing Chen, Janice Ng, Simon Zirui Guo, Haena Lee, Grace Kull, Erika Badalyan
Prerequisites: CS61A minimum, CS61B recommended, Fundamental CS Concepts needed
Course Syllabus: Link
Course Email: dev-decal@blockchain.berkeley.edu
Course Repo: https://github.com/BerkeleyBlockchain/Dev-DeCal-Spring-2020
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.
Communication:
All of the necessary communication for this course will be done through email. Weekly homework assignments will be distributed before class, and the solution will be posted the week after. Slides will be posted after lectures.
Class Entry Policy:
Enrollment for this course is capped at 65. In order to begin enrolling in this course, potential students must submit an application at https://forms.gle/DHSgdkv4hatY3gQZ7 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.

Grading

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).

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

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

Blockchain for Developers DeCal – Spring 2018 Site.

Blockchain for Developers Decal – Spring 2018 Video Recordings

Solidity Language Documentation 

WeekLectureSlidesHomework
1 (2/3)Introduction to Blockchain Development: A High Level Overview[PPT]HW 1 Build a Blockchain in Python
2 (2/10)Solidity and Developer Tools[PPT]HW 2 Deploy Your First Contract
3 (2/24)Solidity Syntax[PPT]HW3 What would Solidity print?
4 (3/2)Web3.js and Interacting with Ethereum
5 (3/9)Token Development and Wallets
6 (3/16)Smart Contract Security
7 (3/30)Scalability, Interoperability, Zk-SNARKs
8 (4/6)Special Topics
9 (4/13)Special Topics
10 (4/20)Special Topics
11 (4/27)Special Topics