Objectives
In this course, we will go behind the scenes and learn about these large scale applications and the technology surrounding these applications.
This course will help students develop learning about the following broad topics:
- Designing distributed databases and systems.
- Data partitioning and agreement schemes.
- Crash and malicious failures resilience algorithms.
- Designing federated learning systems.
TextBooks
- Principles of Distributed Database Systems, ISBN: 9783030262556 - Required
- Fault-Tolerant Distributed Transactions on Blockchain, ISBN: 9783031007491 - Required
- Distributed Systems, ISBN: 9789081540629 - Optional
Grading Scheme
The final grade for the course will be based approximately on the following weights:
- 60% - Assignments
- 20% - Presentations
- 20% - Class Participation
Assignments
Students will work in groups of 3 to complete the assignments during the course.
Each assignment is cumulative. That is, you need to successfully complete each project in order to complete the next one.
Each assignment carries 15% of the grade.
We will not teach students how to write/debug C++ programs during the semester. It is a prerequisite for this course.
Late Policy
Each person has an automatic extension of two calendar days for assignments only.
For instance, you can hand in one assignment two days late, or use your two late days whenever you want.
Late days are rounded up to the nearest integer. For example, a submission that is 3 hours late will count as one day late.
When you hand in a late assignment, you must identify (1) how late this assignment is and (2) how many total extension days you have left.
If you hand in a homework late and have used up your extension days for assignments, the grade will be zero.
Plaigarism
We expect each student group to work on their projects in isolation, while each student will complete the exam by themselves. You cannot copy any part of a solution that was written by another group/students, or develop your project or homework solutions together with other groups/students, or copy solutions from any unauthorized source such as the Internet. You may not look at another group/student's solution without permission from the course staff, even if you have completed your own, nor may you knowingly give your solution to another group/student or leave your solution where another group/student can see it.
Here are some examples of behavior that are inappropriate:
- Copying (or retyping) homework, project, or exam solutions from another group/strudent or source, either in draft or final form,
even if permissions are incorrectly set to allow it.
This behavior is still clearly inappropriate even if you make modifications from the original source.
- Searching for or viewing a current or past group/student's homework, project, or exam solution.
- Allowing someone else to view or copy your code, written assignment, quiz, or exam, either in draft or final form.
- Getting help that you do not fully understand or from someone whom you do not acknowledge on your solution.
- Coaching others step-by-step without them understanding your help.
- Writing, using, or submitting a program that attempts to alter or erase grading information or otherwise compromise security of course resources.
- Lying to course staff.
- Making your work publicly available in a way that other students (current or future) can access your solutions,
even if others' access is accidental or incidental to your goals.
If your work contains any statement or code that was not written by you, you must clearly identify the derived work and cite the source. If you are paraphrasing an idea you read elsewhere, you must acknowledge the source. Using existing material without proper citation is plagiarism, a form of cheating. If there is any question about whether the material is permitted, you must get permission in advance.
It is not considered cheating to clarify vague points in the assignments, lectures, lecture notes, or to give help or receive help in using the computer systems, compilers, or other facilities.
Any violation of this policy is cheating. The minimum penalty for cheating (including plagiarism) will be a zero grade for the whole assignment; a typical penalty
will be 0 on the project.
Dishonesty while discussing an academic integrity issue (i.e. lying to course staff) usually results in an 'R' in the course.
All violations of this collaboration policy will be referred to the appropriate University disciplinary board, with possible additional disciplinary action.
For more information, see the University Policy on Academic Integrity.
If you have any question about how this policy applies in a particular situation, ask the instructors or TAs for clarification.