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
- In Jan 2020, Claremont McKenna College (CMC) invited Dr. Kharitonova to use these TEAM-repo materials as part of a day-long capstone preparation workshop for their teams.
- In Nov 2020, Dr. Kharitonova used these TEAM-repo materials to create a quick guide to the Capstone Resources to provide UCSB Data Science teams with a starting point for collaborative work.
- In Sep 2021, these materials were used at UCSB as part of the UCSB Data Science Capstone Preparation Workshop.
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.
- http://foss2serve.org/index.php/Publications - references to publications and events that are related to the effort to help students contribute to HFOSS (Humanitarian Free and Open Source Software).
- http://foss2serve.org/index.php/POSSE - POSSE is the Professors’ Open Source Software Experience. POSSEs provide professional development for instructors interested in student participation in Humanitarian Free and Open Source Software (HFOSS)
- http://www.swenet.org - The Network Community for Software Engineering Education. No longer active; see “View SEEK Areas” for example modules.
- https://ucsb-cs48.github.io - “Computer Science Project” course at UCSB.
- …
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:
- Fork it!
- Make your changes in a branch:
git checkout -b my-branch
- Commit your changes:
git commit -am 'Added my comments'
- Push to the branch:
git push origin my-branch
- Submit a pull request.
You can also do this through GitHub’s web interface by clicking the “Edit” icon and submitting a pull request.