Software architecting and design of software-intensive systems. Targeted at future CTOs who must understand both the business and technical issues involved in architecting global-scale systems. Introduces blockchain systems, consensus, scalability, governance, and the Ethereum platform. Presents modern tools and libraries for distributed computing, basic cryptography, including hashing, PKI, encryption and distributed apps. Use of cloud service APIs, containers, testing and synchronization techniques. Data cleaning and filtering, linear regression, basic machine learning algorithms such as clustering, classifiers, decision trees. Students learn problem solving in an active learning lab setting, completing in-class exercises and weekly assignments leading to a group project in blockchain. By the end of the class, students will be able to build practical blockchain applications and understand the limitations and opportunities of the technology.