CSCI 1951L: Blockchains and Cryptocurrencies

Jump to main content

Welcome to CSCI1951L!

Introduction to modern blockchain-based systems. This timely course covers relevant topics such as consensus and distributed computing, example cryptocurrencies, programming smart contracts, privacy and secrecy, transfer networks, atomic swaps and transactions, non-currency applications of blockchains, and legal and social implications. Students will complete four programming projects, four homework assignments, one written assignment, and two labs.

Course Info

Assignments

Every project, homework, and lab should be turned in via Gradescope. Every assignment will be available by 11:59 pm ET on the day listed, and will be due at 11:59 pm ET on the due date listed. Written assignments should be submitted as PDFs. All assignment release and due dates are also available through the course calendar. The assignment dates currently listed are tentative and may change. If any dates are shifted, an EdStem announcement will be made informing you of the change.

AssignmentOutIn
Homework 0: Course Setup 9/7ASAP
Lab 1: Introduction to Go 9/089/21
Homework 1: Blockchains 9/089/14
Project 1: Chain 9/1510/05
Homework 2: Bitcoin 9/2210/02
Project 2: Coin 10/1311/04
Homework 3: Ethereum & Solidity 10/1710/24
Project 3: Lightning 11/1512/04
Lab 2: Introduction to Solidity 11/2412/08
Project 4: Swap 12/0412/13
Homework 4: Cross-Chain, Wallets, Byzantine, & Privacy 12/0812/15
Written: White Paper 12/812/17

Lectures

Lectures will take place Tuesdays and Thursdays from 2:30pm-3:50pm ET in Salomon Center 003. Recordings will be available soon after lecture ends.

Zoom Meeting ID (for remote synchronous viewing): 961 2701 0547

Lecture Notes
TopicDateSlidesRecording
Course Introduction9/4-Recording
Bitcoin Introduction9/9SlidesRecording
Bitcoin Mining9/11SlidesRecording
Bitcoin Data Structures9/16SlidesRecording
EVM9/18SlidesRecording
Solidity9/23SlidesRecording
Ethereum Data Structures9/25SlidesRecording
Gas9/30SlidesRecording
Solidity Pitfalls 1 (Async)10/2Slides-
Solidity Pitfalls 210/7SlidesRecording
Solidity Pitfalls 310/9SlidesRecording
Solidity Pitfalls 410/14SlidesRecording
PoS in Algorand and Ethereum10/16SlidesRecording
Making Ethereum Scalable10/21SlidesRecording
Privacy and Anonymity10/23SlidesRecording
Concurrency10/28SlidesRecording
Off-Chain Payment Channels10/30SlidesRecording
Privacy Coins11/4-Recording
Crosschain 111/6SlidesRecording
Defi11/11SlidesRecording
stablecoins (asynch)11/13SlidesRecording
Regulation and Defi11/18SlidesRecording
Consensus11/20SlidesRecording
Conclusion11/25--

Course Calendar

Course Staff

Maurice Herlihy
Professor | he/him | mherlihy

I like figuring out how to make things sync.

Jad Alkarim Al Smail
HTA | he/him | jalsmail

I'm a Junior studying APMA & CS. Outside of class, I like to bike and develop websites!

Daniel Ma
UTA | he/him | dma24

Hi! I'm Daniel and I'm a Junior studying APMA-CS. Outside of class I enjoy trying new foods and adding to my vinyl collection.

Dhuruv Gada
UTA | he/him | dgada

I’m a Master’s student in Computer Science. Outside of class, I enjoy gaming and watching soccer.

Copyright © 2025 CSCI 1951L at Brown University