Web Development

Title Web Development (52553)
Quarter Spring 2016
Instructor Jeffrey Cohen (jeffcohen@cs.uchicago.edu)
Website

Syllabus

IMPORTANT SCHEDULING NOTE:
The first class will be postponed by one week, and will be held on Friday, April 8.
A required makeup class session will be held on Saturday, April 16, from 1:30pm - 4:30pm.
We apologize for any inconvenience.

Course Description

This course provides students with an introduction to modern web development, with an emphasis on the pragmatic skills needed to build live, functioning web applications.  Students will learn fundamental domain modeling skills, HTML and CSS frameworks, agile software techniques and best practices, Javascript and AJAX, and both server-side and client-side debugging techniques.

We will use the Ruby language and the Rails framework to immerse students into the challenge of building a live, database-backed web application deployed at a public web address.

Specifically, students will learn how to:

  1. Build a live website or web application and deploy it to the public internet
  2. Use the Ruby on Rails framework to rapidly build a web application
  3. Write software using the Ruby programming language
  4. Use a relational database to provide content for dynamic websites
  5. Follow industry best-practices of modern web software development
  6. Troubleshoot and resolve the most common problems with web applications

Course Contents

  • Fundamentals of HTML, CSS, and Javascript for front-end programming
  • Essentials of the Ruby programming language
  • Essentials of the Rails framework
  • Front-end frameworks such as jQuery and Bootstrap
  • MVC architecture principles
  • Domain modeling and its role in web application development
  • Agile and "extreme programming" practices
  • Secure user authentication and authorization

Coursework
Students will be expected to complete:

  • Weekly homework (likely for the first four weeks) (20%)
  • Midterm around week 6 (30%)
  • Final project due by the end of the course (50%)

Projects are chosen from a provided list of "project templates."  Students can propose a personal project subject to approval and equivalence with the standard project requirements.

Course Textbooks

  • None required

Computer Requirements

Students will need a laptop that can run the Ruby on Rails framework, specifically: a Mac running OS X 10.9 (Mavericks) or newer; Windows 7 or newer; or a recent Linux installation.  Students will be provided with specific instructions on how to install the Ruby on Rails before the quarter begins.

Prerequisites (Courses)

Core Programming

Prerequisites (Other)

Students must be fluent in at least one programming language, preferably an object-oriented language.

Satisfies

Elective
Software Engineering Specialization

Time

Fridays 5:30 - 8:30

Location

Young 302