Web Development

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

Syllabus

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, agile software techniques and best practices, debugging techniques, and the basics of application-level security.  

(Note: Students without any experience with relational databases may be asked to join an online, two-hour database orientation session led by the professor)

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

 

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.13 (High Sierra); Windows 10 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.

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

Monday 5:30-8:30 pm

Location

Young 302