Skip to main content

Labs and Projects

Labs

Labs are team assignments made in groups of two or three students. The labs are designed to reinforce the material presented in class and they introduce the tools needed to be successful in the required course project. They form an important part of the learning process and make a significant contribution to the final grade.

The instructor will assign teams or students can choose the partner they would like to work with. However, each lab assignment must be done with new partners. Students cannot work with the same partner they worked with in a previous lab assignment.

When you register for this course, you are also registering for the lab session for this course. Students are REQUIRED to attend the lab section that they are registered for. Attendance will count as part of your grade.

Each laboratory assignment includes a writing part to prepare for the project in the second part of the semester.

Project

The goal of the project in this course is for students to gain knowledge and experience in developing and contributing to a medium size project. During the first part of the semester while traditional labs are taking place, each student will develop a project proposal idea. During the second part of the semester the best project ideas will be retained and teams of approximately four students will develop them to completion. The nature of the project contribution may be to create a new project from scratch, or to contribute an enhancement or to fix an existing open-source project.

The project deliverables reflect authentic writing experiences that are common in the software engineering discipline. To prepare for this style of writing, students will prepare project deliverables through an iterative writing process, in which an initial draft is submitted, the instructor provides written feedback, and a revised version is submitted. Each project deliverable will have an individual grading rubric that includes elements that assess the ability to specify the purpose of the documentation, use of abstraction and models appropriately, discuss potential alternatives, use and cite evidence to support design decisions appropriately, organize and structure documentation appropriately, and to use correct grammar and appropriate style for communicating to various audiences.

Each team member must submit a team report along with the submission of each deliverable. The team report will include a description that outlines each team member's contribution to the deliverable.

Contributing to an open-source project is preferred. You may propose a stand-alone project, but if you do, it must be submitted as an open-source project. Sources of open-source projects include: GitHub (https://github.com), Apache software foundation (http://www.apache.org), Source-Forge (http://sourceforge.net), Open Hatch (http://openhatch.org)

Project Timeline

Peer FeedbackInstructor FeedbackFinal
Project ProposalWeek 3Week 4Week 5
Vision Statement and PersonasWeek 9Week 10Week 11
Conceptual DesignWeek 10Week 11 to 14Week 15
Use CasesWeek 10Week 11 to 14Week 15
Project Categories
  • Mobile Applications
  • Progressive Web Applications
  • Embedded Systems
  • Machine Learning
  • RESTFul APIs
  • Message Bot Integrations
  • Multiplayer Games

Ultimately be creative and passionate. Some projects may not fit the above categories, and that is okay as long as the idea is well thought out, and researched.

tip

Check out the Capstone Showcase to see previous examples of incredible projects and their demos.

Students will be organized into project teams ranging in size from 5 to 7. The project will follow a modified version of the Rational Unified Process known as the Unified Process for Education.

Students will propose their project ideas at the start of the second week of class. Project ideas must be substantial enough to be completed by a team of 5 - 7 students.