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 1/26ASAP
Lab 1: Introduction to Go 1/272/9
Homework 1: Blockchains 1/272/02
Project 1: Chain 2/032/23
Homework 2: Bitcoin 2/102/20
Project 2: Coin 3/033/21
Homework 3: Ethereum & Solidity 3/113/18
Project 3: Lightning4/084/23
Lab 2: Introduction to Solidity4/144/28
Project 4: Swap4/265/05
Homework 4: Cross-Chain, Wallets, Byzantine, & Privacy4/285/05
Written: White Paper5/035/15

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 Introduction (Zoom)1/23SlidesRecording
Bitcoin Introduction1/28SlidesRecording
Bitcoin Mining1/30SlidesRecording
Bitcoin Data Structures2/4SlidesRecording
EVM2/6SlidesRecording
Solidity2/11SlidesRecording
Ethereum Data Structures2/11SlidesRecording
Gas2/13SlidesRecording
Solidity Pitfalls 1 (Async)2/20SlidesRecording
Solidity Pitfalls 22/25SlidesRecording
Solidity Pitfalls 3 (Async)2/27SlidesRecording
Solidity Pitfalls 43/4SlidesRecording
PoS in Algorand and Ethereum3/6SlidesRecording
Making Ethereum Scalable3/11SlidesRecording
Off-Chain Payment Channels3/13SlidesRecording
Concurrency3/18SlidesRecording
Privacy and Anonymity3/20SlidesRecording
Privacy Coins4/1SlidesRecording
Crosschain 14/3SlidesRecording
Crosschain 24/8Slides-
Wallets and Light Clients4/10Slides-
Decentralized Finance4/15--
Regulation and DeFi4/17--
TBD4/22--
Season Finale4/24--

Course Calendar

Course Staff

Maurice Herlihy
Professor | he/him | mherlihy

I like figuring out how to make things sync.

Jakobi Haskell
HTA | he/him/his | jhaskell

Hi! I'm Jakobi, a senior at Brown studying CS. Outside of class, I enjoy playing basketball, watching Celtics games, and playing Civilization. Excited to be your HTA!

Jad Alkarim Al Smail
UTA | he/him/his | jalsmail

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

Hao Wen
UTA | he/him/his | hwen5

Hi! My name is Hao, and I'm a senior concentrating in APMA-CS. I like fintech and systems. Outside of class, I enjoy playing music and watching/making films.

Copyright © 2025 CSCI 1951L at Brown University