The objective of this assignment is to have you revisit the paradigm shift we discuss in the first lecture, where you as the designer focus your efforts, not upon describing "how" a result might be computed, but instead upon "what" each of the components is. For this assignment you will design and implement a program in Python 3 that uses several recursive algorithms to produce a string of words in "Jeringonza" from an initial string in "Kebab Case".
A string that is written in "Kebab Case" uses only lowercase letters and each word is separated by a hyphen (e.g., "robert-collier"). Any word can be written in "Jeringonza" by doubling every vowel sound, inserting the letter 'p' between them, and splitting the word into two words after the 'p' character. (n.b., For this assignment, we operationally define "vowel sound" as one or two instances of any characters 'a', 'e', 'I', 'o', or 'u', but not 'y'.)
As a clarifying example, the word "robert" contains two vowel sounds "o" and "e" and so would be written in Jeringonza as "rop obep ert", and the word "halloween" contains the three separate vowel sounds "a", "o", and "ee", and so would be written as "hap allop oweep een".
The conversion of a string in "Kebab Case" into "Jeringonza" requires transforming the initial "Kebab Case" string into a list of words, and then transforming each word into "Jeringonza". As a clarifying example, the "Kebab Case" string "robert-is-forty-one" would be parsed into the list of words ["robert", "is", "forty", "one"] and then each of those would be converted into "Jeringonza" and combined to produce the string "rop obep ert ip is fop orty op onep e".
For this assignment: