程序代写案例-CS 218

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
1
SJSU CS 218 PROJECTS FALL 2021
You and your teammates will demonstrate your mastery of the material taught in this course with two projects. The br>first project involves paper-study and in-class presentation. The second project includes research, design,
implementation, and testing of a self-proposed topic in cloud computing. Projects have deliverables throughout the
semester. Each group member is expected to participate in every phase of the projects. The quality and completeness
of all the deliverables will be considered in grading the projects.
Objectives
• To reinforce and practice cloud computing mechanisms, cloud architectures, and cloud applications learned in
class
• To follow good software engineering practices in design, implementation, testing and documentation
• To learn how to write good technical report and do good presentation
• To collaborate effectively in a team environment
Team
Each team consists of ? to ? students – to be announced after the drop-class deadline. Any deviation from the specified
team size, such as a one-person team, is not allowed.
Each team should select a team lead to coordinate various team activities and submit team assignments and reports. All
assignments should be submitted to Canvas on time.
Each team member should collaborate with each other and be a good team player to complete projects.
Schedule
Just like any homework assignment, you must be submitted each of the followings on time.

• Team Formation: 11:59pm on 9/10
• List of names and L3SIDs. Who is the team lead.
• Email the list of team members and who the team lead is to [email protected] with subject
“CS218_TEAM”, and CC to the rest of the team
lastName firstName
Doe John
Jane Smith
… …
Team lead: …
• A unique team number n will then be assigned by the instructor.
• Each team becomes a “project group” on Canvas. Each team would need to complete several Project
assignments, each of which is a group assignment on Canvas.
• Do NOT create your own project group on Canvas.
• Set up Canvas notification if you haven’t done so.
• Project 2 Proposal: 11:59pm on 9/29
• Submit the following to the Canvas assignment “Project 2: Proposal”.
o CS218_TEAMn_PROPOSAL (.pdf, .doc, or .docx)
• Please use the project proposal template as the starting point. If needed, you can then add any
additional sections. Submission without including mandatory sections will be rejected.
2
• You must re-submit the proposal until it is approved by the instructor. If a revision is not submitted
within 4 calendar days after the instructor gives you feedback, each team member receives 1 point
deduction (of the project’s report portion) and such deduction repeats for every 4 additional calendar
days. Failing to get the final approval within 10 calendar days from the deadline, each team member
may receive further deduction. Each resubmission must high-light the portions you modified.
• The proposal must be approved by the instructor (i.e., receive a “complete” grade on Canvas) in order to
proceed.
• Project 1 presentation slides: 11:59pm on 11/15
• Submit the following to the Canvas assignment “Project 1 – slides/presentation”.
o CS218_TEAMn_PAPER_SLIDES (.pdf, .ppt, or .pptx)
• Submission without including mandatory sections will result in grade deduction.
• Project 2 Final Report, source codes, and presentation slides: 11:59pm on 11/22
• Submit the following to the Canvas assignment “Project 2 – Report/demo/slides”.
o CS218_TEAMn_REPORT (.pdf, .doc, or .docx)
o CS218_TEAMn_SLIDES (.pdf, .ppt, or .pptx)
• Please ensure to include all mandatory sections in the report. Submission without including mandatory
sections will result in deduction to the entire team.
• Include “SJSU CS 218 Fall 2021 TEAMn” as comment near the top (1st line, if possible) of each source file
(.sql, .java, .py, .c, .cpp, .h, .js, .html, etc.) written by the team.
• Organize all source code (app, scripts, database creation script, sample data, app log files, etc.) into the
following hierarchy
CS218_TEAMn_SOURCES
: a directory which includes app source tree
DB: a directory which includes DB related scripts (table, view, stored procedure, index,
sample data, etc.), if applicable
Log: a directory which includes sample (text-based) app log files created by cloud service
automatically or by your application directly
<…>: Other necessary directories/files/sample data/etc.
• Zip the above hierarchy and submit the following to the Canvas assignment “Project 2 –
Implementation/testing”.
o CS218_TEAMn_SOURCES.zip
Note
Your projects must be original – the project should be created by the team from scratch specifically for this course ONLY.
Any copying/cheating activity is not allowed. Refer to the section “Academic Integrity and Collaboration Policy” in the
green sheet.
Any late submission or late revision will not be accepted. Failing to turn in project related assignments (report, slides,
source code, etc.) on time will result in penalty for the entire team.
If a team member does not participate in any team activities, other team members should notify the instructor
immediately without delay, and this team member will receive 0 point for the entire project.
Each project-related assignment is a group assignment, though project grade for each member is individual.
Each team member must participate in coding (which is part of implementation) and must participate in
presentation/report writing. No coding implies a very poor mark for “implementation/test”.
3
Project 1: paper-study and presentation
The instructor will assign a paper to each team to study. The team studies the paper as a group and uses your own
words to prepare slides (no more than 14 pages) for in-class presentation. The content of slides must include (but not
limited to) the followings:
• paper title, team #, team members
• contributions from each team member: who worked on which part of slides
• the task to tackle or problem to resolve, and assumptions / operating environments / intended usage
• the design/implementation, and tradeoffs
o focus on the theme or the high-level picture of the paper and adopt a top down approach
o selectively dive into essential features and techniques but no need to dive into all tedious details – have
a good balance between breadth and depth
• your own insight and/or your own criticism – use your own words; do not copy feature list from the paper
• references (must include the assigned paper, and more if any)
You can assume readers of the slides are your classmates who have not read the actual paper. To avoid plagiarism,
make sure you cite the reference [n] at proper places in the slides.

