6.170 | Spring 2013 | Undergraduate

Software Studio

Lecture Notes

Lecture notes for each topic discussed in class are provided in the following table. The FeedAGeek slide decks for Week 9 are intended to illustrate progressive improvements upon a sample pitch. There are no notes for Weeks 10–13, as time spent in class was devoted to developing the final projects.

Week 1
Introduction & Web Basics

Intro & Logistics (PDF)

Precedents of the Web (PDF)

Structure of the Web (PDF)

Web Servers & Web Apps (PDF)

The Domain Name System (PDF)

Document Object Model (PDF)

HTTP: Hypertext Transfer Protocol (PDF)

Week 2
Routing & Model-View-Controller Design

Separation of Concerns (PDF)

Modularity & Dependences (PDF)

An Overview of Rails (PDF - 1.1MB)

Model-View-Controller (PDF)

Dependency & REST

Web Frameworks (PDF)


REST in Rails (PDF)

The Web as a Platform for Distributed Computing (PDF)

Example Rails Application (PDF)

Week 3
Introduction to Data & Object Modeling

Object Models: Intro & Rationale (PDF)

Object Models: Math Structures (PDF)

Object Models: Classification (PDF)

Object Models: Relationships (PDF)

Object Models: Semantics (PDF)

Object Models: Dynamics (PDF)

Relational Data Model

Rails Models: Classes & Tables (PDF)

Object Models: Transformations (PDF)

Implementing Generalizations (PDF)

Week 4
Design Concepts

Design Concepts: Intro (PDF - 1.2MB)

Design Concepts: Identifying Concepts (PDF)

Design Concepts: Design Moves (PDF)

Design Concepts: Idioms (PDF)

Design & Code Reviews for Project 1

Design Review: Project 1 (PDF - 2.2MB)

Code Review: Project 1 (PDF)

Week 5
Intro to JavaScript

JavaScript: Intro (PDF)

JavaScript: Values & Types (PDF)

JavaScript: Variables (PDF)


JavaScript: Functions, Scope & Closures (PDF - 1.1MB)

JavaScript: Closure Examples (PDF)

JavaScript: Functionals (PDF)

JavaScript: Objects, Literals & Constructors (PDF)

JavaScript: Abstract Types (PDF)

JavaScript: Prototypes (PDF)

JavaScript: This & New Nasty Effects (PDF)

Week 6

DOM: Intro (PDF)

DOM: Programming Idioms (PDF)

DOM: Unobtrusive JavaScript (PDF)

DOM: Events & Listeners (PDF)

DOM: Star Rating Widget Example (PDF)

Events & Ajax

Ajax: Introduction (PDF)

Ajax: Examples (PDF)

Ajax: Engage App (PDF)

Week 7
Design Review for Project 2 Design Review: Project 2 (PDF - 2.7MB)
Web Security

Security: Overview (PDF)

Security: Injection Attacks (PDF)

Security: Cross Site Attacks (PDF)

Week 8
Software Development Methods

Software Development Processes (PDF)

Thoughts on the Software Process (PDF - 1.4MB)

Week 9
Designing Dependable Software

Cross Site Request Forgery, Revisited (PDF)

Modeling Basic HTTP (PDF)

Analyzing Origins (PDF)

Finishing the Origin Story (PDF)

Presenting Your Ideas

Final Project Overview (PDF)

Perils & Pleasures of PPT (PDF)

FeedAGeek: Sample Pitch v1 (PDF)

FeedAGeek: Sample Pitch v1a (PDF)

FeedAGeek: Sample Pitch v2 (PDF - 12.0MB)

Course Info

As Taught In
Spring 2013