Skip to content

Latest commit

 

History

History
94 lines (61 loc) · 4.16 KB

syllabus.md

File metadata and controls

94 lines (61 loc) · 4.16 KB

Syllabus

The curriculum for Fundamentals of Web Development is broken in to 4 themed sprints:

Each sprint is 2 weeks long.

Each sprint, think about picking one of the example projects and working on it to feature completion.

Throughout the entire workshop, attempt to complete as many exercises as possible. Remember to request feedback code as frequently as possible. Make small frequent commits and ask for regular feedback. If someone hasn't responded to your code within 24 hours, make a specific inquiry.

Learning Goals

  1. Understand and use basic Ruby
  2. Understand and implement GET, POST, PUT, DELETE in client server round trip process.
  3. Understand how to read error messages.
  4. Understand how to find solutions to problems with documentation.
  5. Understand how to implement an object that has persistence.
  6. Understand how to build layouts that use properly formed HTML and CSS.
  7. Understand how to make API calls and use the return data in an application (gem and manual methods)
  8. Understand how to create a program for local use.
  9. Understand how to expose a program for use on the internet.
  10. Understand basic web programming with Ruby tools, Ruby, git, Heroku tools, GitHub, Google Chrome and front end debugging tools.

Sprint 1 - Programming Fundamentals

Go to Sprint 1 home

Students will get their hands dirty writing Ruby applications that interact with files, websites, and third-party APIs. Most projects will involve printing out "interesting information" in multiple formats, e.g., text, HTML, CSV, and/or JSON.

The high-level goal is to get students comfortable with the idea of fetching raw data, processing it, and outputting it in a new format. We want students asking questions like:

  • Where does the data I want live?
  • How do I get that data?
  • How is that data encoded?
  • How do I decode and process that data in Ruby?
  • What kind of value does this procedure return?
  • What is an environment in the context of programming?

Sprint 2 - First Web Applications

Go to Sprint 2 home

Students will dive into basic database-backed web applications using Sinatra. This sprint will emphasize wireframes, static mockups, and data modeling.

The high-level goal is to get students comfortable with what it means to write, deploy, and debug a web application. We want students asking questions like:

  • How do computers communicate with each other?
  • How will a user interact with this software?
  • When does this code need to run?
  • What is the shape of the data I am working with?
  • Where will I store the data to be managed?
  • How can I inspect the state of this program?

Sprint 3 - Core Patterns in Web Development

Go to Sprint 3 home

This sprint will cover several "core patterns" in web development.

Students will have the choice of defining their own project to work on, if they want.

We want students asking questions like:

  • What is the desired user experience for my application?
  • How will my application interface with other applications?
  • Why does performance matter?
  • What is an appropriate design pattern to apply in this context?
  • Where in the codebase should this logic reside?
  • What is the difference in execution context between client and server?

Sprint 4 - Capstone Project

Go to Sprint 4 home

Students have the option of defining their own project, continuing to work on their project from Sprint 3, or pick up a new project work on.

This is an open-ended sprint. It is a time for students to define what they want to focus on and hone those skills with guidance and feedback.