- Teams
- Sprint Duration: Tuesday 1/30 - Tuesday 2/6 at beginning of class
- There will be no quiz for this sprint. Normally, quiz time would be Tuesday, 2/6 at the beginning of class.
- Requirements due Tuesday, 2/6 at the beginning of class.
Sprint 0 is a one-week trial run to get you used to the new way the class will be run and what is required of you. So part of what you should learn this week is why scrum/agile works and how we can apply its principles to education.
The other goal for this sprint is to learn about how to write well-designed object-oriented code. It may seem strange that I am starting with code design, which has nothing to do, really, with Algorithm Analysis. But you will be writing Java code all semester, and it is now just as important to write GOOD code as to write FUNCTIONAL code. What makes code good? Well, efficiency is part of that, but maintainability is also a big part of that. So this first part of the course is dedicated to upping your Java game.
Responsibilities (What you need to know):
- Scrum Processes
- Define "Backlog", "Burndown charts", "Planning Poker", "Retrospective"
- Why do we use Scrum? How is it related to Agile? What are the core values of each?
- Be able to use the software - Trello.
- Principles of Code Design
- Identify why it is important to design code well
- Articulate the properties of poorly designed code (Singletons, Tight coupling, Untestable code, Premature optimization, Indescriptive names, Duplicated Code)
- Articulate properties of well-designed code, especially the Open-closed Principle
- Identify and fix Code Smells like Cyclomatic complexity, freeloaders, magic numbers, etc...
Requirements (What you need to do):
Individual Requirements:
- Understand the concepts on the Responsibilities list.
- Get an account on Trello.com. Google "Scrum for Trello" and "Burndown for Trello" and install both these extensions.
- Read the document on Code Design below.
- Optional: Buy a textbook.
Team Requirements:
- Tuesday in class: Learn about Scrumage. Meet your team. Get Trello accounts and do Sprint planning.
- Homework for Thursday: Read about Code Design and do the walkthrough example.
- Thursday in class: Do worksheet and compare worksheet answers with your teammates and check against the solution set. Ask professor for help on any that stump you. Begin work on the homework project.
- Homework for Tuesday: Finish the homework project and get your work checked.
- Tuesday in class: Turn in project.