Skip to content

Instantly share code, notes, and snippets.

@jcdavison
Last active August 29, 2015 14:07
Show Gist options
  • Save jcdavison/d397ed8653ebff721fa6 to your computer and use it in GitHub Desktop.
Save jcdavison/d397ed8653ebff721fa6 to your computer and use it in GitHub Desktop.
CodeUnion.io Fundamentals of Web Development Syllabus

Syllabus: Fundamentals of Web Development

Sprint 1 - Programming Fundamentals

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?

Core Concepts & Technologies

  • Data in Ruby (integers, floats, strings, arrays, hashes, et-)
  • Reading and writing files
  • File formats and encoding (text, HTML, CSV, images, et-)
  • Command line arguments and environment variables
  • Interacting with third-party APIs and websites in Ruby
  • Producing web pages (HTML/CSS/JavaScript) with Ruby

Sample Projects

  • HTML photo gallery generator
  • Text analysis and reporting (word counts, frequencies, et-)
  • Generate reports from public APIs (e.g., Sunlight Labs, data.sfgov.org, GitHub, IMDB, etc.)

Sprint 2 - First Web Applications

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.

Core Concepts & Technologies

  • Deploying web applications
  • Wireframing, interface design, and static mockups in HTML/CSS
  • The HTTP request/response cycle
  • Relational databases and persistence
  • Modeling data (1-many, many-many)
  • Cookies, sessions, and user authentication
  • File uploading and processing

Sample Projects

  • Message Board
  • Basic E-Commerce App (e.g., Craigslist, Stripe integration, etc.)
  • URL Shortener
  • Link-sharing website a la Reddit

Sprint 3 - Core Patterns in Web Development

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.

Core Concepts & Technologies

  • AJAX
  • File uploading and processing
  • Background tasks
  • Structured JavaScript
  • Sending email
  • More complex data models

Sample Projects

  • Photo Gallery
  • Polling Application
  • Front-end centric projects (e.g., games)
  • Student-Defined Projects

Sprint 4 - Capstone Project

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment