CS569 Selected Topics in Software Engineering:
Mobile and Cloud Software Development

There's nothing hotter in software engineering right now than mobile and cloud development. Want a job as a professional software engineer after graduation? Take this course.

Course Overview

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

We will meet MWF 1100-1150 4/2/12-6/1/12 STAG 208. The only exam will be in-class, so there will be no exam after 6/1/2012.

You are strongly encouraged but not required to buy these textbooks:

If you have questions, contact the instructor: Chris Scaffidi, cscaffid@eecs.oregonstate.edu, who will hold office hours in KEC 3047, tentatively 12-1 Wednesdays. We probably will not be assigned a teaching assistant.

Schedule

The following schedule is TENTATIVE. It might be revised slightly based on what problems we encounter.

Grading

Grades will be equally weighted among How-To, Project, and Exam.

Grading scheme

A: >= 92 %, A-: 90-91, B+: 87-89, B: 82-86, B-: 80-81, C+: 77-79, C: 72-76, C-: 70-71, D+: 67-69, D: 62-66, D-: 60-61, F: <= 59

How-To

The How-To is an opportunity for you to work in teams to learn about 1 cloud platform and 1 mobile platform of your choice.

  1. Week 1: Form a team of 2-4 students
  2. Week 2: Select and configure a cloud platform to learn about (other than Google App Engine). Examples:
    • Windows Azure
    • Amazon EC2
    • HP Cloud Services
    • Rackspace
    • SalesForce
    • Oracle Public Cloud
  3. Week 3: Select and configure a mobile platform to learn about (other than Appcelerator Titanium). Examples:
    • Google Web Toolkit
    • jQTouch
    • PhoneGap
    • Adobe Air
    • Windows mobile SDK
    • Rhodes
  4. Week 4: Create a web page that explains How To use your chosen platforms to...
    • Cloud Part 1A: Specify the steps required to install and configure the platform
    • Cloud Part 1B: Specify the steps required to read data from the browser and store the data away
    • Cloud Part 1C: Specify the steps required to retrieve data from its storage location and send to the browser
    • Mobile Part 2A: Specify the steps required to install and configure the platform
    • Mobile Part 2B: Specify the steps required to retrieve an XML document from a remote server
    • Mobile Part 2C: Specify the steps required to display some text from some XML elements to the user
    • Part 3: Summarize which Parts above were created by each teammate.
  5. Week 5: In class presentation, demonstrate your How To. Just walk through your How To and show the steps. No special PowerPoint or anything like that is needed. Just walk through your How To and demonstrate it.

The How To will be graded based on whether your team's web pages and presentation clearly communicate the 7 Parts above. All team members will generally receive the same grade, so check each other's work. I might also deduct some extra points from a person's score if he or she does not contribute well to the team.

Click here for team photos

Project

You will work individually on one application of your choice. You also get to choose the cloud and mobile platforms. You can use any platform covered by any How To, or Google App Engine or Appcelerator Titanium. It's totally up to you.

At the start of Week 10, you will turn in (1) your code, (2) screenshots or photographs showing your application in action, and (3) evidence that your application can scale to handle hundreds of users reliably. This evidence will generally consist of some automated test code, and test results, to demonstrate your system works well when it's hit by hundreds of simulated users.

During Week 10, you will give an in-class presentation where your classmates will get to try out your application during class. You will get to walk the students through your application; no special PowerPoint is required.

The Project will be graded based on (1) how convincing it is that your application can handle hundreds of users, and (2) how convincing it is that other people (i.e., students) can use your application.

Exam

The Final Exam will be an in-class exam during Week 8. It will probably be multiple choice and short-answer questions. It will test how well you have mastered the objectives listed in the Course Overview above. The exam will cover all my lectures. I anticipate that most of you will find the exam to be really easy, if you attend all of the lectures.

Extra Credit

The material above, especially the Project, is intended to be very fun and exploratory for you. Even though it will be lots of work, I hope you enjoy it.

However, it is expected that you will encounter some problems during the term. This is a graduate course, after all. For example, you might not be able to figure something out in your How To, or you might forget something on the Exam, or your application might crash during the Project demonstration. In these cases, you will lose points.

To make it easy for you to still get a good grade, even with these problems, I will offer extra credit opportunities during the term. For example, I might offer extra credit as a "bounty" to students who can find a way to improve the performance of my demo applications. I will also be offering extra credit to students who want to give short presentations during Weeks 8-9 about cool APIs that you have found. This extra credit will be added to your final grade.

All extra credit opportunities will be announced in class and might not be posted in the online PowerPoint slides. So don't skip class, and do stay tuned for more information.