MPCS 51238 Design, Build, Ship (Summer 2025)

Section 1
Instructor(s) Marques, Andre (andremar)
Location Online
Meeting Times Tuesday 5:30pm - 8:30pm
Fulfills Elective Specialization - Application Development (APP-2)

Syllabus

Overview

Turn visionaries into builders, dreamers into doers—transform ideas into launched products and services with real users in 10 weeks. 

This hands-on course focuses on iterative design and rapid software development, using AI-assisted tools to accelerate the entire process. Students will work individually or in small teams to build, launch, and acquire users for a single project they will work on across the quarter.

Projects can be civic, entrepreneurial, creative, educational, experimental, or social impact-oriented—all ideas are welcome. Students are not required to pursue revenue-generating concepts (but can); the primary focus is on creativity, learning, and meaningful engagement with real users.


Learning Objectives

By the end of this course, students will be able to:


Apply Startup Design & Software Engineering Best Practices

  • Embrace creativity by boldly experimenting, learning through productive failure, taking informed risks, and recognizing that imagination—not technology—is your primary limitation.
  • Launch early with imperfect solutions to speed up learning.
  • “Do things that don’t scale.” - Paul Graham

Design & Prototype User Interfaces

  • Follow the design process: explore ideas, learn about user needs, prioritize solutions, converge on actionable outcomes.
  • Apply standard user interface design and accessibility principles for web and mobile apps.
  • Use component libraries to rapidly design prototypes that can transition easily to code.
  • Create designs and interactive prototypes in Figma.

Develop & Ship

  • Build full-stack applications with an emphasis on shipping features quickly, while maintaining quality.
  • Learn to integrate systems: authentication, databases, and external APIs via modern frameworks.
  • Develop responsive and accessible user interfaces.
  • Choose technologies that optimize for development speed.

Use AI to Accelerate Design, Development, & User Acquisition

  • Generate and iterate on UI using LLMs trained on component libraries.
  • Accelerate development with LLM assistance to rapidly implement features and debug issues.
  • Acquire users with LLM-assisted strategies:
    • B2C: Identify community channels and craft engaging content
    • B2B: Design personalized outreach campaigns and create compelling demo materials

Course Structure

Weekly format:

Technical + Product Workshop & Discussion

Introduce new technologies for software development, best practices for product scope management, AI usage, and user acquisition strategies.

Hands-On Development Time & One-on-One Support
Students build, iterate, and troubleshoot applications with direct guidance from instructors and TAs. Tasks are prioritized, blockers are addressed, and clear next steps are established for each project.

Progress Share-Outs

Each student or team shares updates, reflects on user feedback, and discusses next steps. Constructive peer feedback is encouraged.

Course Schedule

Iteration 1

📐 Week 1: Prototyping (Design)

  • Introduction to Figma, web and mobile app design principles.
  • Draft vision for week 10: Product goals, tech stack, usage goals.
  • Introduce scope management principles.
  • Begin prototype of smallest launchable solution.
  • User acquisition plan (B2B outreach + scheduling demos, B2C creating + publishing engaging content)
    • 10%-15% of each week dedicated to this

🏗️ Week 2 - 4: Implement Core Features (Build)

  • Define implementation roadmap with a focus on minimal, high-impact features.
  • Introduction to AI-based software development tools.
  • Overview of recommended web and mobile platforms.
  • User acquisition strategies and case studies.
  • Continue reaching out to users.

📦 Week 5: Finish Stable Version (Ship)

  • Start testing an initial project prototype with users; run short usability interviews.
  • Evaluate the product using defined rubrics: code quality, accessibility checks, user feedback rating.
  • Prioritize backlog of features for v2; continue iteration.
  • Reflect on AI usage.

Iterations 2 - 6

Week 6 - 9: Weekly Sprints (Design, Build, Ship)

Each week, each student or team will prioritize next steps for weekly deployments.

  • 📐 Design: New features prototyped weekly and critiqued during structured design reviews.
  • 🏗️ BuildNew features implemented weekly, with scope check-ins.
  • 📦 Ship: Weekly deployment encouraged to gather rapid feedback.
  • User outreach and acquisition efforts executed and refined weekly.

Week 10:

Include baseline usage data (installs, demos, retention, referrals, feedback) comparison to vision on week 1, how feedback informed product evolution.

  • Discuss lessons learned about project scope management, AI usage, and user-centric iteration.

Prerequisites

Required

  • Experience in at least one programming language, familiarity with Git, and terminal usage.

Recommended

  • You’ve built a simple website or app, or completed a course covering basic software engineering principles.

Not Required

  • Prior design experience.
  • Entrepreneurial experience and/or ambition.
  • AI-assisted design or software development experience.


Technologies & Tools

This class is designed to support student projects regardless of tech stack and external APIs used, however the recommended stack includes:

  • Frontend: Next.js (web) or React Native (mobile)
  • UI: Tailwind CSS (web) or Nativewind (mobile)
  • Component Library: ShadCN (web)
  • Database: Supabase, Supabase Edge Functions
  • Auth: Clerk
  • Deployment: Vercel (web), iOS App Store, Google Play Store
  • External APIs:  OpenAI API, Anthropic API, etc., Project-specific APIs as needed.
  • Model Context Protocol: Integrating AI with different systems to speed up development.

These tools are recommended due to their modern APIs and low implementation overhead. Students using alternative tech stacks are encouraged to do so but should be comfortable iterating independently, with the instructor offering general support for planning and problem-solving.

AI-based design and development tools may include:

  • Cursor, v0, ChatGPT Plus, Claude, Gemini, Midjourney, and others to accelerate development and design.
  • Students will need a subscription to multiple tools for the duration of this course.

If publishing an app in an app store, students may need to pay a registration fee to Google or Apple.

Course Prerequisites

MPCS Students: Core Programming completed (MPCS 51036, or 51040, or 51042, or 51046, or 51100) or Core Programming Waiver.

Non-MPCS Students: Must have completed CMSC 14200, CAPP 30122 or MACS 30122 or MPCS Programming Placement Exam I.

Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/

Other Prerequisites

Required: Experience in at least one programming language, familiarity with Git, and terminal usage.
Recommended: You’ve built a simple website or app, or completed a course covering basic software engineering principles.
Not Required: Prior design experience; Entrepreneurial experience and/or ambition; AI-assisted design or software development experience.

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 56605-1 -- Introduction to Blockchain and Smart Contracts
  • MPCS 50103-1 -- Mathematics for Computer Science: Discrete Mathematics
  • MPCS 53001-1 -- Databases

Eligible Programs

MS in Computational Analysis in Public Policy (Year 1) MS in Computational Analysis in Public Policy (Year 2) MS in Molecular Engineering MA in Computational Social Science (Year 1) MA in Computational Social Science (Year 2) Masters Program in Computer Science Undergraduate - CS Minor Undergraduate - CS Major