Note we focus on quality instead of quantity – a lengthy slides do not translate to higher grade. A 10-page slides with
your own insight/criticism is far better than 14-page slides without your own insight/criticism.
The grading is based the following factors:
1. Did the slides capture the architecture (bigger picture), and summarize important techniques and design
trade-offs?
2. Did you use your own words? A good indication is the similarity with the original paper. The less the better.
3. Did you have meaningful criticisms? Did you reference additional papers to support your criticism? Did you
offer suggestions to resolve or improve the situation?
4. The bare minimum is to include the assigned paper in the reference. Did you include any additional
references, did you have proper citation in slides? Merely including references without any citation is similar to
no references at all.
5. Did you participate the discussion during project 1 discussion?
Selected teams will present the paper similar to conducting a workshop with slides in class. The instructor will make
presentation slides available on Canvas (under files/project 1 slides) to the entire class. The length of the presentation
will be announced later.
Project 2 (Term Project): Topic
Each team should select a unique topic for the project in cloud computing – no duplicates.
Unlike homework, the term project must be more complicated in nature. Potential project topic may include (but not
limited to):
• original research ideas which no one else has been working on
• analysis and/or comparison related
• implementation related
4
o cloud mechanisms and/or architectures that do not exist, or improve existing ones, in a cloud
infrastructure, e.g., load balancing, scalability, fault tolerance, high availability, etc.
o (old or new) problem solving / algorithms with technologies available in cloud
o Resource or performance management in cloud
o cloud-based applications
o cloud security, privacy
o virtualization, e.g., KVM, Xen, ESXi, Hyper-V, OpenStack, etc.
o containers (e.g., Docker, rkt, etc.), or microservices
o Hadoop, Spark, Big Data, data mining, data analysis related
o Internet of Things (IoT), or Smart City related
o Artificial intelligence, machine learning, deep learning related
o Etc.

For implementation related project,
• Focus on the design and architecture (including load balance, scalability, availability, fault tolerance), and
when/where/how to leverage or integrate which cloud services provided by cloud providers. Your own feature
list is not as important. For example, if one uses AWS, one can run the application in EC2 or containers, one can
use Beanstalk to deploy applications, use autoscaling for scalability, use Availability Zone for availability, utilize
Elastic Load Balance for load distribution, use DynamoDB to persist data, etc.

• At least one (or more) project component must be based on virtual machine or container that is exposed to you.
In other words, a project that is entirely relying on serverless is not allowed. For AWS ECS, either EC2 or Fargate
launch type is fine. Many cloud providers offer many serverless services, such as AWS Lambda and Google
Function, by hiding infrastructure details away from a user. While it is useful to be familiar with these serverless
services, it is also important to learn how to utilize infrastructure components such as virtual machine or
containers, and to learn the design tradeoffs in order to have a better architecture. Therefore in this project,
your design cannot be based on pure serverless services.

You are encouraged to browse through the list of all papers (including papers not assigned to your team for project 1).
This may give you some inspiration and come up with a topic.
Project 2: Proposal
In less than 2 pages, propose a topic in cloud computing as your project. Your proposal must include (but not limited to)
the following sections:
• Project title
• Team #, team members
• Team members working on proposal
• State the problem/issue to resolve
• If applicable, briefly survey previous works if any (include references)
• If applicable, describe assumptions / operating environments / intended usage
• Describe your solution which may include (but not limited to), your plan and approach. Be as specific as
possible.
o For implementation-based project, also specify planned functionalities and operations.
o For analysis-based project, also specify planned metrics (e.g., performance, etc.) you are trying to analyze or
compare, and the dimensions for analysis/comparisons.
• Planned functional components and design: how to achieve your solution
5
o Include the Functional Diagram: based on your functionality, break down your solution into several
functional components, e.g., signup, authentication, process user request, prediction/machine learning, etc.
Show how components are connected (control flow, data flow). what are the input and output from user
perspective, etc.
• Planned implementation, platform, technologies, frameworks, and languages
o Include the Implementation Diagram: MVC/tier/microservice, front end/back end, how to implement
various components (VM, container, serverless, etc.), how components connect to one another (Restful web
service, SOAP, http, etc.), and existing cloud services/features (from cloud providers) you plan to leverage
and correlate them with cloud mechanisms/architectures learned from class.
o The implementation diagram must also show how to handle load balance, scalability, high availability, etc.
o Try to leverage as much cloud provider’s services/features as possible, and correlate them with cloud
mechanisms/architectures learned from class.
o List your component(s) that is/are based on virtual machine or container

