MPCS 52553 Web Development (Summer 2015)

Section 1
Instructor(s) Cohen, Jeffrey (jeffcohen)
Meeting Times
Fulfills Elective Specialization - Application Development (APP-1)


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

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.

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.

Course Prerequisites

Core programming requirement

Other Prerequisites

Overlapping Classes

This class is scheduled at a time that does not conflict with any other classes this quarter.