Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Further Experience with Teaching Distributed Systems to Undergraduates

Further Experience with Teaching Distributed Systems to Undergraduates

Interested in learning more about this approach to teaching? Visit my courses page to learn more: https://www.gregorykapfhammer.com/teaching/

Gregory Kapfhammer

October 19, 2005
Tweet

More Decks by Gregory Kapfhammer

Other Decks in Education

Transcript

  1. Further Experience with Teaching
    Distributed Systems to Undergraduates
    Gregory M. Kapfhammer
    Department of Computer Science
    Allegheny College
    http : //cs.allegheny.edu/˜gkapfham/
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 1/12

    View Slide

  2. The First Day of Class
    Are you ready? You must become comfortable with the
    theory and practice of the design, implementation, and
    analysis of distributed systems and algorithms
    I’ll never go back to a single address space again: students
    realize that building distributed systems is challenging and
    fun!
    Ricart and Agrawala who? distributed mutual what? why is
    Lamport stamping time? epidemic algorithms?
    I think I just had a page fault: students must manage a
    variety of complexity sources
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 2/12

    View Slide

  3. Distributed System Challenges
    Students need to be familiar with (or willing to learn!)
    material about programming languages, operating systems,
    networks, theory, and algorithms
    Nuts and bolts: RPCs in C, RMIs in Java, Java virtual
    machines, Jini 1.2 and 2.0, JavaSpaces, and the CLASSPATH
    Include concepts from concurrency such as semaphores
    and monitors with real implementations in Java
    What are we measuring? students must be able to conduct
    experiments to evaluate the relative strengths and
    weaknesses of algorithm and implementation choices
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 3/12

    View Slide

  4. Course Objectives
    Explore the principles and paradigms associated with
    distributed systems
    Principles: communication, naming, distributed scheduling,
    synchronization, mutual exclusion, consistency, replication,
    and fault tolerance
    Paradigms: become very familiar with object-based
    distributed systems using Jini and JavaSpaces
    Include a discussion of special topics such as distributed
    hash tables (DHTs), tuple spaces, and data stream
    management systems (DSMS)
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 4/12

    View Slide

  5. Instructional Objectives
    Course difficulty should be worn as a badge of honor
    Create exciting laboratory assignments where the students
    actually implement interesting systems and measure their
    performance
    A “gloves off approach” with a safety net: try to hide some
    complexity while ensuring that students retain perspective
    and understand many low-level details
    Require students to keep laboratory notebooks where they
    record hypotheses, data, observations, and design choices
    Read many scholarly and a few popular presss articles
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 5/12

    View Slide

  6. Topic: Remote Communication
    Discovery, code downloading, parameters, transparency
    Local, remote, and distributed objects
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 6/12

    View Slide

  7. Topic: Distributed Scheduling
    Unshared state, resource matching, and process migration
    Case studies: Sprite, Condor, Frugal, ComputeFarm for
    scientific computation and distributed testing
    Load balancing vs. load sharing and the cost/benefit tradeoff
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 7/12

    View Slide

  8. Special Topic: Tuple Spaces
    Space clients can write, take, and read Entry objects
    How do we measure performance and/or correctness?
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 8/12

    View Slide

  9. Special Topic: OpenDHT
    Clients can put and get with Sun RPC or XML-RPC
    How do we measure performance and/or correctness?
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 9/12

    View Slide

  10. Special Topic: Data Streams
    Continuous streams of data and queries
    Case studies: STREAM, TelegraphCQ, load shedding
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 10/12

    View Slide

  11. Conclusions
    The design and implementation of distributed systems is
    challenging, fun, and rewarding
    Current distributed systems textbooks are generally very
    good (there are still surprises, though!)
    There is a wealth of well-written literature from good
    conferences and journals
    Most students enjoy laboratories with Jini, JavaSpaces and
    Python (OpenDHT) while RPC programming in C is seen as
    tedious
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 11/12

    View Slide

  12. Resources
    Your comments, suggestions, and participation are invited!
    http : //cs.allegheny.edu/˜gkapfham/teach/cs441/
    Further Experience with Teaching Distributed Systems to Undergraduates, 9th JCM, October 19-20, 2005 – p. 12/12

    View Slide