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/Max

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. this fulfills the Intellectually Enlarging aim by requiring students to master the technical "depth" and rigorous logic necessary for scalable system design.

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 This outcome is Intellectually Enlarging as it bridges the "commonality of disciplines" between abstract mathematics and physical network realities like latency and security.

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. This advances the Character Building aim by requiring students to practice "honesty" in their reporting and "responsibility" in communicating technical truths to their colleagues.

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. This aligns with the Spiritually Strengthening aim by challenging students to ensure technology serves others without becoming a digital distraction that "smothers the soul."