Projects


Employ short and long term projects to allow students gain experience working in a software development team.

Short-term Project

In a short-term project, students are invited to make small contributions to an existing open-source software project on GitHub. They first spend time getting to know the project and then select one of the GitHub issues to tackle.

Objectives of the Short-term Project

  • To practice organizing teams and team roles in preparation for the main software engineer project.
  • To experience project onboarding by getting to know a new tool, SheetShuttle.
  • To learn how to use Github project boards to manage a software project.
  • To practice scrum agile methodology in the short-term software engineer project.
  • To experience planning, estimation, and implementation during a sprint.
  • To continue to learn how to use a GitHub board to manage a software project.
  • To continue to learn how to use GitHub and the GitHub Flow model, including Git branch naming conventions to support collaboration among a team of software engineers.
  • To continue to learn how to use Markdown to complete technical writing tasks.
  • To reflect on the process of software engineering to be able to continue improving professional and technical skills.

Assignment for the Short-term Project: Contribution to SheetShuttle

Long-term Project

In this long-term project, students design, develop, and release a new plugin according to the requirements of the assigned clients. To achieve a fully functional, tested, client-approved, documented, and released plugin by the project’s due date, students work through multiple iterations with their team, utilizing GitHub issue tracker, creating multiple pull requests, and going through multiple review iterations (sprints).

Objectives of the Long-term Project

  • To practice organizing teams and team roles during a long-term software engineering project.
  • To experience a full project engineering process by creating a new tool, a plugin for SheetShuttle, based on client requirements.
  • To further practice scrum agile methodology in the long-term software engineer project.
  • To further experience planning, estimation, and implementation during a sprint.
  • To continue to learn how to use a GitHub board to manage a software project.
  • To continue to learn how to use GitHub and the GitHub Flow model, including Git branch naming conventions to support collaboration among a team of software engineers.
  • To continue to learn how to use Markdown to complete technical writing tasks.
  • To reflect on the process of software engineering to be able to continue improving professional and technical skills.

Assignment for the Long-term Project: Creating a new Plugin