Recursion in CodingBat Lab
Categories:
3 minute read
Introduction
The goal of today’s lab is to practice writing recursive methods by competing as many CodingBat recursion exercises as possible in 50 minutes.
Creating an Account
Note 📝
If you:
- already have a CodingBat account, AND
- this semester you have already linked your coding bat account to your professor’s, AND
- you manage to login successfully to this existing account (i.e. many have reported the “forgot password” feature of this website not working for them 😞)
Then, you can of course skip the “Creating and Account” steps.
- Navigate to the CodingBat web-site
- If you already have an account, log in. Otherwise, use the “create account” link on the upper right portion of the page to create a new account.
- Please choose your official school email address unless you’re creating a second codingbat account due to being locked out.
- Once your account is created, click on the <code>prefs</code> link and:
- enter the email address of you instructor in the
Share To
box at the bottom of the page. (e.g.duanzx@jmu.edu
,stewarmc@jmu.edu
,wangid@jmu.edu
, orweikleda@jmu.edu
) and click theShare
button - enter your names in the
Memo
box and click theUpdate Memo
button.
- enter the email address of you instructor in the
- In principle, it should be possible to grade your work through the sharing mechanism from the previous step. Just in case that doesn’t work you should save copies of your solutions to a text file.
Advice
- Several of the exercises below involve string manipulation. Here are some
helpful String
methods:
someString.length()
returns the number of characters in a string.someString.substring(0, 1)
returns the the first letter ofsomeString
.someString.substring(1)
returns everything after the first letter. This will return the empty string ("") if the string only has one letter.
- Other methods involve processing integers one digit at a time. Here we can use the
/
and%
operators:int num = 745; int last = num % 10; // evaluates to 5, the last digit of 745. int rest = num / 10; // evaluates to 74, all of the digits except the last.
Start Programming
You are not required to work on these in order, but they do build on each other to some extent. If the exercises from Group 1 seem too easy, feel free to skip ahead to Group 2. To receive credit for the lab you must finish at least four exercises beyond “bunnyEars”.
Don’t use the “next” button to move between exercises: after you have completed an exercise come back to this page and select the next one.
Group 1
- bunnyEars (Includes hints and solution)
- count7
- sumDigits
- array6
- countX
- changeXY
- endX
- nestParen
- parenBit
Group 2
Submitting
By sharing your codingbat account with your instructor as outlined above, your instructor will be able to see your work. As long as you also followed the instructions about the Memo
field in coding bat, your instructor will be able to award you credit for the lab.
For full credit, you must finish at least four exercises beyond “bunnyEars”.