Readings and Texts:
| The subject matter covered in this course will reference several textbooks and papers. There are two optional textbooks for this course. |
| |
Distributed Systems: Principles and Paradigms. Andrew S. Tanenbaum and Maarten van Steen. 3rd Edition. Createspace, ISBN 9781530281756
|
| |
Distributed Systems: Concepts and Design. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. 5th Edition. Addison Wesley. ISBN: 978-0132143011 |
Other textbooks that I plan to refer to are listed below. I will only test on meterials that I cover in class.
- Distributed Computing: Principles, Algorithms, and Systems. Ajay Kshemkalyani and Mukesh Singhal. 1st edition. Cambridge University Press. ISBN: 0521876346/ 978-0521876346
- Java Concurrency in Practice. Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. Addison-Wesley Professional. ISBN: 0321349601/978-0321349606.
- Cloud Application Architectures: Building Applications and Infrastructure in the Cloud. George Reese.1st edition. O'Reilly. ISBN: 0596156367/978-0596156367.
- Computer Networks: A Systems Approach. Larry Peterson and Bruce Davie. 4th edition. Morgan Kaufmann. ISBN: 978-0-12-370548-8.
- Distributed Algorithms. Nancy Lynch. 1st edition. Morgan Kaufman. ISBN: 1558603484/978-1558603486.
- Hadoop: The Definitive Guide. Tom White. 3rd Edition. Early Access Release. O’Reilly Press. ISBN: 978-1-449-31152-0.
- Learning Spark: Lightning-Fast Big Data Analysis. 1st Edition. Holden Karau, Andy Konwinski, Patrick Wendell, and Matei Zaharia. O'Reilly. 2015. ISBN-13: 978- 1449358624.
- High Performance Spark: Best Practices for Scaling and Optimizing Apache Spark. Holden Karau and Rachel Warren. O'Reilly Media. 2017. ISBN-13: 978-1491943205.
- Practical Cryptography. Niels Ferguson and Bruce Schneier. 1st edition. Wiley Publishing. ISBN: 0-471-22894-X/0-471-22357-3.
- Cryptography and Network Security: Principles and Practice. William Stallings. 5th Edition. Prentice Hall. ISBN: 0136097049/978-0136097044
- Unix Systems Programming. Kay Robbins & Steve Robbins, 2nd edition. Prentice Hall. ISBN: 978-0-13-042411-2.
- Operating Systems Concepts. Avi Silberschatz, Peter Galvin, Greg Gagne. 8th edition. John Wiley & Sons, Inc. ISBN-13: 978-0-470-12872-5.
List of Topics
| 1. Time and Logical clocks |
| |
(a) NTP and GPS systems
(b) Scalar, vector, and matrix clocks
|
| 2. Thread safety and concurrent programming |
| |
Rationale for threads |
| |
Structure of threads in memory: stack, heap, and object allocations |
| |
Thread safe programming |
| 3. Programming models for Cloud Computing |
| |
MapReduce: Core design elements |
| 4. Hadoop & HDFS: |
| |
Developing MapReduce programs
Hadoop Distributed File System
MapReduce Runtimes |
| 5. Spark |
| |
Resilient distributed datasets (RDD)
Operations: transformations & actions
Spark Streaming |
| 6. Distributed Mutual Exclusion |
| 7. Election Algorithms |
| 8. Architectures & Topologies |
| |
Regular graphs, random graphs, power-law, and small-world networks |
| 10.Peer-to-Peer Systems and Distributed Hashtables |
| |
Structured and Unstructured P2P Systems. Time & Space complexity of P2P algorithms.
|
| 11. RPCs and Distributed Objects |
| 12. Tensor Flow and Orchestration of Deep Learning workloads |
| |
|
Exams and Quiz Makeup Policy
Midterm and Finals: Make-up exams are only given for extraordinary circumstances (e.g., illness, family emergency). Students must consult with the instructor as soon as possible, preferably before the start of the exam. Course examination dates are listed on the schedule page; be aware of them and plan accordingly.
Quizzes: There will be ~15 quizzes. No make-ups will be given for missed quizzes. We will be taking your top-10 scores. Scores for quizzes that were missed will be zero. Make-up quizzes are granted only under two specific circumstances: (1) You provide an official, signed letter from the University excusing your absence for a sanctioned event, or (2) you present documentation of a medical or family emergency that coincided with the class.
We do not make individual exceptions beyond these cases—it would be unfair to those who attend class and take the quiz as scheduled. If your situation does not fall within these two categories, please resist the urge to send an email saying, “I thought I’d ask.” If we grant an exception for one student, fairness dictates we do so for all students who missed the quiz but abided by the policy without asking.
That said, only your top ten quiz scores will count, so there’s a built-in cushion for the occasional slip.
Assignment Submission and Late Penalties
All assignments are due at 8:00 PM on the due date. There is a late penalty of 7.5% per-day for up to a maximum of 2 days. All assignments will be posted at least 2 weeks prior to its due date. Assignments should be submitted using Canvas.
Generative AI Use and Consequences
Use of AI tools such as ChatGPT, Claude, Github Co-Pilot, or anything of their kind to write or “improve” your code or written work at *any* stage is prohibited; this includes the ideation phase. It is your responsibility to ensure that you don’t have the GitHub Co-Pilot extension installed in your IDE; assignment solutions generated by Co-Pilot aren’t written by you. Turning in code or an essay written by generative AI tools will be treated as turning in work created by someone else, namely an act of plagiarism and/or cheating. At a minimum, this will result in a 100% penalty i.e. if the assignment was worth 10 points you will receive -10/10; the maximum penalty is an F letter grade for the course. To ensure fairness and maintain integrity, grading of programming will also include code reviews, interviews, and on-the-spot code modifications.
Laptop and Tablet Use Policy
Laptops in class turn out to be a distraction; not only for the person using them, but for everyone else around them. Our GTAs, usually stationed in the last row, have seen them put to every purpose except learning: social networking updates, other assignments, YouTube, and even gaming. The point I want to emphasize here is that it is not just about the student who wants to use a laptop, but about the class as a whole and the learning we are all here to do together. To keep our focus on the class itself, laptops are permitted only with an SDC accommodation that specifically requires them, and in that case those students should sit in the last row, beginning from the corners. Tablets (only when they are used with a stylus or pencil) are welcome and carry no seating restrictions; tablets in the keyboard mode are expressly disallowed.
And as for cellphones (with their accompanying glow, texting, scrolling) it’s more than just a private diversion. It is rude to the Professor and distracting to those around you. For that reason, cellphone use in class is not allowed under any circumstances.
Professional Conduct
All students are expected to conduct themselves professionally. We (the Professor and TAs) assume you are familiar with the policies in the student information sheet for the department and the department conduct code. Additionally, you are computing professionals, albeit perhaps just starting. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.
This course will adhere to the CSU Academic Integrity Policy as found in the Student Conduct Code. At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.
Students not already familiar with the CSU Honor Pledge should review this clear and simple pledge and always adhere to it. Academic dishonesty will be dealt with severely. The first instance of cheating will result in negative credit. The second instance will result in a failing grade and other penalties dictated by departmental and university policies.
We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular:
- Please turn off the ring on your cell phone. If you are expecting an emergency call, sit near the door and slide out discretely to take it.
- If at any time the instructor judges that an electronic device is becoming a distraction the student may be asked to to turn it off and put it away.
We require you to follow the guidelines listed below for postings on Piazza:
- Be professional.
- Be courteous.
- Do not post any questions about your grade or any grading issues. Such questions are private communication and must be emailed.
- Do not post any opinions regarding your graded assignment or any aspect of the course. You will have a chance to submit anonymous reviews at the end of the semester. Email feedback to the instructor regarding the course is acceptable and welcome.
- The instructor reserves the right to delete postings that do not promote a conducive learning experience for students in the class.
|