Skip to the content.

Welcome!

This website and repository were first unveiled at SIGCSE 2019 as part of the paper “Redesigning a Software Development Course as a Preparation for a Capstone: An Experience Report”.

Abstract

Students need a wide variety of skills before they can successfully engage in real-world projects with paying customers. Some of these skills, such as the “soft skills” of communicating with a non-technical customer and working in a larger team to collaboratively develop a project, are generally not present in Computer Science courses. In this paper, we discuss our experience teaching these skills and explain the structure of our redesigned Software Development course and how it aligns with the Capstone experience. The main novelty of our approach is the specific implementation of the rotating project manager role and the introduction of the final portfolio reflection. We believe that the concepts we introduced during our redesign can be useful to any educator wanting to include collaborative project-based work in their courses. To enable faculty to apply and enhance these concepts, the resources that we used in this course, which include activities, templates, guidelines, rubrics, and questionnaires, are available as an open source project at https://team-repo.github.io.

BiBTeX

@inproceedings{Kharitonova2019,
author = {Kharitonova, Yekaterina and Luo, Yi and Park, Jeho},
title = {Redesigning a Software Development Course as a Preparation for a Capstone: An Experience Report},
year = {2019},
isbn = {9781450358903},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3287324.3287498},
doi = {10.1145/3287324.3287498},
booktitle = {Proceedings of the 50th ACM Technical Symposium on Computer Science Education},
pages = {153–159},
numpages = {7},
keywords = {teamwork and soft skills, project-based learning (pbl), agile software development},
location = {Minneapolis, MN, USA},
series = {SIGCSE '19}
}

These Teaching Experiential Action-based Materials (TEAM) are intended for instructors who are teaching team-based project courses.

Updates

Did you use these materials? Do you have any updates? Feel free to let us know by editing this page and submitting a Pull Request.

Course logistics

Schedule, project selection and team formation

Page Notes
schedule.md Sample schedule for the course: https://github.com/hmc-cs121-admin/hmc-cs121-s2018
project_preferences.md Logistics, and Project Preferences + Overleaf template

Project Management and Documentation (Team Assignments)

Phase 1 PMs submit Phase 1 Project Plan Draft for Peer-review by uploading the PDF on Canvas.

PMs submit a complete draft of the Wireframes, UML assignment for Peer-review.

Each PM submits their team’s Functionality draft for peer-review.

Each PM submits their team’s Poster for peer-review.

Page Notes
agenda.md Sample agenda for the client-team meeting; guidelines/template: https://www.overleaf.com/read/jkkfjwhwjcjp
project_plan.md A scaffolding to help plan the project and provide the structure for the final write-up (overall project goals, the solution to the client’s problem and how it fits the client’s needs, how the team will accomplish this solution, and specific tasks for this phase).
project_plan_3.md An updated Phase 1 plan.
wireframes.md Show the app flow using wireframes; document the technical design of your project by creating CRC or UML diagrams.
architecture.md  
functionality.md  
code_review.md Code review (in-class) exercise.
user_testing.md  
poster.md At the end of the course, teams put together posters for a Poster Session, outlining their work, progress, and achievements.
poster_session.md End-of-the-course celebration where teams present their work, progress, and achievements.
handoff.md A final walk-through with the team to ensure that their repo’s README provides a complete overview and instructions for future developers/users.
sample_README.md A final walk-through with the team to ensure that their repo’s README provides a complete overview and instructions for future developers/users.

Team Retrospectives (aka Phase Reflections)

team_eval.md and postmortem.md from the “Team Retrospectives (aka Phase Reflections)” category can also be listed under the “Individual Assignments” category, since they are completed by each student.

Page Notes
Phase 1 and Phase 2-3 Each phase of the project brings a slightly different focus (and thus format) to the reflection. Contains both, the individual and team component.
team_eval.md Each student submits a “Final team eval spreadsheet” evaluating themselves and their teammates.
postmortem.md A set of final reflection questions, aka Postmortem

Project Manager (PM) Assignments

Page Notes
pm_expectations.md PM’s primary responsibilities and expectations
project_report.md A report submitted by the PM at the end of each week.
presentation.md Project Manager Presentation occurs at the end of each phase (or the beginning of the next phase, recapping the previous phase). Each phase has a different focus.
presentation_tips.md General presentation guidelines.
  presentation rubric : A Google Doc with the presentation rubric constructed to match the guidelines in presentation_tips.md.
  presentation rubric (old) : A Google Doc with the older/previous presentation rubric.
  presentation peer feedback: A Google Doc with the presentation peer feedback rubric.
presentation_reflection.md A short self-reflection and presentation assessment by the PM. Submitted before they see the video of their presentation. The Postmortem comes back to this reflection, asking them about their presentation, now that they’ve seen the video (potentially, after several weeks have passed, unless it’s the last PM)

Individual Assignments

team_eval.md and postmortem.md from the “Team Retrospectives (aka Phase Reflections)” category can also be listed under the “Individual Assignments” category, since they are completed by each student.

Page Notes
status_report.md Each developer submits a weekly status report detailing their progress and planning their next week.
portfolio.md Each student submits a compilation of their work at the end of the course.
open_source_project_eval.md An (extra-credit) assignment given after the open-source lecture. Adopted from the POSSE/foss2serve community.

Created using Markdown Tables generator.

Other courses or useful resources

Do not hesitate to edit this list and submit your changes as a Pull Request.

Contributing

We welcome contributors and would like to grow the community of educators who are teaching team-based project courses.

To help us update this repo:

  1. Fork it!
  2. Make your changes in a branch: git checkout -b my-branch
  3. Commit your changes: git commit -am 'Added my comments'
  4. Push to the branch: git push origin my-branch
  5. Submit a pull request.

You can also do this through GitHub’s web interface by clicking the “Edit” icon and submitting a pull request.