Course Syllabus

NOTE: Some links in this syllabus page may only be accessible to currently enrolled students.

Course Instructor Video

Hi everyone! My name is Nauman Chaudhry, and I am your instructor this term for CS 493  Cloud Application Development.

Course Introduction

This course focuses on cloud API development. Those represent the two major components of the class: cloud based computing and API development. Cloud computing is basically computing that is done on distributed computers all over the world. Web API development involved creating applications that internet connected devices can interact with to accomplish certain tasks. The combination will mean that we are creating applications on cloud based computers which we can interact with over the internet.

Major Class Components

The early portion of the class will primarily focus on individual assignments which take one or two weeks. The emphasis will be on using the tools, technologies and standards to interact with and make cloud hosted web APIs.

Much of this content will come from 1st party sources. The course will give you some big picture guidance into web API development, but the actual technical documentation will come from the providers of the cloud hosting services you are using.

Expectations

This might be somewhat different than the typical class you have taken where most of the content was contained within the course itself. Generally this class is taken by students who will be graduating very shortly and moving out into professional programming positions.

The expectation is that you treat this similar to how you will be expected to work in your first job. In other words the expectation is that you use external resources to answer your questions about programming and how to do the technical portions of the development.

The course will then provide the sort of support and guidance you would expect to get from a good company. The instructor and TAs will serve as mentors whom you can ask questions of when you get stuck and the course will provide the big picture guidance on what sort of software you will be developing and what techniques you will be using to develop it as well as training on what it looks like to implement some basic solutions using those techniques. But ultimately, developers like Google or Amazon are going to have the most complete and up to date guides on how to use their tools. A course like this would always be versions behind and simply rewording what they said.

By the end of the course you should feel confident that you could then go on and learn the basics of other technologies.

Conceptual Components

With all of that said, there are some major conceptual topics that this course will teach. These are larger, typically programming language independent, processes or architectures which are re-implemented time and time again in web APIs.

REST APIs

The biggest of these concepts is the REST API architecture. This is a set of principles that makes it easy for both humans and machines to parse and understand the structure and contents of an API. It is generally seen in HTTP based APIs. So when you are working with Tweets from Twitter or Documents from Google Docs there is a good chance that you are doing so over HTTP in a way that is consistent with the major REST principles. They have been around for several years and don’t appear to be going anywhere.

Security

Security is a huge topic in the cloud. This course cannot give it any sort of thorough treatment. However, it will look at some of the bigger aspects of security and we will look at ways that we can do things like securely allow only particular users to view or access content using current web standards. Again these are generally independent of programming language and tend to change a good bit less than the actual cloud platforms they are based on so they are good topics to cover in the actual class material.

The Project

Finally you will have a project where you can put all of the things you learned together.

Course Syllabus

A syllabus document is available as a pdf file.

Course Schedule

A weekly course schedule is available as a pdf file.

Syllabus Quiz

Don't forget to take the syllabus quiz so you can continue onto the learning modules: Syllabus Quiz

Instructional Staff

Communication Policy

Canvas Notifications

Make sure to turn on Canvas Notifications for Announcements and Grading Comments. The instructional team will be using Canvas Announcements extensively to communicate with you. It is your responsibility to keep up to date with these announcements and they are considered part of the required learning material.

Ed Discussion Board for Questions about Course Content & Assignments

Ask questions about assignments and course content, on the Ed discussion board, as opposed to direct messages to the instructors or the TAs. You will also get an answer to your question far faster by posting it on the Ed discussion board than by emailing or sending a private message, as there are more than a hundred people looking at those discussion boards. We will strive that questions asked on Ed by the end of one business day are answered by the end of the next business day. The instructor is not available over the weekend or over university holidays.

Microsoft Teams for Office Hours & Real-Time Communication

We will conduct office hours using Microsoft Teams using the Team created for this course. The times for office hours are listed on the course homepage. You can also ask questions of other students on Teams. However, if the instructors or the TAs are not on Teams when the question is asked, don't count on us reading the scroll back to find a question you asked earlier: your primary method for getting help is still Ed.

Canvas for Grading Questions & Regrading Requests

We will attempt to grade the assignments within 7 days of the late due date. 

A comment on your submission in Canvas will tell you who has graded your assignment. You can request a regrade on an assignment by replying in the Grades > Assignment > Comment box within 4 business days of the grade being released. Include notes about which points you think were taken off incorrectly, and why you think your assignment does in fact meet the requirements for those items.

Students should turn on Canvas -> Notifications -> Notification Settings -> Submission Comments to be notified of comments on their submissions.

When requesting a regrade, the grade will NEVER be lower than when you made the request, unless we discover a case of academic dishonesty. We will not lower a grade for finding something else wrong. That said, please note that while reviewing your request if we discover we made a mistake in taking points but also made a mistake in not deducting points, it is possible your grade will remain the same.

Email the Instructor for Assignment Extensions, Escalated Grading Questions, General Course Information & Personal Questions

For assignment extensions, escalated grading questions, other general course information or personal questions, email the instructor at his OSU email address (don’t send an email via Canvas inbox). You must send the email from your OSU account. Emails sent from non-OSU accounts will be ignored due to possible FERPA issues. Start the subject line of your email with CS 493. The instructor will strive that an email received by the end of one business day is answered within the next 2 business days. The instructor is not available over the weekend or over university holidays.

Tools

Cloud Platform

We will use Google Cloud Platform (GCP) in the course. We recommend waiting until the first week of the term to set up your GCP account as we will provide each student with a free GCP coupon worth $50 credit for use in the course.

Programming Language

For implementing the assignments, you will use Python 3 with Flask. The Instructor, at their discretion, may allow use of additional languages/platforms beyond Python 3.

Postman

Setting this one up is pretty straight forward. Go to the Postman website, download Postman for your OS and you are good to go.   

Google App Engine for Python 3

This changes a bit from term to term. So you can head over to the Google Python 3 Standard Environment documentation and check it out, but you may want to wait for the first week of class to make sure you don't get the wrong stuff setup.

 

Course Summary:

Date Details Due