About this course

The goal of this course is to provide an opportunity to learn the technical and critical reasoning skills need to rapidly and iteratively develop innovative full-stack mobile and web software applications.

In particular, this course will focus on supporting

Format

The course is learn by doing. There will be three projects:

Each project will have two in-class demonstrations: one after the first week, to show an initial slice of testable value, and one at the end of the project, to demonstrate the final state of the project.

The course class meetings will have some lectures, but be primarily focused on in-class activities, setting, tracking, and analyzing team and product development goals.

Each team will have face-to-face agile coaching sessions with the instructor every other week.

There will be three CATME reviews, where team members assess each other's contributions to the team's development.

Technologies

Teams will maintain code repositories on Github under an organization created for the class, to support transparent review of every team member's contributions to the code base.

Applications will be developed in HTML5, JavaScript, React, and React Native.

Prerequisites

Substantial programming experience with several languages and some web application technology is presumed.

Computer science experience, at least through data structures, e.g., EECS 214, is presumed.

Grading

Grading is based entirely on participation and contribution to the project and team development, as evidenced by

Themes

Rapid iterative web and mobile app prototype development:

Lean agile development:

Readings

Online tutorials for technical frameworks, to be curated and links, here and on Piazza

Recommended book: The Agile Samurai

Plagiarism

For the most part, sharing of code is expected and encouraged. In particular, in the team applications, you should feel free to use

Any individual content that is requested, such retrospective reflections, should be solely your own, and the standard rules regarding plagiarism apply.

Posts and Emails

For all questions about the course, please post to Piazza, so that everyone in the class is in on the discussion. If I get a good question by email, I will ask you to post it to Piazza instead.

For all items that affect the team, including absences and such, email me. All such emails must

I will return any email that does not do this, for revision, no matter how trivial the email is, because

The one and only exception to the "CC the team" rule is some inter-personal issue. These are very rare.

Faculty: Chris Riesbeck
Time: Monday, Wednesday, Friday: 10am - 10:50am
Location: Tech M152

Contents

Important Links