Course Schedule

This schedule will definitely change over the course of the semester. Please continue to check back for updates.

Topic 1: Intro to the Course

Expectations, team norms, intro to the tech stack and course structure.

Tu, Jan 13

Course intro + course arc + architecture overview

Welcome to the course!

Quizzes
Th, Jan 15

Teams + Working Agreement (Phase 1) + dev setup

Reading discusion, meeting with client, and team assignments.
Slides / Activities
Required Readings
  1. Maitre, N.L., Marra, L., Kjeldsen, W. et al. A social media-delivered intervention for motor delays: stage-Ib randomized clinical trial and implementation exploration. Pediatr Res (2025). https://doi.org/10.1038/s41390-025-04151-5. Full text available via UNCA library.
  2. Rasmusson, J. (2010). The Agile Samurai. Ch. 1: Agile in a Nutshell
  3. Rasmusson, J. (2010). The Agile Samurai. Ch. 2: Meet Your Agile Team
Assigned:
  • HW 0: Team Working Agreement + Dev Setup

Topic 2: Backend Architecture + Testing as Specification

Deepen backend architectural understanding and introduce testing as behavioral specification (contract-level). SDLC concept: turning vague needs into testable behaviors.

Tu, Jan 20

Backend deep dive: models, schemas, routes, dependencies

Review backend structure (models vs schemas vs routes), dependency injection, and how requests flow.
Slides / Activities
Quizzes
Th, Jan 22

Pytest workshop: contract-level tests (backend)

  • Testing workshop focused on contract-level API tests (not full coverage)
  • Studio: write tests for existing endpoints
  • Live critique of one test PR: clarity, naming, and what behavior is asserted
Slides / Activities
Quizzes
Assigned:
Due:
  • HW 0: Team Working Agreement + Dev Setup

Topic 3: Data Modeling + API Design + Review-as-Learning

Design and implement a new backend model (including relationship design) with tests. SDLC concept: articulating tradeoffs and constraints in PRs and reviews.

Tu, Jan 27

Class cancelled

Th, Jan 29

Domain modeling + relationship tradeoffs (whiteboard first)

Today's Agenda:
  • Team agreements
  • How is testing going? Any questions?
  • Mini-lecture on relationship design and tradeoffs
  • Activity: whiteboard the domain model before coding
  • Begin implementation plan and test plan (what behavior must be true)
Quizzes
Assigned:
  • HW 2: New Models + Module CRUD
Due:

Topic 4: Software Design Principles in Practice

Apply design principles (cohesion, coupling, DRY, data minimization) directly to the starter architecture. Use tests to refactor safely. SDLC concept: design for change.

Tu, Feb 3

HW1 Reflection + Data Modeling Studio

  • HW1 Feedback & Discussion
  • Show & Tell: Compare your implementation with your counterpart on the other team and discuss.
  • Discussion of each team's data model
Th, Feb 5

Writing Clean Code and Refactoring Safely

  • Lecture using your codebase as examples: cohesion/coupling, DRY, function/class size, and data minimization
  • Studio: refactor or extend an existing API safely (tests as guardrails)
Required Readings
  1. Martin, R. C. (2009). Clean Code. Chapters 2 (Meaningful Names), 3 (Functions), and 17 (Smells and Heuristics) Link
Quizzes
Assigned:
  • HW 3: Refactoring Exercise

Topic 5: Frontend Architecture & System Boundaries

Treat React as architecture: component responsibility, state ownership, and data flow. Connect UI to tested APIs. SDLC concept: mapping user needs to system behavior.

Tu, Feb 10

React architecture review (state ownership + boundaries)

  • React as an architectural system: pages vs components, local vs global state, and data flow
  • Activity: map one backend feature to a UI flow and identify states/edge cases
Slides / Activities
Required Readings
  1. React Team. Thinking in React. React Documentation. Link
Due:
  • HW 2: New Models + Module CRUD
Th, Feb 12

Review of Tuesday's Activity; New team assignments

Slides / Activities
Required Readings
  1. Course resource. Intro to React. Link
  2. Course resource. TypeScript & JavaScript Patterns. Link
  3. Course resource. Front-End Design with Mantine UI & Tailwind. Link
  4. Course resource. Testing with Vitest. Link
Assigned:
  • HW4: Frontend Integration PR + 1 Peer Review (Frontend Focus)
Due:
  • HW 3: Refactoring Exercise

Topic 6: Mobile - React Native and Expo + AI Coding Tools

Build mobile UI using React Native and Expo. Connect mobile app to backend API. Introduce AI coding assistants and best practices for using them in software development. SDLC concepts: platform considerations, mobile-specific patterns, and modern development tooling.

Th, Feb 19

React Native I

Intro to Expo and React Native
Slides / Activities
Required Readings
  1. Expo Documentation. Getting Started Link
Tu, Feb 24

AI Coding Tools I

Introduction to using AI coding assistants (Cursor)
Assigned:
  • HW 5: Mobile UI (for Parents & Caregivers)
Due:
  • HW 4: Frontend Integration
Th, Feb 26

AI Coding Tools II

  • Discussion: Vibe Coding readings
  • Work on mobile interface (HW5)
Required Readings
  1. Willison, S. Vibe Coding.
  2. Willison, S. Vibe Engineering.

Topic 7: UX, Prototyping, and Revisiting Assumptions

Introduce HCD and low-fidelity prototyping once technical fluency exists. Use critique to surface mismatches between user intent and current implementation.

