Spring 2018 Developers Decal
Blockchain is a transformative technology with massive potential, and despite the huge demand from nearly all types of companies, there is a distinct shortage of developers – see this article about how blockchain developers are being offered salaries of 250k. Blockchain at Berkeley offers this course with the aim of fulfilling this demand and giving students with minimal blockchain knowledge a chance to prepare themselves for the industry.
This course is offered concurrently with Blockchain Fundamentals, another Blockchain at Berkeley course offering which focuses on being comprehensive and theoretical and requires no computer science prerequisites. Although this course and Blockchain Fundamentals can be taken independently, with little overlapping content and co-dependencies, concurrent enrollment is strongly encouraged.
If you’re interested in working together in some way, please reach out to Akash on twitter or send an email to him. We strive to be mostly platform agnostic, but academically interesting projects are welcome to contribute. We also do speaking engagements for those interested in special topics or a tailored workshop.
We aim to deliver a holistic experience for different types of blockchain development. The course will emphasize the ins and outs of Bitcoin and Ethereum from a developer perspective along with smart contract security and best practices. Our spring 2018 offering focused mostly on Ethereum, but we have plans to offer more Bitcoin related material in order to provide a proper survey of engineering in the Blockchain space.
Day and Times:
Location: HP Auditorium
Instructors: Akash Khosla, Nicolas Zoghb
Teaching Assistants: Luke Strgar, Nataliya Urakhchina, Nicholas Truong, Gary Li
Prerequisites: CS61A minimum, CS61B recommended, Fundamental CS Concepts needed
Class Format: This course is primarily taught through hands-on homework and projects, with occasional readings. There will be one class of one hour per week with supplemental office hours. Lectures will be used to introduce the topics at hand. Students will be expected to put in 6-12 hours a week on coursework, which accounts for in-class time and office hours.
Communication: All of the necessary communication for this course will be done through email. Weekly homework assignments will be distributed after class, along with the lecture slides. We will also have an optional Facebook group to allow for further questions and discussion.
Class Entry Policy: After applying, the facilitators will update you with your enrollment status (accepted or waitlist) as soon as it changes. Entering our class is dependent on obtaining a course entry code. If you are accepted, we will email you your code and you must enroll in the class within three days or the code will be considered invalid. We will also be enforcing a mandatory attendance policy for the first two classes—you will be dropped if you miss either of these two classes. Additionally, because the first two weeks of lecture are instrumental in building a concrete understanding of cryptocurrency, waitlisted students that have attended the first two weeks of classes will be strongly preferred.
Policy: P/NP. You must get at least a 70% to pass the class. Grading will be based on Homework and Projects (40%), Attendance (15%), a Final Deliverable (30%) and Participation (15%). If you have any questions regarding our grading, feel free to bring it up in class.
Homework & Projects (40%): There will be homeworks and projects dispersed throughout the course. These are intended to help get you familiar with all kinds of blockchain development. Homework will be released following class and will be due the following week at the start of class. There will be two projects during the span of this course and will be completed in groups of 4-5 people. Homework will be graded on completion and projects on a grading rubric.
Homework: Each homework will be in the form of a programming assignment. These will be weekly assignments.
Projects: Projects will be in the form of deliverables, encompassing the material covered in the recent lectures.
Attendance (15%): We will take attendance at the beginning of every class. You are allowed to miss one lecture without having it affect your grade. 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).
Final Deliverable (30%): All students will be required to present a final deliverable (10 minutes) on a topic related to Ethereum. This deliverable should incorporate concepts learned in class. All topics must be pre-approved at least 2 weeks before the presentation date.
Participation (15%): In blockchain development, you can only learn by doing. At the end of the semester, we will conduct comprehensive peer reviews, and a large part of your grade will be based off of that.
Textbooks: You are free to read from these books, which are both freely distributed and available online. Please do NOT go out and buy them. Some readings may be pulled from these books during the course.
Bitcoin and Cryptocurrency Technologies (Princeton textbook) by Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, and Steven Goldfeder:
(Optional/Additional) Mastering Bitcoin by Andreas Antonopoulos: