Skip to content

CS 493/599: Cloud Application Development - Spring 2024

Tools and techniques for building an HTTP API.

Your Responsibilities (Syllabus TL;DR)

These are your responsibilities for this course. Follow the links here to read more details below in the syllabus.

  • You must sign up for and attend a grading demo with the TA for all of your assignments.
  • You must do your own work for all assignments.
  • You must submit all your assignments by the deadline. If you need an extension, you must proactively communicate with the instructor before the assignment deadline.
  • You should use our course forum to ask questions about the course.
  • You should adopt a supportive attitude towards all members of our class.

Instructor

Rob Hess ([email protected])

TAs

Please refer to the course website linked above

Office Hours

Rob: Please refer to the course website linked above TAs: Please refer to the course website linked above

Lectures

MW 10:00–11:50am (US/Pacific), GILB 124

All lectures will be held in-person in the room listed above. Lectures will also be broadcast via Zoom (details below), in case you can’t make it to the in-person lecture for any reason.

Join Zoom Meeting

https://oregonstate.zoom.us/j/97784000101?pwd=ZndQeGdid0pTV1ZwUDhjdEZHRnNaQT09

Password: 437596

Phone Dial-In Information

+1 971 247 1195 US (Portland) +1 253 215 8782 US (Tacoma) +1 301 715 8592 US (Washington DC)

Meeting ID: 977 8400 0101

Lecture Info and Guidelines

The primary mode of delivery for all lectures in this course will be in-person. However, every lecture will also be broadcast remotely via Zoom, so those who, for any reason, can’t make it to the in-person lecture can still attend lectures. Please see below for additional information and guidelines about lectures for this course.

  • Lectures will be in-person-optimized – All lectures will be formatted to optimize the in-person lecture experience, so you will have the best lecture experience if you attend in person. For example, it may or may not be possible to easily field questions from Zoom attendees, and precedence will be given to in-person questions. Thus, I strongly encourage you to attend the in-person lecture unless you have a compelling reason not to.
  • Connecting to remote lectures – Connection information is listed above for remote lectures on Zoom. Remote lectures will be restricted to require attendees to log into Zoom using their OSU account. When you initially connect to the lecture, you will be placed into a “waiting room” until the lecture begins.
  • Lecture content – All lectures will consist mainly of live coding and whiteboarding. Lecture content will be outlined in a set of lecture notes posted on the course website linked above.
  • Lecture recordings – The remote version of each lecture will be recorded and posted on Canvas (under both “Media Gallery” and “Modules”) for later offline viewing. Code created during lectures along with other lecture content will be posted on the course website linked above.

Prerequisites

CS 290 and CS 340 and CS 372

Course Content

  • RESTful API design and implementation
  • Resources, routing, and HTTP verbs
  • Data representation and errors
  • Efficient data storage models
  • Data replication and synchronization
  • Authentication and authorization
  • Queueing and request processing
  • Search indexes and information retrieval
  • Cloud API deployment
  • API performance, reliability, and scaling

Student Learning Outcomes

At the completion of this course, students will be able to:

  • Design and implement an effective RESTful API, using appropriate HTTP verbs (GET, POST, DELETE, etc.) to access specific API resources.
  • Evaluate various approaches to representing data in API requests and responses and to alerting users of errors.
  • Use modern tools and techniques for storing API data.
  • Use modern techniques to replicate and synchronize data to ensure data safety and consistency.
  • Employ secure mechanisms for authenticating users and authorizing the use of specific portions of an API.
  • Use modern tools and techniques to queue and process API requests.
  • Select an available open-source search index to meet an API’s information retrieval needs.
  • Create a publicly available cloud API.
  • Evaluate an API’s performance and reliability using appropriate metrics.

Learning Resources

There is no textbook for this course. There will be required articles and other material from the internet posted on the course website as the course progresses.

Evaluation of Student Performance

Final grades will be comprised of the following weighted components:

  • 50% Programming assignments
  • 40% Final project
    • In lieu of a final exam, you’ll demonstrate your mastery of the skills you’ve learned by the end of this course by working with a small team to develop a complete RESTful HTTP API.
  • 10% Final project proposal/design
    • Before beginning work on the final project, you’ll submit a document describing the architecture and design choices behind the API you’ll implement.

Grades will be assigned using the standard ranges, after rounding. For example:

  • ≥ 93% = A
  • 90-92% = A-
  • 87-89% = B+
  • 83-86% = B
  • 80-82% = B-
  • etc.

Final grades will not be curved.

REMINDER: A passing grade for core classes in CS is a C or above. A C-, 72 or below, is not a passing grade for CS majors.

Assignments for the Grad Section

