To get a permission number for this course for ${year}, fill in the prior experience survey , then email me a request for a permission number. Use the Subject 392 Permission Request
Note: You must be logged into your u.northwestern.edu Gmail account to access the survey.

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 web software applications.

In particular, this course will focus on supporting

Prerequisites

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

React experience is not required, but experience with modern JavaScript is very useful. Fluency with several languages, such as Python, C, C#, Java, or PHP is recommended.

Test yourself. Are you in over your head trying to follow along and run the code in the Quick, React! introductory tutorial?

Format

The course is learn by doing in teams. Each team will design and implement three projects, in three weeks each.

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 be a mix of lectures and in-class activities. Outside the class meetings, teams will be responsible for tracking, analyzing, and developing both the product and the team.

Technologies

Teams will maintain code repositories on Github under a Github organization created for the class.

Applications will be developed using React, a platform for rapidly developing mobile web applications that run on iOS, Android, and the web.

Grading

There are two parts to your grade:

Getting Help

The best place to get help is to post questions on Campuswire.

For issues specific to you and your team, e.g., notifying me of an upcoming absence, send email, as follows:

I return for repair any emails that don't do the above. The subject line is important for me to prioritize, file, and later find the email. The CC to your team is important so that I know everyone knows, they know I know, and if I send a reply, everyone sees it.

Office Hours

My homepage has a link to my calendar. My calendar has a form that emails a request for a meeting time. I usually reply within 2 hours. I'm available from 9 until 5, unless the calendar says I'm booked. Please do not ask for a meeting in the 30 minutes before I have a class or during lunch (noon) unless it's very short, like signing something.

Themes

Rapid iterative web and mobile app prototype development:

Value-driven development:

Readings

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

Recommended books:

Plagiarism

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

Individual actitivities, such as the React and automated testing tutorials, should be solely your own, and the standard rules regarding plagiarism apply.