Syllabus

Quick Links

Course Materials
Assignments
Exams
Grading

Course Learning Outcomes

Computational Practice

Students will learn the following computational practices:

  1. Students can implement programming projects that display knowledge of a variety of distributed system architectural styles. Assignments include significant programming projects with wide leeway in design and implementation choices.
  2. Students will analyze problems, determine solutions within an assigned architectural style, and successfully implement those solutions.
  3. Students will design and implement projects both individually and as part of a team.
  4. Students will use cloud-based systems to run and implement assignments.
  5. Students will manage a cloud-based web server and properly configure it.

Computational Theory

Students will understand the proper use of distributed and decentralized architectures and algorithms including

  1. RESTful APIs
  2. Hierarchical vs heterarchical system architectures
  3. Parallel computing and MapReduce
  4. Event-driven and reactive systems
  5. Peer-to-peer systems
  6. Uses for algorithms including Distributed Hash Tables (DHT), Paxos, gossip protocols, and blockchain

Students will understand theoretical concepts and limitations of distributed systems including

  1. network practicalities such as latency, bandwidth, topology, cost, heterogeneity, security
  2. coupling
  3. consensus
  4. CAP theorem
  5. distributed transactions
  6. serialization
  7. identity and naming
  8. cryptography
  9. simultaneity

Critical Thinking and Communication

Students will engage in meaningful discussion, prepare written reports, and make presentations.

Ethics and Computing

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 .

Prerequisites

Software Design (CS 340) or equivalent experience.

Internet Application Programming (CS 360) or equivalent experience.

Course Materials

Required Materials

Supplemental Materials
The course includes numerous readings available online.

(Back to top)

Course Organization

Each lesson (except the first) includes a reading quiz comprising some number of multiple-choice, matching, fill-in-the-blank, and true-false questions. The best way to prepare for the quizzes is to complete the required reading in each lesson.

  1. Why Distributed Systems?
  2. Distributed System Architectural Patterns
  3. Integrity, Non-Repudiation, and Confidentiality
  4. Identity, Naming, and Directories
  5. APIs
  6. Parallel Architectures
  7. Failure and Consensus
  8. Peer-to-Peer Systems
  9. Reactive Systems and the Actor Model
  10. Microservices

Assignments

Lesson Quizzes

Each lesson after lesson 1 concludes with a multiple-choice quiz over the basic concepts.

Lab Assignments

Lab assignments give you an opportunity to demonstrate your knowledge of how to apply course concepts in solving problems that call for distributed or decentralized solutions.

Most labs allow you to use any operating system and programming language you are familiar with.

Other Assignments

You will complete these assignments in conjunction with specific lessons.

Final Project

The final project is a free-form exercise to build a non-hierarchical distributed solution to a problem of your choice according to a set of instructor-provided constraints. You will complete three elements for the project:

(Back to top)

Exams

There is one final exam with two parts:

The exam questions ask you to apply principles from the course to analyzing distributed systems and solving problems related to distributed system design. The final exam is design oriented, and you will be required to make architectural and implementation decisions about proposed systems. The exam is closed book and notes, with a 90-minute time limit.

The quizzes, labs, and course project are your best guide in preparing for this work. If you don't participate fully in the assignments and the project, don't expect to do well on the exam.

Note: You must pass the final exam to earn credit for the course.

(Back to top)

Grading

Class assignments are graded as follows:

9 Quizzes, 11 points each 99 points
8 labs, 43 points each 344 points
8 assignments, 13 points each 104 points
Final project proposal 20 points
Final project (presentation and documentation) 180 points
Final exam 200 points
Total 947 points

Grading Scale

Your course grade is based on these percentages.

A 100–93%
A− 92–90%
B+ 89–87%
B 86–83%
B− 82–80%
C+ 79–77%
C 76–73%
C− 72–70%
D+ 69–67%
D 66–63%
D− 62–60%
E (fail) 59–0%

(Back to top)

Copyright Notice

