Course Syllabus
NOTE: Some links in this syllabus page may only be accessible to currently enrolled students.
A Word From the Course Designer
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. For example, you will use a lot of documentation from an actual web API provider to learn how to interact with their specific web API. The course will give you the big picture concepts, but you will be spending at least as much time, if not more, on sites maintained by the providers of the actual APIs.
The same will generally be true when it comes to creating your own web APIs. 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.
If you are looking for a course that will teach you the specifics of the most current cloud technologies, this is not that course. We will use current cloud technologies, but you will be learning how to use them from the developers of those technologies. The instructor and TAs of the course will be there to support you and help you as you go through this process. 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. Whereas the first assignments were structured in terms of the contents of the database the final project will be more open ended. There will be a set of technical requirements that need to be met at a minimum but you will have a great deal of flexibility to draft the requirements for the contents and purpose of the API.
Review
This should give you a good idea of what this course will look like. To reiterate, if you are expecting a course that will lead you step by step using a particular cloud technology, you will likely be frustrated with the balance of content and the course structure. You can expect that you will get help when you are unable to figure out how to find/how to interpret 1st party documentation, but it will still be your responsibility to go out and read that documentation and do their tutorials.
You will still learn a lot, you will learn how to go through that process, but in addition you will learn some bigger picture things that the course teaches directly, like REST or some security topics. Just be aware that these are not the big technical challenges in the class.
Course Instructor Introduction
Eric Ianni, Instructor
- Email: iannie@oregonstate.edu
- Please always use your OSU email to contact me. I will not respond to Canvas Mail.
- You must include the tag "[CS 493]" in your email subject to get the quickest response from me. You should expect a response to emails within 48 hours. Emails sent over the weekend sometimes take longer to respond to.
- Please post all course-related questions on the Piazza discussion board so the whole class may benefit from our conversation. For grading questions, please post a private message on Piazza to the "instructors"
Course Syllabus
Download the syllabus here: CS 493-400 Syllabus.pdf
Topics by Week
Here is the above chart in PDF form: weekly_schedule.pdf
Grade Weighting
- Assignments - 60%
- Final Project - 35%
- Quizzes - 5%
Grading Policy
Grade letter | Percentage floor |
---|---|
A | 93 |
A- | 90 |
B+ | 87 |
B | 83 |
B- | 80 |
C+ | 77 |
C | 73 |
C- | 70 |
D+ | 67 |
D | 63 |
D- | 60 |
F | 0 |
Syllabus Quiz
Please don't forget to take the syllabus quiz so you can continue onto the learning modules: Syllabus Quiz
Communication Policy
Your first stop for almost all questions should be Piazza. You can access Piazza by following the link on the left or using this Link. This will allow your peers to benefit from your questions and they may even be able to provide feedback or help faster than the instructor or TAs.
If you are asking about something that is personal please either use a private post to the "instructors" on Piazza or email the instructor directly.
Please only email me with personal matters and only from your OSU email. Please add [CS 493] to the subject line or your message risks being missed.
This class also has an official OSU Slack which is found here: class-cs493-400-sp19.slack.com. You have been automatically enrolled in the workspace. Please see the Start Here - OSU Slack for more details about using Slack.
Please allow 48 hours for responses on Piazza and email. Slack messages are likely to be missed if the discussion gets involved so your best bet is Piazza as it is easy for the TAs and myself to see if something needs a response.
For more information please see the Syllabus PDF and the link below.
Start Here - Instructor Information & Communication Policy
Contact Info
Eric Ianni, Instructor
- Email: iannie@oregonstate.edu
- Please always use your OSU email to contact me. I will not respond to Canvas Mail.
- When you send me an email, you must include the tag "[CS 493]" in your email subject.
- Office hours: by appointment
TA Contact Info
Doshna Reddy
- Email: ummaredd@oregonstate.edu
-
Office Hours:
- Wednesday 11:30 AM - 12:30 PM Pacific
- Thursday 3:30 - 4:30 PM Pacific
- Meeting URL: https://oregonstate.webex.com/join/ummareddoregonstate.edu
Anand Koshy
- Email: koshya@oregonstate.edu
-
Office Hours:
- Friday 4:00 - 5:00 PM Pacific
- Meeting URL: https://oregonstate.webex.com/meet/koshyaoregonstate.edu
Tools
PostmanSetting this one up is pretty straight forward. Go to https://www.getpostman.com/, download Postman for your OS and you are good to go.
Google App Engine for Node.jsThis changes a bit from term to term. So you can head over to the Google Node.js 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
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 |
---|---|---|