CS1980/1640
Projects
Follow this link to find a list of all projects
Project Assignments
Schedule
Course Information
What are the expectations for the CS1640, CS1980 project?
We expect the project to be doable in 12 weeks. We want projects that touch on at multiple areas of computer science (for example, databases, web programming, and operating systems). In the end, we hope the students create something that can be usable. The project must be designed so that within 2-3 weeks the students understand the problem and can begin to make progress towards the goal. Students are typically taking a full-load of classes and dedicate about 10 hours per week (each team member).
The first half of the class will include a couple of lectures on software engineering, for the first few lectures, followed by classes with a mix of talks and panel discussions. The second half shall be used as time for meeting with groups / sprint retrospectives / planning / etc..
About Fairness
Consistency and fairness matters to all of us. However, some of us may disagree on what is fair and what is not. Thus, you are encouraged to devote a good amount of time thinking about the project you want to spend time working on. The choice is yours. Always remember that “it is your project”.
Projects are different in requirements, scope, size, locations, client, etc. Whatever project you choose to work on is up to you. The course instructor will not force any student to work on any project. The course instructor will not consider the difference in projects as an argument to miss due dates or negotiate deliverables.
Details on Project Development
The goal of this course is to develop a project, from start to finish, using modern software engineering tools and techniques. The final project should be well-written, well-tested, and well-documented.
Unless dictated otherwise by the customer, work should be done using git and GitHub or GitLab. Work should be done in a private repository, and I should be added as a collaborator (username is “emmaajordan” on both sites). Please sign up for a student developer pack (which includes free private repositories, along with other free software) here: https://education.github.com/pack
Unless dictated otherwise by the customer, the project will be developed using the Agile/Scrum software design methodology. We will discuss this more in class. One of the key tenets is that there is always some “working” version of the software, even if it does not include all of the features. This means that at any point, you should have a working version of the software to show customers (and professors)!
We will consider every other class meeting the end of each sprint. During this time, we will spend some time doing a retrospective in your groups - meeting for thirty minutes or so, in-person, to determine what went well with the last sprint and what could go better. You will also come up with a plan for the next sprint. Professor Emma Jordan will be available at the end of each lecture to discuss the path forward with each group.
Since student schedules are often hard to reconcile, I recommend you use a chat application such as Slack/Discord to stay in touch with each other, even when you cannot meet in person.
As this is a capstone course, you are expected to be self-motivated and independent. This may mean learning a new language, framework, architecture, etc. Professional software engineers are often expected to learn these things independently, and you should be prepared to do so as well. If you are unfamiliar with where to find training materials or information for a particular subject, you may discuss it with the instructor, but the onus is entirely on you to learn anything additional you need to know to complete the project.
Typical timeframes (in weeks)
- week 1 - Introduction and expectations
- week 2 - project pitches
- week 3 - students interact with mentors, rank projects, receive assignment
- week 4 - students hand in page proposal
- week ~9 - students give a midterm report of progress
- weeks 4-15 - students carryout projects; talks and meetings every many classes
- last week - students present their work during scheduled class!s
Evaluations
If your grade is Pass/Fail
If your grade is Pass/Fail, you will earn a pass if you successfully obtain a “C” or higher using the grading method below.
Grading method
The grade on this course is mostly based on the project, however, there are other components. Note that the project is core for this course, so a minimum of 50% in that component is required for a pass!
Grade components:
- Project: 60%
- Individual Tasks: 10%
- Team Deliverables: 15%
- Peer Evaluations: 15%
| Letter Grade |
Percentage |
|---|---|
| A+ | >=97% |
| A | >=93% |
| A- | >=90% |
| B+ | >=87% |
| B | >=83% |
| B- | >=80% |
| C+ | >=77% |
| C | >=73% |
| C- | >=70% |
| D+ | >=67% |
| D | >=63% |
| D- | >=60% |
| F | <60% |
Unless excused by the sponsor in the final evaluation form, if your product/solution can’t be accessed/used by the instructor at the end of the semester your letter grade will be F. Otherwise, your final letter will calculated according with the scale above.
A “G” grade will be granted for extenuating circumstances at the sole discretion of the instructor. Any student seeking a G grade will be required to submit corroborating documentation.
Individual Tasks
There may be a collection of variable-size tasks for students to complete in this course. Tasks will have high-level directions on what you should do, objectives, and a due date. Each task will generally be worth 1 point, but there may be exceptions. Thus, you will have to pay close attention to the description of any task. One repeating task example is filling out a peer evaluation form at the end of each sprint. You will be required to fill out the peer evaluation forms promptly, honestly, clearly, and concisely.
Task examples: meet with another team and give them feedback on their Installation Instructions, fill out an evaluation form for another team’s presentation, or create a tutorial on how to start a project using your project’s web framework. You will have a weekly or bi-weekly meeting with your client for which you have to take notes and write a meeting report.
In addition, you have to attend all other teams’ presentations. Your participation in attending and evaluating other teams’s presentations will count toward your “Individual Tasks” letter grade. You will not receive any credit for a task that is performed after its due date.
Check the assignments page for a list of current tasks assigned and their deadlines.
Team Deliverables
There will be, at least, five deliverables for teams to complete during this course. Each deliverable will have high-level directions on what you should do and a due date. Team members should collaborate on the deliverables in the way they find effective. Each team member will receive a grade for each deliverable. Any late submission will receive 75% of the grade and may not be processed until the end of the semester.
Proposal Paper
Midterm Update
Project Presentation
- 10-15 minute presentation to class
- Listeners will have to evaluate the presentation
The presentation is a short explanation of what you have done do far and what you are planning to do. Except in extraordinary circumstances, you MUST show a working version of the software (although it will not, of course, be feature-complete). Such circumstances may include NDA other customer-set limitations or the work being research-based. Other exceptions will be handled and approved on a case-by-case basis (ask me in advance).
See the Presentation Schedule for when you will be presenting.
Final Project Poster Session
Final Project Paper
Final Project Summary
- Not graded
- A single page with a summary of the project - More details closer to the end of the semester
- Used by your lovely instructor to advertise previous projects :)
Peer Evaluations
Each sprint, you will be evaluated by your team members. The peer evaluation will be through a peer evaluation form filled out by your team mates for every sprint. You will also be filling out a peer evaluation form for each of your team members. The purpose of this evaluation is to provide feedback to your team members on their performance and to provide feedback to the instructor on the performance of the team members.
The student’s peer evaluation grade is the average of the numbers assigned by their teammates. A student who did not fill out a Peer Evaluation Form for a given sprint will receive a ZERO score for the same sprint.
Product
Throughout the semester, you will be evaluated by the instructor and the client. By the end of the semester, the instructor will meet with the client and get their feedback on your performance and professionalism.
As part of this evaluation, you will need to submit a small bi-weekly report.
At the submission deadline, an automated e-mail will be sent to the sponsor asking for their evaluation for the sprint that just ended. Including the accuracy of the report!
The instructor evaluation will take part during the bi-weekly meetings you will have. These will mostly happen during class, but if it becomes unfeasible to do them there, or some team members cannot attend that specific lecture for a valid reason, the team will need to schedule a meeting with the instructor during the week immediately following the end of the sprint. This meeting MUST include a demo of your working project, where you highlight the contribution of each team member. That is the spirit of using the Scrum method in this class.
Both these evaluations count towards the project component!
REMEMBER: If your product/solution is not accessible at the end of the semester, unless excused by the sponsor, the entire team will receive F as the final letter grade in this course.