Use the project proposal template as the starting point. If needed, you can then add any additional sections. Any
proposal without mandatory sections/diagrams will be rejected.

The instructor may reject the idea if it is too broad or too narrow. Upon rejection, you have to re-submit your proposal
ASAP until it is approved and must get the final approval within one week from the deadline.
Need to be approved by the instructor in order to proceed.
Project 2: Proposal Template
Title: <…>

Team




Team members working on proposal




Problem/Issue to Resolve
<…>

(If applicable) Previous works


(If applicable) Assumptions, Operating Environments, and Intended Usage
<…>

Your Solution
Be as specific as possible.>


6

analyze or compare, and the dimensions for analysis/comparisons.>

Functional components and design

functional components, e.g., signup, authentication, process user request, prediction/machine learning,
etc. Show how components are connected (control flow, data flow), what are the input and output
from user perspective, etc. >

Implementation Platform, Environment, Technologies, Frameworks, and Languages

various components (VM, container, serverless, etc.), how components connect to one another (Restful
web service, SOAP, http, etc.), and existing cloud services/features (from cloud providers) you plan to
leverage and correlate them with cloud mechanisms/architectures learned from class.>
availability, etc.>
on Amazon Container Service, etc.>



(optional) References

Project 2: Implementation Environment
You may use any OS, any platform, any languages, any technologies, and any frameworks.
For obvious security reasons, make sure you encrypt or hash any password before storing the data into database or files.
Any plain-text password is not allowed.
You are highly encouraged to leverage existing services/features from cloud providers as much as possible – no need to
re-invent the wheel. For instance, if you use AWS, you can take advantage of EC2, container, Elastic Load Balance,
Beanstalk, S3, or DynamoDB.
Reminder: turn off any instances after each class/session, or else the account will be charged immediately upon going
over the credit amount.
The preferred implementation environment is based on existing cloud providers (IaaS, PaaS, or SaaS). You are
encouraged to utilize any free tier / trials from any SaaS/Paas/IaaS cloud provider such as
• Google cloud: https://cloud.google.com/
o Education Grant: $50 (no credit card needed). Contact the instructor for details if you wish to take
advantage from this grant.
▪ Retrieve coupon: login to sjsu.edu only (and logout from all other accounts)
7
▪ Apply coupon to account: login to the account only, sjsu.edu or gmail.com (and logout from all
other accounts)
o Pool coupons to a team project:
https://docs.google.com/document/d/1yOu9lH5re9lSSLC1usw4YyDEB2eNCk0JefhvaW-4f_c/edit
o Change billing account: https://docs.google.com/document/d/1Gr--
0Wex0W3hqTaVgkoHeGC7rTkfpf7Y4DcTMYCP3es/edit#heading=h.cybuoq8mmoia
o Free trial warning:
https://docs.google.com/document/d/1Jsm53nwo1oqxDJ9QonLadT0xYmDt3FVUaw9dQ3AI51k/view
o Free tier, always free: https://cloud.google.com/free
▪ https://cloud.google.com/free/docs/gcp-free-tier
o Free GCP tutorial: https://www.qwiklabs.com/focuses/2794?parent=catalog
o https://github.com/GoogleCloudPlatform/edu-resources
• Amazon AWS: https://aws.amazon.com
o AWS Academy Learner Lab: $100 (no credit card), 4 hours per session
▪ https://awsacademy.instructure.com/courses/5011
• from the above AWS Canvas course → Modules → Learner Lab - Foundational Services
o Accessing it the first time may need to refresh the browser
• The top bar allows you to bring up AWS console, Start Lab, End Lab, Reset