The materials used in connection with this online course are only for the use of students enrolled in this course for purposes associated with this course and may not be retained or further disseminated. Any copying or further dissemination of these materials may be subject to applicable U.S. Copyright Laws. For questions or more information, please visit the BYU Copyright Licensing Office website.

“Members of the BYU community who willfully disregard this Copyright Policy or the BYU Copyright Guidelines place themselves individually at risk of legal action and may incur personal liability for their conduct. The unauthorized use or distribution of copyrighted material, including unauthorized peer-to-peer file sharing, may subject individuals to civil and criminal liabilities, including actual and statutory damages, costs and fees of litigation, fines, and imprisonment

Violations of the Copyright Policy may result in university disciplinary action including termination of university enrollment or employment.” (Emphasis added. Excerpt taken from the BYU Copyright Policy)

(Back to top)

University Policy - Title IX Statement

Preventing & Responding to Sexual Misconduct

In accordance with Title IX of the Education Amendments of 1972, Brigham Young University prohibits unlawful sex discrimination against any participant in its education programs or activities. The university also prohibits sexual harassment—including sexual violence—committed by or against students, university employees, and visitors to campus. As outlined in university policy, sexual harassment, dating violence, domestic violence, sexual assault, and stalking are considered forms of "Sexual Misconduct" prohibited by the university.

University policy requires all university employees in a teaching, managerial, or supervisory role to report all incidents of Sexual Misconduct that come to their attention in any way, including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Incidents of Sexual Misconduct should be reported to the Title IX Coordinator at t9coordinator@byu.edu or (801) 422-8692. Reports may also be submitted through EthicsPoint at https://titleix.byu.edu/report or 1-888-238-1062 (24-hours a day).

BYU offers confidential resources for those affected by Sexual Misconduct, including the university’s Victim Advocate, as well as a number of non-confidential resources and services that may be helpful. Additional information about Title IX, the university’s Sexual Misconduct Policy, reporting requirements, and resources can be found at http://titleix.byu.edu or by contacting the university’s Title IX Coordinator.

(Back to top)

Accessibility Notice

BYU is committed to providing a working and learning atmosphere which reasonably accommodates persons with disabilities who are otherwise qualified to participate in BYU's programs and activities. In this spirit, BYU Independent Study aspires to improve web accessibility for users. While not required by law, the Web Content Accessibility Guidelines (WCAG) 2.0 Levels A and AA provide a wide range of helpful recommendations to make Web content more accessible. BYU Independent Study strives to apply WCAG 2.0 recommendations where feasible, but may deviate from any recommendations that would result in an undue hardship to BYU Independent Study or alterations to program and course content and objectives. If you have questions about accessibility, or if you need to report problems with any accessibility features please see our Accessibilities and Accommodations Web Page.

(Back to top)

Course Policies

These policies are specific to this course. For additional information about general policies, please refer to Independent Study Course Policies page.

Assignments

9 computer-graded quizzes, 8 applied labs (can be resubmitted once for a fee), 8 module assignments, final project. No assignment resubmissions except for labs, which you may submit once each for a fee.

Resubmit an assignment for a fee.

Exams

1 proctored, instructor-graded final exam. May retake the exam once for a fee. Must pass the final exam to earn credit for the course.

Retake an exam for a fee.

Getting Help

Please use the help menu in this course to contact Independent Study or your instructor. You can find a list of free tutors available to BYU Independent Study students on the Free Tutoring Services website.

Note: The Harold B. Lee Library website provides a number of online resources and librarians are available via phone, chat, and email to answer questions about library-related issues.

Inappropriate Use of Course Content

All course materials (e.g., outlines, handouts, syllabi, exams, quizzes, media, lecture content, audio and video recordings, etc.) are proprietary. Students are prohibited from posting or selling any such course materials without the express written permission of BYU Independent Study. To do so is a violation of the Brigham Young University Honor Code.

Copyright © 2016 Brigham Young University. All rights reserved.

Published by the
Department of Independent Study
Division of Continuing Education
Brigham Young University
120 MORC
Provo, Utah 84602-1514
USA