Active Outline
General Information
- Course ID (CB01A and CB01B)
- CISD364E
- Course Title (CB02)
- Fundamentals of Large Scale Cloud Computing
- Course Credit Status
- Non-Credit
- Effective Term
- Fall 2024
- Course Description
- This course addresses the fundamental challenges in the design, implementation, and deployment of large-scale distributed systems. Concepts covered include concurrency, synchronization, connection establishment, event handling, inter-process communication, storage management, and service registration, discovery, and lookup. It also covers issues related to distributed objects such as life cycle management, mobility, security, naming, location, evolution, and autonomy.
- Faculty Requirements
- Discipline 1
- [Computer Information Systems (Computer network installation, microcomputer technology, computer applications)]
- Discipline 3
- [Computer Science]
- FSA
- [FHDA FSA - CIS]
- Course Family
- Not Applicable
Course Justification
This is a noncredit enhanced CTE course. Large Scale Systems such as Google Search, LinkedIn Network, and Facebook are rapidly deployed to provide a variety of services in Cloud Computing. With the emergence of Cloud Computing, the implementation of Distributed Systems is becoming more popular among Enterprises. Students get an in-depth view of how large-scale systems are designed and implemented. This course is part of the Database Design for Developers Certificate of Completion.
Foothill Equivalency
- Does the course have a Foothill equivalent?
- No
- Foothill Course ID
Formerly Statement
Course Development Options
- Basic Skill Status (CB08)
- Course is not a basic skills course.
- Grade Options
- Letter Grade
- Pass/No Pass
- Repeat Limit
- 99
Transferability & Gen. Ed. Options
- Transferability
- Not transferable
Units and Hours
Summary
- Minimum Credit Units
- 0.0
- Maximum Credit Units
- 0.0
Weekly Student Hours
Type | In Class | Out of Class |
---|---|---|
Lecture Hours | 4.0 | 8.0 |
Laboratory Hours | 0.0 | 0.0 |
Course Student Hours
- Course Duration (Weeks)
- 12.0
- Hours per unit divisor
- 36.0
Course In-Class (Contact) Hours
- Lecture
- 48.0
- Laboratory
- 0.0
- Total
- 48.0
Course Out-of-Class Hours
- Lecture
- 96.0
- Laboratory
- 0.0
- NA
- 0.0
- Total
- 96.0
Prerequisite(s)
Corequisite(s)
Advisory(ies)
ESL D272. and ESL D273., or ESL D472. and ESL D473., or eligibility for EWRT D001A or EWRT D01AH or ESL D005.
Limitation(s) on Enrollment
Entrance Skill(s)
General Course Statement(s)
NONCREDIT: (This is a noncredit enhanced, CTE course.)
Methods of Instruction
Lecture and visual aids Discussion of assigned reading Discussion and problem solving performed in class Collaborative learning and small group exercises Collaborative projects |
Assignments
- Readings from text.
- Documenting, coding, testing and debugging six to ten programs with guidance provided with clearly documented design, half completed in the computer lab, half completed as homework.
Methods of Evaluation
- One or two midterm examinations requiring some programming, concepts clarification and exhibiting mastery of large scale processing systems principles.
- A final examination requiring concepts clarification and exhibiting mastery of large scale processing system principles.
- Evaluation of programming assignments, based on correctness, documentation, code quality, and test plan executions.
Essential Student Materials/Essential College Facilities
Essential Student Materials:Â
- None
- None
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
Alex Xu and Sahn Lam | System Design Interview – An Insider's Guide: Volume 2 | Byte Code LLC | March 11, 2022 - 2nd Edition | ISBN-13 - 978-1736049112 |
Examples of Supporting Texts and References
None.
Learning Outcomes and Objectives
Course Objectives
- Explore distributed system as a process and assess its role in building large scale computing systems.
- Use distributed system middleware to enable communication between disparate systems.
- Articulate the characteristics and challenges of building system services in distributed processing systems.
- Examine the structure of distributed algorithms that enable high levels of concurrency in large systems.\
- Interpret and analyze techniques that enable data sharing in Cloud enabled systems.
- Compare and contrast the challenges in enabling mobile and ubiquitous computing.
CSLOs
- Design, implement and debug a distributed system using technology like Web Services.
Outline
- Explore distributed system as a process and assess its role in building large scale computing systems.
- Introduction to distributed systems, challenges, trends and resource sharing management.
- Describe the physical and architectural models in distributed systems.
- Describe network types and Internet protocols,
- Introduction to Internet protocol API, external data representation and marshalling, multicast communication and network virtualization.
- Reconstruct and apply request-reply protocols, remote procedure call and remote method invocation.
- Introduction to indirect communication, group system communication in publish-subscribe systems, message queues and shared memory approaches.
- Introduction to operating system layer using processes, thread, communication and invocation and operation system architecture.
- Use distributed system middleware to enable communication between disparate systems.
- Introduction to Distributed objects and using Common Object Request Broker Architecture (CORBA) and Remote Method Invocation (RMI).
- Creating Components from Distributed objects.
- Create Web Services using Simple Object Access Protocol.
- Introduction to Peer-to-Peer middleware and traffic routing scenarios.
- Articulate the characteristics and challenges of building system services in distributed processing systems.
- Overview of security techniques and cryptography algorithms.
- Overview of Distributed File Systems (DFS) and File service architecture.
- Elaborate name services including Domain Name System and Directory Services.
- Examine the structure of distributed algorithms that enable high levels of concurrency in large systems.
- Overview of Clocks, events, process states and clock synchronization.
- Distributed mutual exclusion, elections and coordination and agreement in group communication.
- Interpret and analyze techniques that enable data sharing in Cloud enabled systems.\
- Transaction management, nested transactions, locks and optimistic concurrency controls and timestamp ordering.
- Flat and nested distributed transactions. commit protocols, distributed deadlocks and transaction recovery.
- Replicated data, role of group communication in distributed transactions and fault-tolerant services.
- Compare and contrast the challenges in enabling mobile and ubiquitous computing.
- Association, interoperation, sensing and context awareness, security and privacy and Adaptation.
- Characteristics of rich data, service management, resource management and stream adaptation.