Welcome to Interactivity with JavaScript. This course is an introduction to the use of the JavaScript programming language to add some interactivity to your website. This course is meant for people who are comfortable using HTML and CSS, but are new to programming.

What is the benefit of learning JavaScript? HTML and CSS are not programming languages and therefore they are not very powerful. You can do some really interesting things with the new tags and properties, but there are limitations. JavaScript, on the other hand, allows you to add complex levels of interactivity to your pages. And unlike some other programming languages, JavaScript works really well with the DOM structure of web pages.

In the next few weeks we will talk about how you can add pop-up boxes (not always a good idea), change the structure and style of your page when special events happen (sometimes a good idea), and validate form data (always a good idea). To be completely honest, there are so many things that we can do with JavaScript we can't possibly cover them all in the time we have. We will focus on the following:

  • How to create output with JavaScript. This could be with pop up boxes, adding content to your page, or sending information to the browser console to help you fix ("debug") your code.
  • How JavaScript uses variables and data types to save your data. This is a powerful and important concept because it lets you save information to use over and over again.
  • How to write functions to react to events. You will be able to write code that only runs when special events occur. Because we want to add interactivity, we will make sure to use special DOM events that react to mouse clicks and movement.
  • Why arrays are an important part of any programming language and how to use them to store multiple pieces of information in one variable.
  • How to create and validate HTML forms.

  • Throughout the entire course there will be an emphasis on the importance of good habits and examples of potential pitfalls. All of the example code is provided to you as a starting place. For some learners, this will be sufficient to get a decent base on how JavaScript work. For other learners however, there is nothing better than when they decide they can write better versions of the code.

    How this course works

    This course assumes that you are familiar with the Document Object Model (DOM), HTML5 and CSS3. In each module you will be asked to do the following:

    Watch video lectures

    The information has been broken down into pieces to help you learn the material in the smallest chunks that still give you enough information to do something with it. The goal is to give you the ability to listen to these during any time you have. You will find that some of the videos have material that makes sense to you immediately. Sometimes you may want to replay other videos to clarify the material. Some of the videos are not traditional lectures, instead they are videos where I demonstrate the concepts from an earlier lecture. I highly recommend that you code along with me while you watch these videos. The key to success in this course is in writing code. I put these videos in so that you have something specific to practice. It is also a great way for you to see how often I mess up when I am coding!!

    Change the video speed to one that works best for you

    You may find that you can speed the videos up and still retain the information. On the other hand, my mom is always telling me I talk too quickly so you may want to slow the videos down. The important thing is to find something that works well for you. Use the in-­video quizzes to help you gauge how your learning is going.

    Read extra materials

    Each module will include reading material. It is impossible to learn everything you need to learn just by listening to the lectures. I provide some of the written material directly in Coursera. At times I will link to additional free, online resources.


    Each module will include a graded quiz and/or a coding assignment. The quizzes are intended to reinforce your confidence in the material, not "trick" you. As often as possible each question will be linked to a specific lecture or reading. You can take the quizzes as many times as you like, but there is a limit on how many times you can take each quiz in a certain time period. The coding projects generally expand upon an example covered in a lecture. You will need to provide some of the code yourself. These assignments will be peer-graded. Why? Because there are so many different ways to write the code that it is not possible to write a grader that can capture each possibility.

    Optional materials

    There will also be optional material provided in many of the modules. These may range from links to recent articles to videos on pioneers in the fields of design and accessibility. None of these materials will be required for the quizzes, but rather provide additional ways for you to branch out and learn more about the history of the field or the emerging ideas.

    "Passing" the course

    Learners must pass every graded assessment to pass the course, regardless of their final grade. A passing grade for each of the quizzes is 80%. A passing grade for each of the assignments is 70%.