Organization

Organization and deliverables are described below.

Organization

The course will be organized into two major modules followed by a self-directed project.

  • Module 1: Basics of Building Online Micro-services In this module, students will learn the basics of working with Ruby and Heroku to build simple web services. Over three weeks they’ll be introduced to setting up their webserver, creating an API and returning responses in data formats like JSON, storing data in SQLite, adding and extending functionality through gems, accessing third-party APIs, creating a basic chat interaction through SMS and deploying to a live server.

  • Module 2: Platforms for Micro-services: Extending the ideas introduced in the first module, we’ll examine at three platform that invite developers to build their own products and services around. Namely, we’ll build chat UIs and interactive bots for Slack, Twitter and Amazon Alexa.

  • Module 3: Applied Exploration For the remainder of the semester each student apply what they’ve learned and create a simple web service in the form of an interactive chat UI or online bot.

Learning Objectives

This is an interdiscipinary course designed for those new to programming for the web. In particular it focuses on building your personal skill with software programming as well as approaches to minimal viable web services and zero-UI design principles. It’s about building basic skills in web programming, developing your familiarity with the space and developing ideas that interest you. In this course, you will:

  • Become familiar with the concepts surrounding zero-UI web services ;
  • Learn about past projects and real-world examples that use these design approachs in order to understand web services;
  • Focus on developing individual software developing skills and familiarity with software development through the Ruby language and Sinatra framework;
  • Learn to design, develop and deploy simple lightweight online product and services prototypes;
  • Learn to integrate with third party services and products to quickly prototype new interactive services;
  • Understand these techniques by applying them in creative project

By the end of the course, students should be able to:

  • Have applied experience of the key concepts for designing, developing and deploying lightweight online products and services;
  • Reflect on the role of zero-UI and recognize opportunities for online products in this space;
  • Enumerate relevant prior works that relate to personal projects;
  • Describe relevant design factors & considerations in working with minimal/zero-UI products;
  • Be able to indepdently write and debug their own code in Ruby;
  • Be able to work indepdendently to prepare an interactive prototype of an online product or service.

Deliverables

  • Skills Projects - Each week students will complete a short set of tasks that put into practice content from instructor tutorials. These assignments will require them to scaffold out parts of an online product or service relating to the material introduced in class that week.

  • Discoveries - Students will be asked to share a series of discoveries (code samples, articles, libraries, etc) that will benefit the group. Students will prepare at least 5 discoveries over the course of the semester.

  • Guides - Students will be asked to document and share one resource that will benefit the group. This will take the form of a tutorial or guide written by the student themselves to introduce a topic of relevant to the group. Each student will share at least one guide over the course of the semester.

  • Self Directed Project - Students will develop a working prototype or intervention based on ideas introduced in the course. The prototype should be accompanied by clear documentation; to include technical implementation (code, design files), need, strategy and use case (explanation, rationale for solution).

  • Oral Presentation and Demonstration: - Outcomes of the self directed project will be presented and demonstrated to invited guests in lieu of a final exam.