Course Team Project

ECE 366 - Software Engineering & Large Systems Design

Spring 2022, Mondays 6-9pm ET

Prof. Rob Marano (rob@cooper.edu)

The Cooper Union

Project overview

Each group of 3 will work on a single project of their choosing (subject to professor’s approval) for the semester. If your group is having trouble coming up with an idea, I can give you some ideas. Since the focus of this course is large system design, the project should utilize multiple components across the technology stack, integrated and composed to make a cohesive product. The product should be a “minimum viable product” (MVP) that could be released to users and iterated on in the future and can hopefully serve as a project you’re proud to put on your resume.

Some requirements:

Some suggestions for projects:

Ways of working

In order to emulate what working on a software project at a company is like, I’ll be acting as your project manager, engineering manager, stakeholder, user, etc. As you’re working on your projects, please use your professor as a resource as well as your group members and other classmates to ensure timely delivery of each milestone.

Just like at a real software company people copy and refer to each other’s work in an effort to not reinvent the wheel, I expect you to share and reference each other’s work as well as online resources. However, you must give credit whenever you use the work of others.

I’ll hold office hours early in the semester, but as the semester and your projects progress, I’ll schedule weekly sessions (~20 minutes) with each group to address questions, give feedback, help troubleshoot work in progress, resolve any conflicts, and point you in the right direction.

Project Schedule

Proposal

Deliverables:

Your group must first decide what you’re going to build. You’ll be submitting and presenting a short proposal with a description of your product, the features you intend to implement, a rough breakdown and estimation of effort of those features (scope), and some high level documentation and diagrams about the various components, objects, modules, technology decisions, and so on. You won’t nail this all up front; that’s okay! Plans change. The point is that you’re thinking about how to break down a large problem into chunks and think about how you’ll work together to parallelize and/or swarm on the work together.

Here’s a rough framework:

Agile Demo Days

Every other sprint cycle (1 week)

  1. Sprint Demo Day Zero on 2022-01-31 - first pass of proposal
  2. Sprint Demo Day Alpha on 2022-02-14 - final proposal
  3. Sprint Demo Day Beta on 2022-03-07
  4. Sprint Demo Day Gamma on 2022-03-28
  5. Sprint Demo Day Delta on 2022-04-11
  6. Sprint Demo Day Epsilon on 2022-04-25
  7. Program Demo Day MVP on 2022-05-02 - FINAL CLASS

Explicitly for Beta demo

<subject to alterations>

Deliverables:

Explicitly for Gamma demo

<subject to alterations>

Short writeup

Demo in class (slides not required)

Explicitly for MVP demo

Full Writeup in your repo’s README.md or other markdown documents in the repo

Demo in class (slides not required)