Welcome to Intro to Programming. If you are a student in the
class, the first thing you need to do (and which we should have done in
class) is set up your GitHub account.
Once you have a GitHub account, click “Log in to GitHub” below to
proceed.
If you don’t have a GitHub account yet, please create one and then log
in here for further instructions.
Congratulations! You have successfully connected this app to GitHub.
However you are not yet a member of the GitHub organization for this
class, something Mr. Seibel needs to set up for you.
This is your GitHub profile URL:
Click the clipboard icon to copy it and then submit it
at this
form so he can add you.
Congratulations! You have successfully connected this app to GitHub. And
it looks like you have an invitation to join the GitHub organization for
this class. You need to accept that invitation before you can proceed.
The invite should be in your email.
I see you are logged into GitHub and a member of the Intro to
Programming GitHub organization. However there seems to have been
some problem finishing the setup for your account. Please let Mr. Seibel
know.
This is a tool for the Intro to Programming class at Berkeley
High School. It is intended to provide a simple environment for
experimenting with Javascript without all the complexities of a full
development environment such as ReplIt or Glitch which we may use later
in the year.
It is also designed to take advantage of the browser’s ability to run
Javascript natively. It does not need access to a server to run code
making in extremely responsive even if the Wifi is flaking out.
Finally, under the covers it is saving work to a GitHub repository in a
very simplified workflow that does not depend on immediately learning
any git commands. Code written in this environment for each assignment
is saved to a directory and branch specific to that assignment each time
it is saved. Thus when the assignment is done, it is easy to go to
GitHub and create a PR containing just the work on that assignment which
can then be commented on and worked on further before it is turned in
and merged to main.
You're all set! You don't need to worry about this yet but we have
successfully created a GitHub repository for your work:
You can get to it any time by clicking on your GitHub username at the
top-right of the screen.
For all the functions in this assignment I want you to write a recursive
function. As in the second problem set, some of these functions are not
ones that you'd naturally write recursively. Others, however, are.
As in the previous assignment, for functions the recurse on arrays, you
may want to use the fact that s.slice(1) returns an array
consisting of all but the first element of xs. E.g. [2,
3, 5, 7, 11].slice(1) evaluates to a new array [3, 5, 7,
11]. Similarly you can recurse on strings
using s.substring(1) to get the string containing all but the
first character of s.
This problem set contains a couple problems that ask you to recurse on
arrays the represent trees. I.e. instead of building a tree out of objects
we build a tree out of nested arrays. In this kind of recursion, you'll
usually have a double recursion, one recursing on the 0th element of the
array and the other recurling on the rest (i.e. the slice(1))
of the array.