Tu, Mar 3

Human-centered design + low-fi prototyping

What are we going to build?
Required Readings
  1. Interaction Design Foundation. Low-Fidelity Prototypes.
  2. Nielsen Norman Group. 10 Usability Heuristics. (selected)
  3. Krug, S. (2014). Don't Make Me Think. (Chapters 1, 3, and 6)
Th, Mar 5

Low-fidelity prototyping continued

Slides / Activities
Required Readings
  1. skim Frost, B. Atomic Design
Assigned:
  • HW 6: From User Journeys to Wireframes (Part 1)
Due:
  • HW 5: Mobile UI (for Parents & Caregivers)

Topic 9: Spring Break

No class

Tu, Mar 10

Spring Break - No class

Th, Mar 12

Spring Break - No class

Topic 10: From User Journeys to Figma Wireframes

Share HW6 journeys and wireframes. Begin building token-driven, component-based wireframes in Figma.

Tu, Mar 17

HW6 presentations: journeys → screens → wireframes

Short team presentations: stakeholder, 3-5 user needs, and a representative user journeys
Slides / Activities
Due:
  • HW 6: From User Journeys to Wireframes (Part 1)
Th, Mar 19

HW7 launch: tokens, components, and responsive frames in Figma

  • Walk through importing the provided design token JSON files and switching between themes
  • Live demo: build a token-driven Button component with variants (primary, secondary, ghost)
  • Introduce frames and Auto Layout for desktop and mobile screens (Dashboard, Activity Detail, Profile)
  • In-class work: teams start HW7 components and first screens based on their HW6 wireframes
Assigned:
  • HW 7: Building Maintainable Wireframes in Figma

Topic 11: Feature Development Sprint 1

Build first vertical feature. Practice daily standups, PRs, code review across teams. Reflect on collaboration challenges.

Tu, Mar 24

Feature development kickoff + daily standup protocol

  • Teams begin feature work
  • Daily standup protocol: what did you do, what will you do, blockers
  • Pair programming: backend + frontend developers work together
  • Discussion: "How do we coordinate? What's hard about shared codebase?"
Due:
  • HW 7: Building Maintainable Wireframes in Figma
Th, Mar 26

Feature work + PR workflow + code review

  • Teams continue feature work
  • Open PRs, practice code review across teams
  • Resolve merge conflicts, coordinate API changes
  • Team reflection: "What's working? What's challenging? How are we communicating?"
Tu, Mar 31

Sprint 1 continued: feature development

  • Teams continue Sprint 1 feature work
  • Daily standups
  • Pair programming and collaboration
  • Team check-in: "What progress have we made? What blockers do we have?"
Th, Apr 2

Sprint 1 continued: integration and testing

  • Teams continue feature work
  • Integration testing across components
  • Code review and PR refinement
  • Team reflection: "What's working well? What needs improvement?"

Topic 12: Feature Development Sprint 2

Continue feature development. Sprint review and retrospective. Plan next sprint.

Tu, Apr 7

Sprint 1 review + sprint 2 planning

  • Sprint 1 demos: teams show what they built
  • Sprint retrospective: what worked, what didn't, what to improve
  • Sprint 2 planning: next features, user stories, tasks
  • Reflection: "How did Sprint 1 go? What did we learn about teamwork?"
Th, Apr 9

Sprint 2 feature development kickoff

  • Teams begin Sprint 2 features
  • Continue daily standups
  • Practice cross-team coordination
  • Team reflection: "How are we improving? What's still hard?"
Tu, Apr 14

Sprint 2 continued: feature development

  • Teams continue Sprint 2 feature work
  • Daily standups
  • Integration and testing
  • Team check-in: "What progress have we made?"
Th, Apr 16

Sprint 2 continued: refinement and testing

  • Teams continue feature work
  • Code review and PR refinement
  • Integration testing
  • Team reflection: "What's working? What needs improvement?"

Topic 13: Feature Development Sprint 3

Final feature sprint. Integration testing. Polish and refinement.

Tu, Apr 21

Sprint 2 review + final sprint planning

  • Sprint 2 demos
  • Sprint retrospective
  • Final sprint planning: polish, integration, testing
  • Discussion: "What features are complete? What needs polish?"
Th, Apr 23

Sprint 3 feature development kickoff

  • Teams begin final sprint features
  • Polish existing features, fix bugs
  • Write integration tests
  • Team reflection: "What are we proud of? What needs work?"
Tu, Apr 28

Sprint 3 continued: integration and polish

  • Teams continue final sprint work
  • Cross-team integration: ensure features work together
  • Bug fixes and polish
  • Team check-in: "What's left to do?"
Th, Apr 30

Sprint 3 continued: final refinement

  • Teams finalize features
  • Final integration testing
  • Code review and PR refinement
  • Team reflection: "What are we proud of? What would we do differently?"

Topic 14: Final Delivery and Reflection

Final integration, testing, and polish. Course reflection and celebration.

Tu, May 3

Final integration and testing

  • Final integration testing: all features work together
  • Bug fixes and polish
  • Prepare for final demo
  • Team reflection: "What did we accomplish? What are we proud of?"
Required Readings
  1. Martin, R. C. (2011). The Clean Coder. (Ch. 12-13) Link
Th, May 5

Final demos + course reflection

  • Final team demos: showcase completed features
  • Course reflection: "How did we grow? What did we learn?"
  • Celebration and wrap-up

UNC Asheville Department of Computer Science