Course Syllabus

Last updated: February 01, 2020

CIS 197: Intro to JavaScript

Course Description

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. Topics covered will include:

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

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 permission of instructor)
  • Basic knowledge of creating web pages with HTML/CSS (not Dreamweaver, Flash, etc). If this prerequisite is not met, a student can quickly pick up the basics with online resources (like Mozilla Developer Network and Codecademy) or seek further advice from the instructor.

Reading (recommended)


See the course website for the lecture schedule and assignment list.

This is a project-based course featuring 7 assignments and a heavily-weighted overall final project. The final project may be created with the framework of the student's choice and should demonstrate 20+ hours of work (more information will be available near the end of the semester).

Each assignment is due at midnight on the assigned day (unless otherwise specified). 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.

Grading: Your submissions will be graded out of 25 points: 15 for program correctness (automatically graded), 5 for JavaScript best practices (automatically graded), and 5 for code style (manually graded).

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.

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.

Academic Integrity: You may reference and use example code online if it is freely available (open source). You may have high-level discussions about assignments (“What are the project specifications?”) and low-level discussions about JavaScript (“what’s the syntax for X?”) with classmates. Please do not plagiarize or have “mid-level” discussions about assignments – when in doubt, ask. No violations of academic integrity will be tolerated; you will at least receive a zero on the assignment in question, and at worst the issue will be elevated to the Office of Student Conduct.

Regrade Requests

Regrade requests can be submitted via Gradescope up to one week after your grade for that assignment is released. Regrades are handled on a case-by-case basis. You cannot change code or alter your submission once it has been graded. Rather regrade requests are only over a lack of clarity of consistency in test cases or rubrics.

Grade Weighting

  • 70% Homework
  • 25% Final Project
  • 5% Class Participation