This is the P2PU Archive. If you want the current site, go to!

Javascript: 101

My recent threads

You haven't posted any discussions yet.

Recently updated threads

Challenges for Javascript Beginers badge

Go back to: General discussion
I would like to announce that the Javascript 101 course will provide peer recognition badges for all everyone who wishes to participate in the process of applying for badges. Please remember, this is not mandatory. Participants apply for a peer recognition badge only if they want to.

The process of applying for a badge involves assessment, and the badge itself is an artifact of recognition of your skills. P2PU has rolled out a pilot to award badges to participants.

I do not want to confuse everyone with too many details right now, but putting it very briefly, we will have a set of 8 - 10 programming challenges, which must be completed by all those aspiring for the badges. These challenges will be assessed by your peers (other participants of the course), facilitators, and maybe other experts. If a participant gets 3 votes for their challenges, they will be awarded the Javascript 101 badge.

Please do not think of this as a college pass/fail kind of test. The purpose of this test is to help everyone understand their strengths, weaknesses, and what they need to learn in greater detail. The review process is meant to provide constructive assessment. If you are not awarded a badge it does not mean you have failed. It means that you need to learn a few more things and reapply for the badge. At this moment I am not sure when and how the reapplication  process will work, but I will share this knowledge as soon as we have figured it out.

As for the challenges, there are a few challenges on the this Wikiversity page , however these problems only test a persons understanding of the DOM, and as melipone correctly pointed out, there is more to Javascript than manipulating the DOM. We will take some of the Wikiversity challenges for testing DOM manipulation capabilities, however I would like to have some challenges which test other aspects of Javascript as well. I would like to create these challenges with a peer to peer philosophy. Please treat this as a request, to all those interested, to submit challenge questions (for aspects of Javascript not related to the DOM). A challenge question should ideally test that a participant has understood certain Javascript concepts and allow them to present their knowledge by way of solving the challenge. The challenge is typically a programming challenge. If you feel that you have a good challenge problem in mind, then please submit is as a reply to this forum thread, along with the following: 

  1. The challenge problem
  2. Which Javascript concepts and capabilities does this problem address?
  3. A simple rubric for assessing the challenge (what would you consider a successful response to the challenge?)

Participants whose challenges are accepted will get a "Challenger" badge :-)

There are several details related to the process of awarding badges, which I would like to share with you. At the same time I am trying to keep this post on topic. I will open separate discussion threads for some of these things. Please restrict this thread to either submitting your challenge questions, or discussing things related to the challenge questions only.

Maya Incaand's picture
Maya Incaand
Mon, 2011-02-28 13:36

OK, first off, this is not a pure coding challenge:-

"Identify a proposed new feature of each of HTML5 and CSS3 that would affect the use of Javascript and discuss the impact.

Provide code that works in the Google Chrome browser to illustrate your discussion.

Draw a conclusion and give your opinion as to the effect of these emerging standards on Javascript usage."

Keep the length of your discussion to around 750 words or so.

Rubric: relevant working code examples, evidence of some research and a well argued conclusion within the word count.

Parag Shah's picture
Parag Shah
Thu, 2011-03-03 07:13

Hi Maya,

This is a very nice question for those who want to think beyond the course and also reflect on Javascript principles from a different perspective.

However for the course, I guess we are trying to stay away from the exam feel, and focus on programming assignments where participants can demonstrate their knowledge by writing actual code.

Can you try and some up with a programming challenge?


patrick collins's picture
patrick collins
Wed, 2011-03-02 22:55

especially after taking this class, i understand that javascript is, as i think crockford states in one of the early videos, "much more than just form validation." keeping that in mind, this may be an uninteresting suggestion, but i think it could be a convenient way to roll a number of the concepts we've been learning about into one exercise. also, i suppose form validation is a pretty useful skill to have for beginners like me ;-)

1. Create a simple contact form and use JavaScript to validate that each field is filled in and in the correct format. The fields should be "name," "email," and "message" (the "email" field should constitute a valid email address format). If any of these conditions aren't met, an appropriate error message, styled in CSS to attract the user's attention, should be displayed next to the field in question. Once all the fields are filled out correctly, JavaScript should remove the error messages and allow the form to submit. The validation can either be carried out once the user hits the submit button, or as the user changes the focus from one form field to another.

2. Functions, conditional statements, interaction with the DOM, event handling.

3. The challenge is met if the form behaves according to the above specifications.

if anyone wants to suggest any changes/corrections feel free!

Parag Shah's picture
Parag Shah
Thu, 2011-03-03 07:14

Hi Patrick,

It is a very nice suggestion, but questions 4, 5, and 6 from the Wikiversity challenges already deal with form validation. Even though we will not be using all the Wikiversity challenges, I am planning to use some of the earlier challenges.

Thanks for the suggestion, it does make a good challenge question.

Parag Shah's picture
Parag Shah
Thu, 2011-03-03 07:27

The wikiversity page (linked to in the first post) has a good set of challenges related to the HTML dom and form elements. Even though we will not use all of those challenges, I believe we will use a few of them.

So, at the moment, I am looking for some basic challenges which test a persons knowledge of Javascript values, inheritance, arrays, etc.

Maya Incaand's picture
Maya Incaand
Thu, 2011-03-03 13:41

How about code to randomly deal a deck of 52 cards into 4 sets of 13 and display the result using KQJT98765432A for the cards and SHDC for the suits?

Maya Incaand's picture
Maya Incaand
Thu, 2011-03-03 18:01

Do a basic working calculator, just use numbers 0 to 3, operations +,*, and clear/equals.

Rubric: does correct calculations.

Parag Shah's picture
Parag Shah
Mon, 2011-03-07 18:32

Hi Maya,

Thanks for your inputs. Both your problem statements are good, and I have been thinking of using them.

However, I have also been debating if we should simply go with the Javascript Basic Challenges which P2PU has already published, or should we customize the challenges for our course.

As much as I would like to make a few changes, I also see a few disadvantages of creating too many fragments.

I am thinking of using the Wikiversity challenges for this course, and make perhaps make changes in future courses if I get that as a feedback from participants of this course.

I will announce this formally, but for this course I think we will go with the Wikiversity challenges.

Maya Incaand's picture
Maya Incaand
Mon, 2011-03-07 20:02

I think the Wikiversity questions are OK and the last few bring in some new stuff which might logically be considered a follow on from this course.

However I have only done the first one so far:-)