▪ after the drop class deadline, you will receive an invitation
▪ available services: see Canvas: Files/dev env/AWS Academy Learner Lab - Foundational
Services.pdf
o AWS Educate Classroom Account: $50 (no credit card). https://www.awseducate.com
▪ Do NOT run SageMaker – you will encounter errors.
▪ Hands-on guide: http://awseducatehandson.s3-website-us-east-1.amazonaws.com
8
▪ How to get AWS Access key ID and secret access key:
https://stackoverflow.com/questions/40515079/access-key-id-and-secret-access-key-for-aws-
educate-account
o Educate Starter account: $100 (no credit card needed) https://aws.amazon.com/education/awseducate
▪ New Edu Starter account since Dec 2019: limited services, only supported in us-east-1 region,
https://s3.amazonaws.com/awseducate-starter-account-
services/AWS_Educate_Starter_Accounts_and_AWS_Services.pdf
▪ Do NOT run SageMaker – you will encounter errors.
▪ New Edu Starter account since Dec 2019: limited services, only supported in us-east-1 region,
https://s3.amazonaws.com/awseducate-starter-account-
services/AWS_Educate_Starter_Accounts_and_AWS_Services.pdf
o Free tier, always free: https://aws.amazon.com/free
▪ https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier-limits.html
• Microsoft Azure: https://azure.microsoft.com
o Student starter (no credit card needed): https://azure.microsoft.com/en-us/offers/ms-azr-0144p/
o Free, always free: https://azure.microsoft.com/en-us/free/
▪ https://azure.microsoft.com/en-us/free/free-account-faq/
• Heroku: https://www.heroku.com/
• Kubernetes: https://kubernetes.io/
• VMware vSphere: https://www.vmware.com/
• Docker containers: https://www.docker.com/
• Your own environment (such as VMs running on your own machine)
• Etc.
Project 2: Final Report
The final report in paragraph format (not list format) must include (but not limited to) the followings:
• Team #, team members
• The project topic and proposal: explain reasons if different from proposal submission
• If applicable, briefly survey previous works if any (include references)
• Describe the intended users or service consumers
• Specify final list of functionalities/operations (and, if different from proposal, status of each planned one)
• Member’s contributions: list project major areas/tasks, as detailed as possible, done by which team
member(s) and completion dates, in list format by team member. Areas/tasks include (but not limited to):
o Proposal
o Report, slides: which parts
o Implementation (break down to various components), testing (break down to components)
▪ If more than one member works on the same component, you must further break down to
specific functionality (or source file) within the component.
For example,
Member1
• …
• …
Member 2
• …
• …

9
• If applicable, Project URL:... (keep it up until project 2 grade is available)
o If applicable, a regular user login and password to your service, if your service does not allow self-
registration
o If applicable, a “admin” user login and password to your service
• Architecture
o Functional Diagram
▪ Functional Diagram: describe various components in your solution
▪ If any, flow diagram, sequence graph.
o Implementation Diagram
▪ Implementation diagram: describe various components and cloud provider’s services/features
you leveraged in your solution
• specify the config, setting, or policy of the services and include its screenshots
• describe which functional components are implemented by which services/features
▪ Discuss load balancing, high availability, scalability, etc. in your solution
o If any, design trade-offs – justifiable?
o Any major design decisions (and why)
• Final implementation, including (but not limited to)
o OS, languages, framework, technologies
o Demonstration of scalability, load balancing, high availability, etc. i.e., see these features in action via
load test, for various compoments (serverless or not) in your solution
▪ For “serverless” component, you can show related performance counters
o Sample execution (screen shots, etc.) for important functionalities / operations
o If applicable, source database scripts (create DB objects, sample data, etc.) – separate files
o Sample (text-based) log files (not database transaction log file) created by cloud service automatically or
by your application directly – separate files
• Any major modifications from proposal and why
• Any uniqueness (design, implementation, etc) that you are proud of
• Functionality test cases and test plan execution
• Project postmortem
o issues uncovered
o implement something differently
o potential improvements
o etc.
Project 2: Presentation and Demo
You should have slides (e.g., Power Point, PDF, etc.) to highlight your final report. Each team member should present
his/her own areas/tasks.
After presentation, you should have live demo of your implementation. Demo by playing prerecorded video is not
accepted unless you get the pre-approval from the instructor.
The length of presentation/demo per team will be announced later.

[Project 1 papers]
{All of the following papers are available on Canvas under files/papers.}

10
B. Calder, J. Wang, A. Ogus, N. Nilakantan, et al, “Windows Azure Storage: A Highly Available Cloud Storage Service with
Strong Consistency.” 23rd ACM Symposium on Operating Systems Principles (SOSP), SOSP’11.
http://sigops.org/sosp/sosp11/current/2011-Cascais/printable/11-calder.pdf

J. Dean and S. Ghernawat, “MapReduce: simplified data processing on large clusters.” Proc. 6th Symp. on Operating
Systems Design and Implementation, OSDI04, 2004.
http://research.google.com/archive/mapreduce-osdi04.pdf

P. Patel, D. Bansal, et al, “Ananta: Cloud Scale Load Balancing.” SIGCOMM’13, August 12–16, 2013.
http://conferences.sigcomm.org/sigcomm/2013/papers/sigcomm/p207.pdf

Doug Terry, “Replicated Data Consistency Explained Through Baseball.” Communications of the ACM, December 2013,
Vol 56(12): pp. 82-89.
https://www.microsoft.com/en-us/research/publication/replicated-data-consistency-explained-through-
baseball-2/



欢迎咨询51作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468