MPCS 52553 Web Development (Summer 2017)

Section 1
Instructor(s) Cohen, Jeffrey (jeffcohen)
Location Young 302
Meeting Times Wednesday 5:30pm - 8:30pm
Fulfills Elective Specialization - Application Development (APP-1)


NOTE: For Summer 2017, this class will not meet during the week of July 31 - Aug 4.  A makeup date will likely be held between Aug 7 - 14, so there will likely be two class sessions that week.  Exact dates will be announced during the first class session.


Course Description

This course provides students with an introduction to server-side web application development, with an emphasis on the pragmatic skills needed to build live, functioning web applications.  Students will learn fundamental domain modeling skills, server-side HTTP development using the Ruby on Rails framework, the essentials of front-end development with HTML/CSS/Javascript, agile software techniques and best practices, debugging techniques, and the basics of application-level security.  

Specifically, students will learn how to:

    Build a live website or web application and deploy it to the public internet

    Use the Ruby on Rails framework to rapidly build a web application

    Write software using the Ruby programming language

    Use a relational database to provide content for dynamic websites

    Follow industry best-practices of modern web software development

    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

    None required


Computer Requirements

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

Course Prerequisites

Core Programming

Other Prerequisites

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

Overlapping Classes

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