C S 462
Download as PDF
Large-Scale Distributed System Design
Computer Science
College of Computational, Mathematical, & Physical Sciences
Course Description
Principles and concepts of designing and building distributed systems. Introduction to architectures for distributed computation. Reliability, availability, and scalability of large applications. Cloud computing and APIs.
When Taught
Contact Department
Min
3
Fixed
3
Fixed
3
Fixed
0
Other Prerequisites
or equivalent experience.
Note
Students are allowed 1 repeat of each C S undergraduate course (all 100-, 200-, 300- or 400-level courses). This includes all students who received any grade including those who withdraw (receive a "W" grade) from a C S course. Students must wait 1 semester/term before being allowed to take a course they have failed twice. Petitions for exceptions to the policy can be completed at cs.byu.edu/undergraduate-handbook/retake-policy-cs-courses/.
Title
Computational Practice
Learning Outcome
Students can implement programming projects that display knowledge of a variety of distributed system architectural styles. Some of these assignments represent significant programming projects with wide leeway in design and implementation choices.
Students will analyze problems, determine solutions within an assigned architectural style, and successfully implement those solutions.
Students will design and implement projects both individually and as part of a team.
Students will use cloud-based systems to run and implement assignments
Students will manage a cloud-based Web server and properly configure it.
Title
Computational Theory
Learning Outcome
Students will understand the proper use of distributed and decentralized architectures and algorithms including
RESTful APIs
Hierarchical vs heterarchical system architectures
MapReduce
Distributed Hash Tables
Event-driven system
Peer-to-peer architectures including Paxos, gossip protocols, and blockchain
Students will understand theoretical concepts and limitations of distributed systems including
network practicalities such as latency, bandwidth, topology, cost, heterogeneity, security
CAP theorem
distributed transactions
serialization
identity and naming
cryptography
simultaneity
Title
Critical Thinking and Communication
Learning Outcome
Students will interact with peers in meaningful discussion, lead discussions in peer groups, prepare written reports, and make oral presentations.
Title
Ethics and Computing
Learning Outcome
Students will be presented with societal outcomes of technological choices in distributed and decentralized systems, analyze those outcomes, explore possible alternatives from different choices, and present their findings in small groups.