Final Project
The goal of the final project is to give students in-depth knowledge of one tool. Besides the technological aspects, completing a successful project also requires effective written and oral communication skills. During the process, you should develop skills and processes for how you will approach learning and evaluating new-to-you tools.
Some Inspiration
From the last time the course was taught (Winter 2022):
Deliverable 0: Tool Preferences
Email me with your top three preferences in
tools to explore, and I will arrange you into teams to explore
the tool. Your subject line should be CS397: Tool
Preferences
You should not have prior experience with the tool.
The options for tools were presented in class.
Deadline: Monday, March 21 at 11:59 p.m.
Deliverable 1: Preliminary Tool Exploration
- Explore the tool with your team. Find relevant documentation, blog posts, etc. about the tool.
- Organize your team. The following questions are meant to
help you think about how to organize your team for success.
- What are the tasks?
- How will you divide labor?
- How will you collaborate? What tools will you use?
- What are the team's deadlines?
- Let me know what you need installed (although we prefer other alternatives). Provide links and as much info as possible so that I can get it set up. We may need to meet and do the installation together.
Email me with the above information, with all team members
included in the email. Your subject line should be CS397:
Tool Exploration
Deadline: Tuesday, March 29 at 11:59 p.m.
Deliverable 2: Presentation
The presentation should demonstrate that your team knows the tool well, that you have digested the jargon, and understand the strengths and limitations of the tools. The presentation should be well-organized and accompanied by appropriate visual aids. Be clear in your delivery and remember that the rest of the class does not know the tool nearly as well as you do.
Presentation Requirements
- 25-minute presentation; 20 minutes of presentation, allowing 5 minutes for questions.
- All team members must speak for approximately the same amount of time.
- Content:
- Problem tool solves, motivation
Why is the tool needed? What is life like before the tool? - What are the tools goals? non-goals?
- How does tool work? (Design/architecture of tool.)
- What do you need to use the tool? What does it depend on?
- Demonstration of the tool, including typical use cases
- What are the strengths and limitations of the tool?
- What are the opportunities for the tool? What does the tool work with? How can you extend the tool?
- What are the competitors/alternatives to the tool? How do they compare?
- What challenges did you face during this process?
- Problem tool solves, motivation
The presentation will also give the rest of the class the opportunity to ask questions that will help inform the remaining deliverables.
Due: Last week of classes
Deliverable 3: Web Page
Create a web page on that explains the tool.
Web Page Content
- Summarize the tool and the motivation for the tool, its goals. (Why does someone care about this tool?)
- Links to tool, documentation, good tutorials, other good sites.
- Link to the slides from your presentation.
- Other helpful notes, information
Location
This could take a variety of forms. It could be a Markdown file in a public GitHub repository, or on GitHub pages, or part of your Wordpress portfolio (although need to make sure all team members can access.)
Due: Tuesday of Finals
Week Email me and CC your teammates with a link to this
web page with the subject line CS397: Tool Web Page
Deliverable 4: Analyses
Finally, you will provide a written analysis of the tool as well an evaluation of your team and an individual reflection.
Tool Analysis
Write a final assessment of the tool. I want to hear your take on the tool. (If your team explored more than one tool, just talk about the tool you focused on.) This will have some content similar to other deliverables, but should have some unique analysis that brings together your experience with the tool.
Summary/Introduction: Summarize the tool to remind yourself later about the tool's purpose, goals, and typical use.
Quantitative analysis: Assign a letter grade for the following aspects of the tool. Provide a justification for your grades.
- Documentation quality (e.g., how easy to get started from the official documentation, examples. This is not third-party resources.)
- User-friendliness (after you have installed the tool, how easy is it to do what you want it to do?)
- Community support (how much community support does the tool have? Some indicators: number of web pages/blogs/tutorials, number of open-source extensions, active mailing list, ...)
- Productivity gains (how much does it help the developer/application?)
- Integration with other tools (specify which tools you're integrating with)
Are there other quantitative measures you'd like to add? Please do!
Qualitative analysis: Consider if you were the technical manager for a project in which the tool is relevant. Would you recommend that your team adopts the tool? Consider and address the following questions (when relevant) to guide your answer and add more, as appropriate:
- What are the strengths and limitations of the tool?
- Would you recommend this tool over the alternatives (including not using a tool)? Include a cost-benefit analysis/tradeoffs of using the tool.
- What if you are starting a new project versus restructuring/refactoring a project?
- What if the team is small vs large?
- What other factors would impact your recommendation?
Final Thoughts:
- Future work: what else did you want to explore but time constraints didn't allow?
- Conclusions
Submit on Canvas.
Team Assessment
Describe how your team worked together. Specifically, I am interested in learning:
- how you organized the team, how you collaborated/coordinated, and how you divided up tasks among the team
- who was responsible for what (preparation, organization, creating slides, technical expertise, finding resources, managing the team's efforts, writing, web page creation, ...)
- the percent (out of 100%) of the project work, including all tasks above, that you believe each team member performed.
- With respect to your team's collaboration, what went well? What would you do the same? What would you try to do differently?
Submit on Canvas.
Individual Reflection
Throughout this process (including learning tools throughout the semester and reviewing your classmates' presentations), you should be developing your approach to exploring and evaluating new tools. Describe your approach, addressing at least the following questions:
Evaluation Process
- How did you learn about a tool? What was your process? What steps did you take? (This is past tense.)
- What did you do that was successful? What was not successful? (still past tense)
- What do you look for in a tool? What are your criteria in evaluating a tool? What are the most important criteria? How do you assess/evaluate the tool? (this is what you've learned)
- Bring the above questions together to state what your process will be/should be for exploring a tool.
- What is your confidence in being able to learn a new tool? What would improve your confidence?
Recommendations for the Other Side
What can tool developers do to convince you that you should adopt their tool?
Conclusions
What are your biggest takeaways from the course/the final tool project experience?
Submit on Canvas.
Grading Breakdown
While most of the deliverables are graded as a team, if a team member is not contributing to the team's efforts, the individual may not receive the same grade as the rest of the team. Similarly, if a team member is not a good collaborator--e.g., the team member is working on the project but is not working with the rest of the team--the individual may not receive the same grade as the rest of the team.
- (Individual) Tool Preferences: 1%
- Preliminary Tool Exploration: 5%
- Presentation: 49%
- Web page: 16%
- (Individual) Analyses: 29%