If you note any errors or have suggestions for improvements, please email them to me at firstname.lastname@example.org.
The course was most recently offered in Fall 2016.
This course will provide an introduction to the technology underlying blockchain, the current and potential applications of blockchain in business, and the resulting policy issues. The course is designed for students with either some business-course background, some computer-science background, or both. The course readings are designed to provide:
This course aims to give business students the basis for understanding the foundations of blockchain, to give computer science students the basis for understanding the impact of blockchain, and to give all students the basis for a deeper understanding of this emerging technology. Grades will be based on class participation, student presentation of some of the assigned readings, and several short student-written papers. No coding will be required.
In the Computer Science and Business Program, this course counts as a professional elective but does not count as a "CSE elective from approved list". In the Computer Science majors this course does not count towards the required CSE course elective credits. Prerequisite: Permission of the instructor. Permission will be granted (up to the enrollment limit) to students who can contribute strongly to discussion based on either business or computing coursework (or both).
text (recommended, not required) Bitcoin and Cryptocurrency Technologies, A. Narayanan, J. Bonneau, E. Felten, A. Miller, S. Goldfeder. The book website http://bitcoinbook.cs.princeton.edu/ has ordering information for the hardcopy, Kindle version, Nook version, Google Play, etc. A legal, free prepublication version is here . The authors state "The published version is better in a several ways: it is peer-reviewed, professionally edited and typeset."
Prerequisite: CSE 109 OR CSE 241 OR CSE 341
Can be taken concurrently: CSE 109
English version of prerequisite for departmental handout (catalogese is hard to read): "Students must have at least of one the following: CSE 109, 241, 341. For 109 it is okay if you are taking 109 in the same semester you are taking CSE 297".
Course Description in Catalogese: Blockchain system concepts, cryptographic algorithms for blockchain security, distributed consensus algorithms for decentralized blockchain control, smart contracts, blockchain databases.
More Detailed Course Description in English: This course is distinct from the Spring CSE/FIN 298 course. After an introduction to the concepts of cryptocurrencies and blockchains, the course will focus on the data structures, algorithms, and mathematics that make blockchains secure, tamper-resistant, and structured in a highly distributed manner. This course will count as a technical elective for CS majors and will count towards the CS minor. CSB students may count this as "CSE elective from approved list" or as a professional elective (but not both). The course will have several graded coding assignments, quizzes, and a final. Students who took CSE/FIN 298 may find the first 2-3 weeks of CSE 297 to have some overlap, but they are free to register for CSE 297. A syllabus will be constructed over the summer, but a rough estimate of coverage is 1/4 general intro to blockchains and cryptocurrencies, 1/4 blockchain data structures and crypto algorithms, 1/4 distributed consensus algorithms, 1/4 blockchain databases with applications in business, IoT, and elsewhere. The somewhat unusual prerequisite is designed to ensure that students know Java and also have some experience with pointer-based data structures (which the first weeks of 109 provide, as do the two database courses (241 and 341) in their coverage of database system internals. It is NOT necessary to know C nor SQL. Students with strong backgrounds that differ from the stated prerequisites may request instructor permission, but those requests will be reviewed after registration week.