CIS 197: JavaScript (Spring 2019)

Last updated: January 29, 2019

Course Description

This course meets Wednesdays from 12:00pm to 1:30pm. Location Towne 309.

This course provides an introduction to modern JavaScript: frameworks, design patterns, techniques, and best practices used to create robust applications both server-side and client-side. The emphasis will be on sampling a wide range of JavaScript use cases. The topics covered will include:

  • JavaScript language
  • Web browser internals, the Document Object Model (DOM), jQuery, HTTP requests
  • Webkit developer tools & JS debugging
  • MV* frameworks (ReactJS)
  • Client-side app architecture, modular JS development & best practices
  • Server-side app architecture (with ExpressJS), middleware, and RESTful API design

This course is most useful for students who have some programming and web development experience and want to develop moderate JavaScript skills to be able to build complex, interactive applications.


  • CIS 120 or equivalent (or permission of instructor).
  • Some knowledge of HTML/CSS (if you don't meet this requirement, you are expected to pick up the basics on your own with online resources like Codecademy and Mozilla Developer Network).


Homework will be graded out of 25 points: 15 for correctness (automatically graded), 5 for JavaScript best practices (automatically graded), and 5 for code style (manually graded). Grading will follow the style guide for the course - please ask on Piazza if you have a specific question that is not covered here.

Please note that the code style grade is additive, not subtractive; if you do not complete a homework, you will not receive 5 style points for ‘making no errors,’ but rather 0 style points for writing no code at all.

You have two free late days to use throughout the course. After this, late submissions will be docked 20% for every day late. Additional extensions will only be granted in truly extenuating circumstances.

If a submission doesn't run (i.e. has syntax errors), we will not be lenient -- you will likely receive zero credit. Please start assignments early and use office hours to your advantage.

See the course syllabus for more detailed policies and grading info.