BSTE: Distributed Systems
Distributed Systems
- Course name: Distributed Systems
- Code discipline: CSE 506
- Subject area: Computer Science Fundamentals
Short Description
This is an introductory course in distributed systems. During the course, students will learn the fundamental principles and techniques that can be applied to design and develop distributed systems and will cover architectures of distributed systems, communication, naming, fault tolerance, consistency replication, virtualization, and security. In addition, we will discuss different aspects of the design and implementation of popular distributed systems programming models and consensus algorithms (Raft and Paxos). The course will not only cover computer science-related topics but will also include a substantial part of software engineering activities.
Prerequisites
Prerequisite subjects
- CSE105
- CSE501
Prerequisite topics
- Operating Systems.
- Computer Networks
Course Topics
Section | Topics within the section |
---|---|
Introduction to distributed systems |
|
Virtualization and cloud computing |
|
Canonical Problems and Solutions |
|
Intended Learning Outcomes (ILOs)
What is the main purpose of this course?
What is the main goal of this course formulated in one sentence? The main purpose of this course is to enable a student to understand the fundamental principles and techniques that can be applied to design and develop a distributed system.
ILOs defined at three levels
Level 1: What concepts should a student know/remember/explain?
By the end of the course, the students should be able to ...
- Key principles involved in designing and implementing distributed systems
- Distributed Architectures and their management
- Canonical problems and solutions for distributed systems
- Resource sharing, replication and consistency algorithms in distributed environments
- Virtualization, Orchestration and cloud management
Level 2: What basic practical skills should a student be able to perform?
By the end of the course, the students should be able to ...
- Implementation of access and location transparency in distributed systems
- Designing and implementing consensus algorithms for different distributed environments
- Management of concurrent tasks in distributed settings
- Designing fault-tolerant distributed systems
Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?
By the end of the course, the students should be able to ...
- Implement different components in distributed systems
- Design virtualization-based approaches in distributed systems
- Develop a solution for management and orchestration of resources in distributed systems
- Develop fault tolerant approaches in distributed systems
Grading
Course grading range
Grade | Range | Description of performance |
---|---|---|
A. Excellent | 90-100 | - |
B. Good | 75-89 | - |
C. Satisfactory | 60-74 | - |
D. Fail | 0-59 | - |
Course activities and grading breakdown
Activity Type | Percentage of the overall course grade |
---|---|
Exam | 50 |
Project Report | 30 |
Interim Presentation | 5 |
Final Presentation | 15 |
Recommendations for students on how to succeed in the course
Participation is important. Showing up is the key to success in this course.
You will work in teams, so coordinating teamwork will be an important factor for success. This is also reflected in the peer review being a graded item.
Review lecture materials before classes to do well in quizzes.
Reading the recommended literature is optional, and will give you a deeper understanding of the material.
Resources, literature and reference materials
Open access resources
- A.S. Tanenbaum and M. Van Steen. Distributed Systems: Principles and Paradigms
- (3rd Edition). Createspace Independent Pub, 2017.
- Amazon Web Services in Action by Andreas Wittig and Michael Wittig
Closed access resources
Software and tools used within the course
- Provide at least 3 open/freemium access tools
Teaching Methodology: Methods, techniques, & activities
Activities and Teaching Methods
Teaching Techniques | Section 1 | Section 2 | Section 3 |
---|---|---|---|
Problem-based learning (students learn by solving open-ended problems without a strictly-defined solution) | 1 | 1 | 1 |
Project-based learning (students work on a project) | 1 | 1 | 1 |
Differentiated learning (provide tasks and activities at several levels of difficulty to fit students needs and level) | 1 | 1 | 1 |
развивающего обучения (задания и материал "прокачивают" ещё нераскрытые возможности студентов); | 1 | 1 | 1 |
концентрированного обучения (занятия по одной большой теме логически объединяются); | 1 | 1 | 1 |
inquiry-based learning | 1 | 1 | 1 |
Learning Activities | Section 1 | Section 2 | Section 3 |
---|---|---|---|
Lectures | 1 | 1 | 1 |
Interactive Lectures | 1 | 1 | 1 |
Lab exercises | 1 | 1 | 1 |
Group projects | 1 | 1 | 1 |
Peer Review | 1 | 1 | 1 |
Discussions | 1 | 1 | 1 |
Presentations by students | 1 | 1 | 1 |
Written reports | 1 | 1 | 1 |
Oral Reports | 1 | 1 | 1 |
Formative Assessment and Course Activities
Ongoing performance assessment
Section 1
Activity Type | Content | Is Graded? |
---|---|---|
Exam | State advantages of object-based architectures over layer-based architectures in a distributed system? State the advantages of the random walk approach over the flooding approach in unstructured P2P networks for locating the data? Why global variables are not allowed in an RPC? Describe approaches for a server to handle incoming socket connections (at least two). What are the pros and cons of different approaches to sockets? When would you choose which one? |
1 |
Presentation | Prepare a short 2-minutes pitch for your project idea (2-5 slides). Suggested structure: What problem you are solving: - State the problem clearly in 2-3 short sentences. What are the approaches used to solve it: - State at least three to four research papers which have solved a similar problem like a literature review. |
1 |
Section 2
Activity Type | Content | Is Graded? |
---|---|---|
Exam | What are containers? State at least three benefits of using them? Why memory reclamation approaches are needed for virtual machines? What are “cgroup” and “namespace” subsystems? How can we use the “cgroup” subsystem? Briefly explain the “Ballooning” approach and its work to reclaim VM memory. What is a Unikernel? State at least two benefits and one drawback. |
1 |
Presentation | Prepare a 15-mins presentation describing your: Literature review SWOT analysis Each team will present in class. The assessment will be based on the presentation delivery, reasoning for decision-making, and answering questions. |
1 |
Section 3
Activity Type | Content | Is Graded? |
---|---|---|
Exam | Why is Anti-Entropy Protocol considered better than the Gossiping protocol for achieving consistency. What is the role of Heartbeats in RAFT? Explain PAXOS to achieve consistency? What is the benefit of three phase commit over two phase commit? Please specify in terms of coordinator failure? How many replicas are required to identify the fault in Byzantine failure scenarios? |
1 |
Report | Write and submit a project report: Suggested structure: What problem you are solving: - State the problem clearly in 2-3 short sentences. What is your proposed solution to solve that problem: - One sentence description - What main feature(s) will it have? SWOT Analysis |
1 |
Final assessment
Section 1
- Can be a final exam, project defense, or some other equivalent of the final exam.
- For the final assessment, students present the project work they have accomplished during the course.
Section 2
Section 3
The retake exam
Section 1
- For the retake, students have to implement a project and take the exam if they failed in both components. The complexity of the project can be reduced if it is one person working on it. The grading criteria for each section are the same as for the final project presentation. There has to be a meeting before the retake itself.
- P7. Activities and Teaching Methods by Sections
- Mark what techniques and methods are used in each section (1 is used, 0 is not used).
- Table A1: Teaching and Learning Methods within each section
- Table A2: Activities within each section
Section 2
Section 3