Academic Catalog


Foothill College Course Outline of Record

Foothill College Course Outline of Record
Heading Value
Units: 4.5
Hours: 4 lecture, 2 laboratory per week (72 total per quarter)
Advisory: C S 55A.
Degree & Credit Status: Degree-Applicable Credit Course
Foothill GE: Non-GE
Transferable: CSU
Grade Type: Letter Grade (Request for Pass/No Pass)
Repeatability: Not Repeatable

Student Learning Outcomes

  • A successful student will demonstrate an understanding of and be able to describe the basics of database technologies including their need, transactions, indexing, keys and components.
  • A successful student will be able to demonstrate how to create a relational database and interface to an Amazon cloud based Relational Database System.
  • A successful student will be able to describe that differences between uses of traditional relational and NoSQL database systems.


This course addresses cloud database management which supports a number of different approaches for storing data. In the course, students define, operate and scale both SQL and noSQL data storage solutions. This course considers factors that should be balanced during the design of a storage solution. Principles are applied by performing exercises using Amazon RDS and SQL to create and fill tables, retrieve and manipulate data. Object-based APIs are used to serialize objects to Amazon DynamoDB for noSQL solutions. Topics include automated backups, transaction logs, restoration and retention.

Course Objectives

The student will be able to:
A. Apply for an Amazon (AWS) account and Amazon Educate account
B. Understand and describe the basics of database technology, including their need, transactions, indexing, keys and components
C. Demonstrate how to create and interface to an Amazon cloud based Relational Database System (RDS)
D. Understand how to store and access relational data from the cloud RDS through application and programmatic methods
E. Explain the need for and principles of non-relational, unstructured database technology via Amazon DynamoDB
F. Demonstrate how to store and access non-relational data using the DynamoDB through application and programmatic methods
G. Understand and describe how to migrate exiting RDBMS instances into the Amazon RDS system using the AWS Database Migration service
H. Demonstrate the basics of monitoring, managing, backing up and restoring RDS instances using Amazon tools
I. Understand the basics of backing up, restoring and securing using encryption with Amazon DynamoDB instances

Course Content

A. AWS access
1. AWS account acquisition
2. AWS Educate account acquisition
B. Database technology
1. Commercial database examples
2. Requirements for database technology versus flat file storage
3. Transaction processing, including atomicity, consistency, isolation and durability
4. Indexing principles
5. Modern Relational Database Systems (RDBMS) components
C. AWS Database Services
1. Amazon RDS instance creation
D. Storage and access of RDS through remote applications
1. Remote management of RDS via the HeidiSQL tool
2. Remote access to RDS through MySQL Workbench tool
3. RDBMS tables, data, metadata and data types
4. Basic SQL commands
e. Primary Key
5. Creating tables using HeidiSQL and MySQL Workbench
6. Adding data to tables using HeidiSQL and MySQL Workbench
7. Querying data in tables using HeidiSQL and MySQL Workbench
8. Foreign key basics
9. Using HeidiSQL and MySQL Workbench to establish foreign keys
10. Programmatic access to RDS via JavaScript
E. Unstructured databases
1. Introduction and need
a. Concepts of volume, velocity, variety and veracity
b. Introduction to Big Data and example of Amazon Rekognition image analysis service
c. Introduction to Amazon DynamoDB NoSQL database service
1) Tables and table creation
2) Items
3) Primary Key
4) Secondary Index
F. Amazon DynamoDB usage
1. Creating and launching an Amazon DynamoDB table
2. Managing and securing the Amazon DynamoDB instance
3. Basics of JavaScript Object Notation (JSON)
4. Connecting to Amazon DynamoDB via JavaScript
G. Database migration concepts
1. Understanding and using the Amazon Database Migration Service (AWS DMS)
2. Migrating data from source DB to target DB
a. Pricing model
b. Source DB DBMS types
H. Monitoring and managing RDS instances
1. Monitoring fundamentals
a. Performance metrics, including CPU, memory, disk space and input/output operations (IOPS), throughput and connections
b. Monitoring via RDS console
c. Monitoring via Trusted Advisor dashboard
d. Monitoring via Amazon CloudWatch
2. Backup and restore concepts
a. Strategies
b. RDS backup
c. Snapshot creation and restore
I. Managing Amazon DynamoDB instances
1. Backup and restore concepts
2. Creation and restore
3. Encryption

Lab Content

A. Install node, npm and the MySQLWorkbench
B. Create a standard AWS Relational Database and verify that is is functioning correctly
C. Launch a Relational Database in the cloud
D. Storing relational data in the cloud
1. Install and verify the dataset of recent bank closures required by the FDIC, the Federal Deposit Insurance Corporation (dataset will be provided)
2. Install and verify the dataset of about 1000 cameras with 13 properties, including weight, length and price (dataset will be provided)
E. Install and connect to a Amazon DynamoDB noSQL database
F. Perform a variety of experiments with the Amazon DynamoDB
G. Advanced RDS using Advanced DynamoDB facilities

Special Facilities and/or Equipment

A. Access to a computer laboratory with web browsers.
B. Website or course management system with an assignment posting component (through which all lab assignments are to be submitted) and a forum component (where students can discuss course material and receive help from the instructor). This applies to all sections, including on campus (i.e., face-to-face) offerings.
C. When taught via Foothill Global Access on the internet, the college will provide a fully functional and maintained course management system through which the instructor and students can interact.
D. When taught via Foothill Global Access on the internet, students must have currently existing email accounts and ongoing access to computers with internet capabilities.

Method(s) of Evaluation

A. Tests and quizzes
B. Written laboratory assignments, which include detailed instructions, sample runs and documentation
C. Final examination

Method(s) of Instruction

A. Lectures which include motivation for the architecture of the specific topics being discussed.
B. In-person or online labs (for all sections, including those meeting face-to-face/on campus), consisting of:
1. An assignment webpage located on a college-hosted course management system or other department-approved internet environment. Here, the students will review the specification of each assignment and submit their completed lab work.
2. A discussion webpage located on a college-hosted course management system or other department-approved internet environment. Here, students can request assistance from the instructor and interact publicly with other class members.
C. Detailed review of laboratory assignments which includes model solutions and specific comments on the student submissions.
D. In person or online discussion which engages students and instructor in an ongoing dialog pertaining to all aspects of designing, implementing and analyzing programs.
E. When course is taught fully online:
1. Instructor-authored lecture materials, handouts, syllabus, assignments, tests, and other relevant course material will be delivered through a college-hosted course management system or other department-approved internet environment.
2. Additional instructional guidelines for this course are listed in the attached addendum of C S department online practices.

Representative Text(s) and Other Materials

Ryan, M., and F. Lucifredi. AWS System Administration. O'Reilly Publishers, 2018. ISBN-13: 978-1449342579.

Sarkar, Aurobindo, and Amit Shah. Learning AWS: Design, Build, and Deploy Responsive Applications using AWS Cloud Components, 2nd ed. Packt Publishing, 2018. ISBN-13: 978-1787281066.


Types and/or Examples of Required Reading, Writing, and Outside of Class Assignments

A. Reading:

1. Textbook assigned reading averaging 30 pages per week.

2. Reading the supplied handouts and modules averaging 10 pages per week.

3. Reading online resources as directed by instructor though links pertinent to programming.

4. Reading library and reference material directed by instructor through course handouts.

B. Writing:

1. Writing technical prose documentation that supports and describes the programs that are submitted for grades.



Computer Science