GithubHelp home page GithubHelp logo

bsds-6650's Introduction

Building Scalable Distributed Systems

CS6650 Spring 2021

Instructor: Ian Gorton, Khoury College of Computer Sciences, Northeastern University

Logistics

Class: 3.00-6.15pm Tuesday, 225 Terry Ave N, Seattle Campus and online (Zoom info on Canvas site)

Course Lead

Ian Gorton - i.gorton(at)northeastern.edu

Office Hours - Monday 2-5pm (PST)

Super Talented Teaching Assistants

Overview

This course will cover the essential elements of distributed, concurrent systems and build upon that knowledge with engineering principles and practical experience with state-of-the-art technologies and methods for building scalable systems. Scalability is an essential quality of Internet-facing systems, and requires specialized skills and knowledge to build systems that scale at low cost.

Course Delivery

In our weird pandemicy world right now, we need to run classes a little differently. Each week the lecture materials will be recorded and uploaded to Canvas. You will be expected to watch these and do the associated reading. Class time will be spent giving a summary of the key points, and answering questions. So come, physically or virtually, prepared. Each class will also have a hands-on lab for you to work through.

Assessment

  • There are 4 individual assigments. They total 70% of the final grade.
  • There are 4 quizes. They combine to add up to the remianing 30% of the grade. The first 3 will cover the materials in the previous 3 week's classes. The last quiz will have questions that cover the whole course. Each quiz will be allocated 45-60 minutes and be available at the start of the class in which it is scheduled.

Course Content

Modules

Week Topic Date
1 Introduction to Scalable Distributed Systems 1/19
2 Concurrency 1/26
3 Distributed Systems Architecture Whirlwind Tour 2/2
4 Distributed Systems Fundamentals 2/9
5 Scalable Service Design 2/16
6 Asynchronous Systems 2/23
7 Microservices 3/2
8 Data Replication, Partitioning and Eventual Consistency 3/9
9 Strong Consistency and Distributed Databases 3/16
10 NoSQL Databases 3/23
11 Serverless Processing Systems 3/30
12 Stream Processing 4/6
13 Final Quiz and Course Wrap up 4/13

Assignments

Submission instructions and exact deadlines are on the course Canvas site.

Assignment Topic Due Date
1 Concurrency and Client-server 2/10
2 Building the Server 3/10
3 Asynchronous Processing 3/31
4 Scaling the Data Layer 4/26

Quizzes

Quizzes will be held at the start of class on the following 4 dates.

Quiz Date
1 2/9
2 3/2
3 3/30
4 4/13

Reading

Course specific reading will be provided each week for the first half of the course.

We also cover a lot of material that is not really covered by a single book Each week will give you some resoures to read/view that are relevant to the materials.

The following are great resources however, and can be excellent references for this course and your future career.

  • Java Concurrency in Practice 1st Edition, Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea
  • Distributed systems : concepts and design, Coulouris, George F. ; Dollimore, Jean. ; Kindberg, Tim. ; Blair, Gordon. Harlow, England ; Addison-Wesley c2012
  • Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, Martin Kleppmann, O'Reilly

Policies

Late Submission If you need more time, come beg :). Communications usually give a positive outcome. Without warning, you'll lose 5% of your final grade each day overdue.

Missed Quizzes Quizzes are held in class and last approximately 30 minutes. If you are not able to attend and take the quiz at the same time as others, you must let me know in advance. Failure to do this will result in a zero for the quiz you miss.

Do your own work You know the rules. Helping each other out is fine, but design and build your own system. Any unwarrented collaboration will result in a zero grade for the assignment.

Come to class In person or virtually. Most classes contain a lab exercise that builds on the lecture materials and supports the assignments. These are great opportunities to work on problems that deepen and broaden your knowledge.

bsds-6650's People

Contributors

gortonator avatar jeremy-wl avatar weijiadeng avatar lmamaril avatar nltran12 avatar joyinmyzone avatar mocaa7 avatar zhenhuiguo1995 avatar jingyi-w avatar duskcloudxu avatar irgregg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.