Do NOT look at the tests if you are not person 1!
- Write easily implementable pseudocode based on tests
- Define local variables and functions in JavaScript
- Create, add elements to, access, and iterate over arrays in JavaScript
- Create, add properties to, delete properties from, and access values in object literals
- Refactor for clarity and readability
- Collaborate with others to solve a problem
You will be required to work with others in your career as a developer. You will not always know the large-goals or be responsible for implementing each aspect of the code. In this challenge, you are going to work with your accountability groups to solve it. Each person will have a specific role and you are not allowed to pass along any information outside of your responsibility. The roles are determined by the order in the spreadsheet. The first person will have the first role, second person the second, etc.
The first person will receive an email with a file containing tests on Monday. Most of this will probably need to be done between Thursday and Sunday (so you feel comfortable with JavaScript before hand). Email your group to decide on a potential schedule.
NOTE: If you are the first person and know you will be unable to get your part done by the middle of the week, email your group and explain your situation. The second person will then be defaulted to the first person role. Make sure to let them know in your email.
See the graphics below for help knowing who you need to send your files to depending on the size of your accountability group.
Look at the tests.js
file in this directory.
Rename your my_solution.js
file to gc1_user_stories.js
.
Based on the tests, write user stories that describe what the code needs to do in very specific terms. User stories take the following format:
As a user, I want to...
Because you aren't working with users, you can omit the "As a user" part of the story, but make sure you are specific on the "I want to..."part. The user stories should be easily translated into pseudocode by the next person in your group. However, a user story is NOT psuedocode -- it should describe the experience of someone using the function. Words like array
or loop
or any word not known to a non-technical person should not be used. In this case, you can specify the function name.
Email the user stories gist link (without the tests) to the next person in your group.
####Person 2. Translate user stories into pseudocode
Rename your my_solution.js
file to gc1_pseudocode.js
Based on the user stories you receive from the first person, write pseudocode that can be easily implemented by the next person in your group. Your psuedocode should be steps that specify at least 1 line of code.
Email the link to the pseudocode gist (without the userstories) to the next person/people in your group. You may not deviate from the user stories in your pseudocode.
####Person 3**. Translate Pseudocode into Code
Rename your my_solution.js
file to gc1_initial_solution.js
You will receive a gist with pseudocode. Translate this pseudocode into code. You can choose to pair (if you are able) or work alone to translate the pseudocode into code. Do not deviate from the pseudocode given to you. When you finish your coding, make sure the code runs without any syntax errors. If the code is missing a step from the pseudocode, message the person ahead of you to tell them. They need to give you an updated file.
When you are finished, send your solution to the next person in your group (again based on the graphics below).
** Person 4 will also do this in a five and six person group.
####Person 4**. Refactor and translate
Rename your my_solution.js
file to gc1_refactored.js
When you receive the gc1_initial_solution.js
links, refactor it/them to make the code more clear. Then translate each into user stories. You will send your refactored code and your user stories to the first person in the group.
**Person 5 and 6 do this in a five or six person group
####Person 1. Put it all together When the first person receives the refactored code from the last person, she/he needs to run the code with the tests. Which tests pass? Which tests fail? Send a summary with the and the final code you received to the rest of your group.
For everyone: When you receive the summary email, send your repo link to the other students in your accountability group. Look at the two people who followed you (go to the top if you're at the bottom) and comment on each.
In the reflection section of your 'my_solution.js` file, reflect on your learning. Use the reflection guidelines.*** Also answer the following:
- What was this experience like?
- Was your group successful in passing the tests?
- What did you learn about writing user stories, pseudocoding, writing code, refactoring, etc.?
- JavaScript: Object Syntax
- Socrates JavaScript Labs: Looping