We'll use a range of online resources during this course. These include:

  • Discussion Form: A class discussion forum has been created at Piazza. We'll use this to discuss assignments, ask and answer questions, and post announcements. But don't just read and post questions! Please help answer your peers' questions, and I will attempt to provide help via the same forum so that we can all learn from each other. Our forum is available via the following link: http://piazza.com/unc/fall2023/inls641
  • D3 Visualization Library: The D3 javascript library's website is http://d3js.org/
  • D3 Examples: The author of D3, Mike Bostock, has a large collection of examples that are a valuable learning resource. Recent examples are posted at https://observablehq.com/@d3/. You can also find examples specifically developed for this class on at http://lessons.vaclab.unc.edu/.
  • Simple Statistics Library: The Simple Statistics javascript library includes some easy-to-use functions to calculate descriptive statistics, as well as perform basic regression or classification. Read more at http://simplestatistics.org/

For students comfortable developing web applications with rich server-side functionality, a variety of more sophisticated software packages are available. Perhaps most valuable are the Python packages NumPy, SciPy, and scikit-learn. These would need to be paired with a web application framework such as flask. Note that these Python-based libraries are beyond the scope of this class and are purely optional for those that wish to use them for semester projects.



Some of your assignments and your semester project will be take the form of interactive web sites. As part of turning in your assignments, you will need to post your work to the web at a URL that is accessible by the instructor. You can use any web server to which you have access to post your work.

However, I suggest using UNC's services provided by SILS. They are maintained by staff who can help answer questions and fix problems. In particular, you can use your onyen to access the SILS server opal.ils.unc.edu. All SILS students already an account on opal, and all officially registered non-SILS students should have had a temporary account created by SILS IT staff. For more information, read the documentation provided by SILS IT. If you need assistance, you can contact the SILS IT Help Desk.

Many assignments will require (at a minimum) some HTML and JavaScript coding. You are free to be more ambitious when appropriate, pulling in additional technologies where you think it will help.

For HTML and JavaScript, source code can be written in any text editor you choose (Notepad, TextEdit, vi, emacs, etc.). However, there are specialized software programs available for free that provide more advanced capabilities like syntax highlighting, validation, and more.

I personally use a full-fledged IDE for most of my work. One very high quality IDE for web programming in JavaScript is WebStorm from the company JetBrains. They offer free licenses to students, but you need to sign up using your unc.edu email address. Luckily, the download lets you use it for free for 30 days, giving you plenty of time to get your free student license activated. Another alternative popular with coders is the free VS Code from Microsoft.

Again, you are free to use any editor you wish. However, I will be using WebStorm in class: it's free, has professional-grade features, works on both Windows and Mac computers, and is part of a suite of powerful software development tools from JetBrains. It's my top recommendation.

All assignments will be graded based on how they work in Google's Chrome Web Browser (available free on all major operating systems). You should use this browser for all of your work related to this class. Chrome includes a powerful set of Developer Tools, including a console and debugger, which will be incredibly valuable. Other browsers have similar tools, but only Google Chrome's Developer Tools will be supported in this class. Using any other browser and tool suite is fine, but beware that grading and help will be limited to Google Chrome.

Have questions? Please ask!