feat: add prototype for Proofreading Tool lab#1140
feat: add prototype for Proofreading Tool lab#1140BilalGhazal wants to merge 8 commits intofreeCodeCamp:mainfrom
Conversation
|
Please update your PR to include the link for the issue this relates to. that makes it easier for reviewers to have context. Right now it just says Also, I have tagged Naomi for review here. I am not sure where this is supposed to go in the curriculum order but reading through the user stories, it comes across and maybe to advanced? is this lab supposed to be later on in the curriculum? |
|
The solution itself is not crazy complicated. but my gut is saying the user stories will probably need to be simplified a bit depending on where this goes in the curriculum. |
|
Thanks for the notes! I did search about signal pattern detection on the website, but couldn't find anything. I do agree that the user stories are not definitive and somewhat vague, which is why I included definitions in my user stories file. However, I'm not sure where the source material or lesson related to this are to obtain more detailed information about the problems to solve. |
|
I would suggest reaching out to Naomi in discord. She should be able to provide more context behind the user stories. 👍🏾 Because the learning objects for all of these workshops and labs should be rooted in learning and practicing the core programming concepts like loops, arrays, object. etc. We want campers to walk away feeling more confident in these areas. And right now, I fear that the current description and user stories are focused to much on trying to understand signal patterns then practicing the core concepts of programming fundamentals. |
|
@jdwilkin4 I reached out to Naomi before the pull request and she did provide examples of the three functions to be written, so not sure what the next step is now. |
The code itself is fine. I have an issue with the user stories. So we will need Naomi's input on how to best restructure them and better understand the core learning objectives behind this lab. 👍🏾 So this is blocked for now. You can try reaching out to Naomi on discord and we will wait for her input 👍🏾 |
|
It looks like a new project idea was proposed on discord. Can you post an update here on the new project so we can keep everything all in one place and keep track of the progress? |
|
@jdwilkin4 I made the update. Should I wait for Naomi to update the lab, then start working on the code to fit the new user stories and requirements? |
|
if there is a new project idea approved, post here what's the new idea, and we can update the issue accordingly if needed |
|
The lab is being turned from a Signal Pattern Detector into a Proofreading Tool. Three functions will still need to be written: findRepeatedPhrases(words, phraseLength) — given an array of words and a phrase length, find the starting indices of any repeated word sequences. This would cover nested loops with an early exit flag. findPalindromeBreaks(words) — given an array of words, find the indices where the word-level palindrome is broken. This would cover mirrored index traversal. analyseTexts(texts, phraseLength) — run both checks on each text in an array and return an array of result objects. This would cover iterating over an array |
|
yes pleast start creating the new prototype |
|
hi @BilalGhazal , how is it going with the new prototype? |
hello, sorry for being late! I'm finishing it up. |
f27a25c to
9e56fb2
Compare
|
Hello, I have updated the PR. |
majestic-owl448
left a comment
There was a problem hiding this comment.
You are still working in lab-signal-pattern-detector folder, so you should maybe update that
Please use USA spelling, use analyzeTexts
there are two things that are used in the new labs that are not practiced in a workshop before, it's worth to bring up with Naomi: nested loops and break and continue
this is not the only lab that uses these, and there isn't a workshop to allow to practice them beforehand
| return palindromesBroken | ||
| } | ||
|
|
||
| function analyseTexts(texts, phraseLength) { |
There was a problem hiding this comment.
| function analyseTexts(texts, phraseLength) { | |
| function analyzeTexts(texts, phraseLength) { |
|
|
||
| 1. You should implement `findRepeatedPhrases(words, phraseLength)` - given an array of words and a phrase length, find the starting indices of any repeated word sequences. Use nested loops with early exit `break` flags. | ||
| 2. You should implement `findPalindromeBreaks(words)` — given an array of words, find the indices where the word-level palindrome is broken. | ||
| 3. You should implement `analyseTexts(texts, phraseLength)` — run both checks on each text in an array and return an array of result objects. |
There was a problem hiding this comment.
| 3. You should implement `analyseTexts(texts, phraseLength)` — run both checks on each text in an array and return an array of result objects. | |
| 3. You should implement `analyzeTexts(texts, phraseLength)` — run both checks on each text in an array and return an array of result objects. |
|
|
||
| **User Stories**: | ||
|
|
||
| 1. You should implement `findRepeatedPhrases(words, phraseLength)` - given an array of words and a phrase length, find the starting indices of any repeated word sequences. Use nested loops with early exit `break` flags. |
There was a problem hiding this comment.
with break there may be the issue that was not practiced in a workshop before now, it's worth to bring up with Naomi as this is not the only lab that uses break (or continue)
anyway, the user story does not give enough infos to know what the function should do
| @@ -0,0 +1,9 @@ | |||
| In this lab, you will create a proofreading tool, a tool that checks text for repeated phrases and palindrome breaks. | |||
There was a problem hiding this comment.
| In this lab, you will create a proofreading tool, a tool that checks text for repeated phrases and palindrome breaks. | |
| In this lab, you will create a proofreading tool, a tool that checks text for repeated words and palindrome breaks. |
what is a palidrome break?
| **User Stories**: | ||
|
|
||
| 1. You should implement `findRepeatedPhrases(words, phraseLength)` - given an array of words and a phrase length, find the starting indices of any repeated word sequences. Use nested loops with early exit `break` flags. | ||
| 2. You should implement `findPalindromeBreaks(words)` — given an array of words, find the indices where the word-level palindrome is broken. |
There was a problem hiding this comment.
there are not enough details of what the function should do
|
|
||
| 1. You should implement `findRepeatedPhrases(words, phraseLength)` - given an array of words and a phrase length, find the starting indices of any repeated word sequences. Use nested loops with early exit `break` flags. | ||
| 2. You should implement `findPalindromeBreaks(words)` — given an array of words, find the indices where the word-level palindrome is broken. | ||
| 3. You should implement `analyseTexts(texts, phraseLength)` — run both checks on each text in an array and return an array of result objects. |
There was a problem hiding this comment.
what do you mean with an array of result objects? does the order matter? please add details
| @@ -0,0 +1,49 @@ | |||
| function findRepeatedPhrases(words, phraseLength) { | |||
| const repeatedWordsIndecies = [] | |||
There was a problem hiding this comment.
| const repeatedWordsIndecies = [] | |
| const repeatedWordsIndices = [] |
| } | ||
|
|
||
| if (match) { | ||
| repeatedWordsIndecies.push(i) |
There was a problem hiding this comment.
| repeatedWordsIndecies.push(i) | |
| repeatedWordsIndices.push(i) |
Checklist:
Update index.md)relates to #64125