CIS 505: Software Systems
Home | Lectures |
Assignments |
Projects
Instructor:
Insup Lee
Time & Place:
Monday and Wednesday 3:00-4:15 pm, Moore 216
Teaching Assistants:
David Arney (arney {at} cis.upenn.edu)
Arvind Easwaran (arvinde {at} cis.upenn.edu)
Office Hours
Insup Lee : Tuesday and Wednesday 4.21-5.12 pm
(Levine 602) and by email appointment
David Arney:
Monday 2:00 - 2:50 pm, Thursday 4:00 - 5:00 pm (GRW 279)
Arvind Easwaran:
Friday 12:00 - 1:00 and 4:00 - 5:00 (Levine 310)
Newsgroup
blackboard at courseweb.library.upenn.edu
Course Description
Ever increasing availability of processors connected by a
communication network has motivated the development of numerous
concepts and paradigms for distributed systems. The primary
objectives of this course are to study the principles and concepts of
distributed computing and to allow students to experience the
development of software for distributed systems. The students will
learn about the nature of distributed systems including problems,
solutions and limitations, as well as theoretical foundations for the
design and implementation of distributed software systems. Topics to
be covered include communication, concurrency, programming paradigms,
naming, managing shared state, caching, synchronization, reaching
agreement, fault tolerance, security, middleware, real-time embedded
systems, and applications.
Assignments
Several Programming Assignments and Problem Sets
Group Programming Project: Each group will be 2-3 people. Each
group selects their own project with the consent from the instuctor.
Its requirements are that it must be
non-trivial and involve some aspects of concurrent and distributed
programming.
Project
Exams
Grading
Assignments and Project: 50%
Midterm Exam: 20%
Final Exam: 30%
Textbooks and Reading Material
Distributed Systems: Principles and Paradigms, Second Edition by Andrew S. Tanenbaum and Maarten van Steen, Prentice Hall, 2007.
Communicating Sequential Processes by Tony Hoare, Prentice Hall, 1985.
(Free online copy available from www.usingcsp.com/)
The Poor Man's Guide to Computer Networks and their Applications by Robin Sharp, April 2004.
[pdf]
Selected Papers.