Web Development

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

Syllabus

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

  • Students experienced with object-oriented languages (C++, Java, Python, etc.): None required.
  • Students without OO experience: "Learn to Program", 2nd Ed., by Chris Pine, published by Pragmatic Bookshelf.

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; or Windows 7 or newer; or a recent Linux installation.  Students should also be familiar with a code editor such as Sublime Text, Atom, TextMate, Emacs, or Vim

Instructor will give more specific instructions on how to install the software before the quarter begins.

Prerequisites
Students must be fluent in at least one programming language.

Students fluent only in a non-OO language such as C will be required to purchase the "Learn to Program" textbook to augment class materials.

Prerequisites (Courses)

Core programming requirement

Prerequisites (Other)

Satisfies

Time

TBD

Location

TBD