\setcounter{numTAs}{0}
\setcounter{totalSections}{2}
\def\secNum{{"001","DL1",""}}
\def\tenSchFileName{{"","",""}}
\def\classTime{{"R from 06:10 pm to 08:50 pm Location: TBA","R from 06:10 pm to 08:50 pm Location: TBA",""}}
\def\classRm{{"","",""}}
\def\classLive{{"","",""}}
\def\classInstructor{{"Hasshi L. Sudler","Hasshi L. Sudler",""}}
\def\classInstrContact{{"","",""}}
\def\classInstrOffHrs{{"by appointment","by appointment",""}}
\def\classInstrLive{{"","",""}}
\def\TA{{{""},{""},{""}}}
\def\TAEmail{{{""},{""},{""}}}
\def\TAOffHrs{{{""},{""},{""}}}
\def\TARoom{{{""},{""},{""}}}
\newcommand\semester{Spring 2022}
\newcommand\rsemester{202230}
\newcommand\courseNum{ECE 8491}
\newcommand\courseName{Blockchain Techno and Uses}
\newcommand\courseCoordinator{Hasshi L. Sudler}
\newcommand\credits{3}
\newcommand\contactHrs{3}
\newcommand\lecture{1}
\newcommand\lab{0}
\newcommand\undergradCourse{0}
\newcommand\isFreshmanCourse{0}
\newcommand\isCustomElecPolicy{0}
\newcommand\isClassLive{0}
\newcommand\isLabLive{0}
\newcommand\meetingMiscExists{0}
\newcommand\isClassInstrLive{0}
\newcommand\isLabInstrLive{0}
\newcommand\instrMiscExists{0}
\newcommand\hasTARoom{0}
\newcommand\meetingDesc{One 2-hour 40-minute lecture per week}
\newcommand\meetingMisc{Special notes on meeting info go here, if specified}
\newcommand\instructorMisc{Special notes on instructor(s), TA(s) go here, if specified}
\newcommand\textBookExists{1}
\newcommand\textBookReqd{0}
\newcommand\textBookMiscExists{0}
\newcommand\referencesExist{0}
\newcommand\txtBkAuthExists{0}
\newcommand\txtBkPublExists{0}
\newcommand\txtBkYrExists{0}
\newcommand\txtBkISBNExists{0}
\newcommand\textBookTitle{}
\newcommand\textBookAuth{}
\newcommand\textBookPub{}
\newcommand\textBookYr{}
\newcommand\textBookISBN{}
\newcommand\supplMaterials{BLOCKCHAIN IMPACT (co-authored by Hasshi Sudler)
Assigned readings}
\newcommand\refPapers{References go here, if specified}
\newcommand\textBookMisc{Special notes on textbook(s) go here, if specified}
\newcommand\catalogDesc{Provides a technical analysis of distributed ledger technology (DLT) and application areas. Learn the process of mining and signing blocks using Proof of Work and Proof of Stake. Analyze problems best suited for public and and permissioned blockchains for distributed applications.}
\newcommand\preReqs{None}
\newcommand\coReqs{None}
\newcommand\coreRequirement{Example: Required for BS CPE}
\newcommand\courseExpectation{To provide both a technical understanding of how the blockchains (distributed ledger technology) works and case studies of how blockchain technology is being applied in a variety of industries related to asset management, payments, public records and supply chain management.  
The course addresses questions currently under research such as why and when to use blockchains, impacts on trust assumptions, how blockchains impact societies and economies, and what technical limitations currently exist in the evolution of blockchain technology.  
}
\newcommand\ABETOutOne{0}
\newcommand\ABETOutTwo{0}
\newcommand\ABETOutThree{0}
\newcommand\ABETOutFour{0}
\newcommand\ABETOutFive{0}
\newcommand\ABETOutSix{0}
\newcommand\ABETOutSeven{0}
\newcommand\covTopics{\item Blockchain simulation
\item Blockchain history
\item Why blockchain
\item Trust
\item APPS Framework
\item The mining process
\item Difficulty algorithm
\item ASIC cards
\item Mining groups
\item Sustainability
\item Blockchain security 
\item 51% attacks
\item Computing the Poisson distribution
\item Probability of attack
\item Consensus protocols (PoW, PoS, PoA - PBFT)
\item Bitcoin, Ethereum, Corda and Hyperledger Fabric
\item Cryptocurrencies
\item Wallets and NFTs 
\item Using Metamask
\item Performing Ethereum transactions
\item Using Etherscan
\item Smart Contracts 
\item Solidity programming language
\item Using Remix IDE
\item Linux compiler
\item Calling smart contract methods
\item Installing GETH
\item Configuring AWS
\item Installing Ubuntu
\item Install GETH
\item Using the JS console
\item Attaching blockchain peers
\item Blockchain networks on IoT devices
\item GETH on Raspberry Pi units
\item Using OpenVPN for node connections
\item writing blockchain boot scripts in Bash
\item Writing dApps
\item dApp architecture
\item Node.js
\item Web3.js API
\item IPFS and Swarm
\item using Postman
\item Blockchain Satellites
\item Radiation Induced Errors research for Blockchain Satellites
\item APPS global applications - how blockchains are being applied
\item COVIDblocked contact tracing application on blockchain 
\item Publishing the State law on blockchains}
\newcommand\isScheduleExternal{0}
\newcommand\isScheduleCommon{1}
\newcommand\scheduleRows{17}
\newcommand\scheduleCols{3}
\newcommand\scheduleHeight{1}
\newcommand\schedule{\begin{table}[h!] \centering 
\caption*{Tentative Schedule for \textbf{All Sections}} \vspace{0.05in}
{\renewcommand{\arraystretch}{1.5} \small
\begin{tabularx}{\linewidth}{c|l|X}
\toprule
\large \textbf{Week} & \large \textbf{Topics} & \large \textbf{P-Set/Exam}\\
\midrule \midrule
13-Jan & Introduction to blockchain, bc simulation, history, why blockchain, trust, APPS & Essay\\
20-Jan & The mining process and difficulty algorithm, ASIC cards, mining groups, sustainability & \\
27-Jan & Blockchain security, Poisson distribution, probability of attack & PS1\\
3-Feb & Consensus protocols (PoW, PoS, PoA - PBFT) - Bitcoin, ETH, Corda and HLF & \\
10-Feb & Cryptocurrencies, Wallets and NFTs - using Metamask, ETH transactions, Etherscan & PS2\\
17-Feb & midterm review & \\
24-Feb & MIDTERM & Midterm\\
3-Mar & SEMESTER BREAK & \\
10-Mar & Smart Contracts - Solidity, using Remix IDE, Linux compiler, smart contract methods & \\
17-Mar & Installing GETH - config AWS, install Ubuntu, install GETH, JS console, attach peers & PS3\\
24-Mar & Blockchain networks on IoT devices - GETH on R-Pi, using OpenVPN, boot scripts & \\
31-Mar & Writing dApps - architecture, node.js, web3.js API, IPFS, Postman & PS4\\
7-Apr & Presentations - Blockchain Satellites and Radiation Induced Errors research & \\
14-Apr & APPS global applications - how blockchains are being applied & Draft\\
21-Apr & Presentation - COVIDblocked contact tracing; blockchain for law publishing & \\
28-Apr & SEMESTER DESIGN PRESENTATION & Presentation\\
\bottomrule \end{tabularx} } \end{table}}
\newcommand\gradingPolicy{Grading policy:
Semester Design: 35% of grade
Assignments: 30% of grade 
Midterm: 30% of grade
Participation: 5% of grade

Letter grade scale: A(94--100), A--(90--93), B+(87--89), B(83--86), B--(78--82), C+(74--77),\\
C(70--73), F(<70)}
\newcommand\HWandLabPolicy{Assignments
Problem sets (P-Sets) - due by the deadline date and time for each assignment.
Readings - should be completed before entering class.

Exams:
Midterm - all students are expected to attend live to take the proctored exam.
Semester Presentation - all students are expected to attend live to present.
}
\newcommand\AttendancePolicy{\textcolor{red}{Attendance is mandatory for this class.  Students should inform the instructor in advance of absence.  Students should be online or seated on time and ready to engage in conversations at the start of class.}}
\newcommand\ElectronicsPolicy{\textcolor{red}{Since you opted for a customize electronics policy, you should edit this part. Your policy should address your general stance on recording of class sessions and the circumstances under which recording will be allowed or prohibited. If you generally prohibit recording, yet allow recording of certain classes for some reason, then ypu should notify all students that those classes will be recorded. If recording is permitted as an ADA accommodation for a student, you obviously should not identify that student(s).)}}