This is a “slash” course, which means it has both an undergrad section and a grad section that share a lecture. In this course, students in the grad section will complete the same assignments as students in the undergrad section. However, in order to make assignments for the grad section appropriate for a graduate-level course, they will contain additional/alternative requirements that will make them more challenging. In general, the graduate-level assignments will involve a much greater degree of self learning, and their requirements will involve components and techniques that are not covered in depth during lectures.

Grading Demos for Programming Assignments

In this course, programming assignments will be graded by giving a live demonstration of your work to a TA. Each grading demo will be about 10 minutes and will involve compiling and/or running your submitted code for the TA to show them how it works. You will also walk through your source code to explain to the TA how key pieces of functionality are implemented. At the end of the demo, your TA will assign you a grade for the assignment based on a grading rubric.

All grading demos this term will be in person by default. However, the TAs will be able to perform remote grading demos via Zoom by request only, on an as-needed basis. If you need to request a remote grading demo, please contact the TA at least 24 hours in advance.

It is your responsibility to sign up for a grading demo for each assignment. Links to sign up for grading demos will be posted on the “TAs” page of the course website.

Importantly, grading demos are the only way to have your assignments graded in this course. Grading demos must be completed by the demo deadline listed for the corresponding assignment. If you fail to complete a grading demo for an assignment before the listed deadline, you will receive a grade of 0 for that assignment. In addition, if you fail to show up for a grading demo appointment for which you signed up, you may, at the TA’s discretion, receive a 10% penalty on the assignment.

Other Course Policies

  • Late work. Programming assignments submitted after the due date are not accepted without an extension explicitly granted in writing from the instructor. Please communicate with me before the assignment deadline if you need an extension.
  • Contesting grades. If you have a problem with an assignment grade, you must contact your TA via email within one week of receiving your grade. After one week, you may not dispute an assignment grade.

Course Communication

In this course, we will use Ed Discussion as our main Q&A platform for communication. I'd like to keep all Q&A in one place for this course, so it's easy for everyone to find and access, so please plan on using Ed instead of another platform that not everyone knows about. You should be automatically enrolled in our Ed forum, and you can find a link to it both on the course website and in Canvas.

Please note that, while you are free to send me (Hess) regular email, I typically check my email only once a day (or less), so please be patient in looking for my response to your email. It may be helpful to set your expectations by imagining that your email and my response are both being delivered via postal mail. 🐌📬

Importantly, do not send me an email if you need a timely response to something, since I may not see your email for a while. Instead, speak to me in person, either after lecture or in office hours, or slip a brief note (with contact info!) under my office door.

Classroom Community

In this course, we will strive to create an affirming climate for all students, including underrepresented and marginalized individuals and groups. We welcome differences including (but not limited to) age, color, ethnicity, national origin, gender, physical or mental ability, religion, socioeconomic background, veteran status, sexual orientation, and parent status. For more about the community we seek to establish in this course, please see this page:

http://web.engr.oregonstate.edu/~hessro/teaching/community

Expectations for Student Conduct

In this course, you are encouraged to collaborate with your fellow classmates to discuss concepts and high-level approaches to programming assignments. However, you are expected to do your own programming work and may not work with other students to write code for programming assignments. You may never copy code written by another person, whether that person is a student in the course or not, though using small code snippets (e.g. from Stack Overflow) is generally OK, as long as you cite the source of the snippet (e.g. by including a link in a code comment).

At the instructor’s discretion, any student whose work is deemed to be too similar to another person’s work will receive a zero for the assignment in question, and the offense will be reported as academic dishonesty to the Office of Student Conduct. In the case of shared work, both the student copying the work and the student sharing the work will both receive a zero and be reported for academic dishonesty.

A second violation of these rules will result in the student receiving an F for the course and a second report of academic dishonesty to the Office of Student Conduct.

See this page for more details on OSU’s Student Conduct Code: https://beav.es/codeofconduct.

Reach Out for Success

University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it’s important to reach out. Consider discussing the situation with an instructor or academic advisor. Learn about resources that assist with wellness and academic success at oregonstate.edu/ReachOut. If you are in immediate crisis, please contact the Crisis Text Line by texting OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255).

Statement Regarding Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Religious Holidays

Oregon State University strives to respect all religious practices. If you have religious holidays that are in conflict with any of the requirements of this class, please see the instructor immediately to discuss alternative arrangements.

Student Bill of Rights

OSU has twelve established student rights. They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus: https://asosu.oregonstate.edu/advocacy/rights.

Popular repositories Loading

  1. .github .github Public

Repositories

Showing 1 of 1 repositories
  • .github Public
    CS-493-nilsstreedain/.github’s past year of commit activity
    0 0 0 0 Updated Apr 17, 2024

Top languages

Loading…

Most used topics

Loading…