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

Course Philosophy


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

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours0.00.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


  1. Readings from text.
  2. 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


  1. One or two midterm examinations requiring some programming, concepts clarification and exhibiting mastery of large scale processing systems principles.
  2. A final examination requiring concepts clarification and exhibiting mastery of large scale processing system principles.
  3. Evaluation of programming assignments, based on correctness, documentation, code quality, and test plan executions.

Essential Student Materials/Essential College Facilities


Essential Student Materials: 
  • None
Essential College Facilities:
  • None

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Alex Xu and Sahn LamSystem Design Interview – An Insider's Guide: Volume 2Byte Code LLCMarch 11, 2022 - 2nd EditionISBN-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


  1. Explore distributed system as a process and assess its role in building large scale computing systems.
    1. Introduction to distributed systems, challenges, trends and resource sharing management.
    2. Describe the physical and architectural models in distributed systems.
    3. Describe network types and Internet protocols,
    4. Introduction to Internet protocol API, external data representation and marshalling, multicast communication and network virtualization.
    5. Reconstruct and apply request-reply protocols, remote procedure call and remote method invocation.
    6. Introduction to indirect communication, group system communication in publish-subscribe systems, message queues and shared memory approaches.
    7. Introduction to operating system layer using processes, thread, communication and invocation and operation system architecture.
  2. Use distributed system middleware to enable communication between disparate systems.
    1. Introduction to Distributed objects and using Common Object Request Broker Architecture (CORBA) and Remote Method Invocation (RMI).
    2. Creating Components from Distributed objects.
    3. Create Web Services using Simple Object Access Protocol.
    4. Introduction to Peer-to-Peer middleware and traffic routing scenarios.
  3. Articulate the characteristics and challenges of building system services in distributed processing systems.
    1. Overview of security techniques and cryptography algorithms.
    2. Overview of Distributed File Systems (DFS) and File service architecture.
    3. Elaborate name services including Domain Name System and Directory Services.
  4. Examine the structure of distributed algorithms that enable high levels of concurrency in large systems.
    1. Overview of Clocks, events, process states and clock synchronization.
    2. Distributed mutual exclusion, elections and coordination and agreement in group communication.
  5. Interpret and analyze techniques that enable data sharing in Cloud enabled systems.\
    1. Transaction management, nested transactions, locks and optimistic concurrency controls and timestamp ordering.
    2. Flat and nested distributed transactions. commit protocols, distributed deadlocks and transaction recovery.
    3. Replicated data, role of group communication in distributed transactions and fault-tolerant services.
  6. Compare and contrast the challenges in enabling mobile and ubiquitous computing.
    1. Association, interoperation, sensing and context awareness, security and privacy and Adaptation.
    2. Characteristics of rich data, service management, resource management and stream adaptation.
Back to Top