Fall 2020 


CIS-255: Client Side Web Application Development

Summary | Location | Hours | CommunicationCourse DescriptionTextbooks | Topics | Lecture Schedule | Technologies | Assignments | Grades | Policies | Statements | Social Distancing Notice | Checklist  



This hybrid course can be taken 100% online, if necessary. Lectures are delivered online and "live" (synchronous), so students must log in to MS-Teams to attend class on time. Maybe some lectures might be delivered in-person face-to-face on-campus. If so, these lectures will be "live streamed" so both in-person and online students can participate in class together at the same time. 

  • Classroom location:
    • MS-Teams (online: required). Students must take most or all of this course online. 
    • SE-135 (in-person: optional, restricted). Because the number of students in this class exceeds restricted classroom capacity, on-campus classroom access (if any) will be rationed by the professor. See Canvas | Announcements to keep up to date on classroom availability. 
  • Office hours location: MS-Teams (online only).


* No lecture in classroom SE-135 unless announced in Canvas | Announcements.
 Time  Sun  Mon  Tue  Wed  Thu  Fri  Sat
 8:30 am CIS‑255-70 
10:30 am        
 11:30 am Office hours (MS-Teams) Office hours (MS-Teams) Office hours (MS-Teams) Office hours (MS-Teams)
 12:30 pm CIS-255-701 
  • Class hours:
    • Section 70 (hybrid): 8:30 am - 10:20 am, Tuesdays only (MS-Teams, maybe SE-135)
    • Section 701 (hybrid): 12:30 pm - 2:20 pm, Mondays/Wednesdays (MS-Teams, maybe SE-135)
  • Office hours:
    • 11:30 am - 12:30 pm: Mondays/Tuesdays/Wednesdays/Thursdays (MS-Teams ONLY)
    • By appointment: If you cannot or will not meet during scheduled office hours, then send a Canvas Inbox message to schedule an appointment for a different time.
    • Post technical questions to Canvas | Discussions prior to attending office hours.
  • Homework hours: about 8 hours per week. The US Department of Education requires that "...there is an amount of student work for a credit hour that reasonably approximates not less than one hour of class and two hours of out-of-class student work per week over a semester for a semester hour...". Since this is a 4-credit course, students should spend about 4 hours per week in class (or watching video lectures) plus about 8 hours per week doing homework, for a total of 12 hours per week.
  • Sleep, rest, relaxation hours: Budget time for a good night's sleep. You're gonna need it.


  • Use MS-Teams to access "live" lectures, recorded videos, office hours.
  • Use Canvas for most everything else.
    • Canvas | Files: access lecture slides, readings, other course materials.
    • Canvas | Assignments: submit coding work.
    • Canvas | Quizzes: take online exams. 
    • Canvas | Inbox: ask questions about grades.
    • Canvas | Discussions: ask technical "debugging" questions.
      • Before posting a question, use HTML validator, CSS validator, JSLint, etc. to identify the easy bugs, and check to see if your question has already been answered.
      • When you post, always include a link to the broken website or CodePen
      • Professor will respond in one business day.
      • Students can post answers, too. If you know an answer, post it.
  • Emergencies: Use text message: 989.780.3168. Use mobile phone text messaging as a backup of last resort in emergencies, such as being unable to access Canvas during an online quiz. Note: If you are having trouble turning in your assignment after midnight the day it's due, that's NOT an emergency!
    • Discussion board: If you do not see answers posted in one business day to questions posted on the discussion board, you can use text messaging in that case, too. To be clear: After you have posted your question on the discussion board, and if I have not responded on the discussion board within one business day, then, and only then, go ahead and send me a text message
    • Backup: In the unlikely event that MS-Teams AND Canvas go down, visit www.cis255.com.
  • Avoid email and land line phone. Course-related messages stay better organized in Canvas | Inbox. If you send an email it gets mixed in with lots of other messages so it can be hard to locate later, especially if the subject line does not include the course number. So never send an email about your grade! However, it's certainly okay to use email, gpcorser@svsu.edu, or office land line phone, 989.964.2756, if a message is not urgent and/or not course-related.



Course Description

“This course focuses on web design and the client side of web application development. Topics include XHTML, Cascading Style Sheets (CSS), the Document Object Model, creating dynamic content and architecture, and building/deploying web pages and web sites. A large portion of the class is spent on examining the ECMA/JavaScript client side scripting language. Current topics of interest such as Web 2.0 and AJAX are explored. An introduction to using both commercial and open source web development tools is also provided.” (Source: SVSU Course Catalog.)


  • Required
    • EqJs: Haverbeke, M. (2014). Eloquent JavaScript: A modern introduction to programming. No Starch Press. Cost: FREE. Website: www.eloquentjavascript.net
    • w3: Data, R. (2008). w3schools online web tutorials. Online Document available on: http://www. w3schools. com, Last visited: 23rd July. Cost: FREE. Website: w3schools.com.
  • Recommended
    • Crockford, D. (2018). How JavaScript Works. Virgule-Solidus. 
    • Connolly, R. (2017). Fundamentals of web development, 2nd edition. Pearson Education. 
    • Connolly, R. (2015). Fundamentals of web development. Pearson Education. 
    • Zakas, N. C. (2014). The principles of object-oriented JavaScript. No Starch Press. 
    • Crockford, D. (2008). JavaScript: the good parts. O'Reilly Media. 


  1. Documents: HTML, Hosting, Git/GitHub, FTP, SSH, File Editors, Passwords
  2. Styles: CSS, Bootstrap, Builders
  3. Procedures: JavaScript Basics, DOM, Events
  4. Objects: ES5, ES6, JSON, Serialization, Local Storage
  5. Libraries: AJAX, APIs, Chart.js, Covid19api
  6. Frameworks: jQuery, Angular, Single Page Applications (SPAs) 
  7. Trends: React, Progressive Web Apps (PWAs), Social Media, Security, Emerging Technologies

Lecture Schedule

Module Week Lecture Topics Homework
1. Documents 8/31 1 Course Intro/Syllabus,
TAKE: QUIZ 00, WATCH: The Internet and The Web
2 ASSIGNMENT 01 INSTRUCTIONS, Hosting, Files, Editors, FTP, SSH, Anonymous Accounts TEST: MS-Teams Features, WATCH: Security, Privacy, and Passwords
9/07 3 HTML Basics, Forms, Tables, Generators WATCH: Special Symbols and FontAwesome, READ: HTML Tutorial (w3)
4 Chrome DevTools, Debugging, Validators, Comments, Indentation, Prettification, Special Tags ASSIGNMENT 01
2. Styles 9/14 5 QUIZ 01
WATCH: Builders, Blogs, READ: CSS, Bootstrap Tutorials (w3)
6 CSS Basics, Specificity, Debugging, Validators WATCH: Mobile First, Responsive Design, Media Queries
9/21 7 Images, Advanced Selectors, Positioning, Box Model, Diagrams WATCH: Comments, Generators
8 Bootstrap Basics, Grid System, Classes, Forms, Tables, Templates ASSIGNMENT 02
3. Procedures 9/28 9 QUIZ 02
WATCH: Arrow Functions, READ: JavaScript Tutorials JS HTML DOM and JS JSON (w3), ch. 1, 2, and 3 (EqJs)
10 JavaScript Basics, Data Types, Arrays, Functions, Scope WATCH: Debugging, console.log(), JSLint
10/05 11 Closures, Recursion, Modularization (Growing Functions) WATCH: Pure functions and side effects
12 Modifying the DOM, Events, Callbacks, Promises, JSON, Array Loops ASSIGNMENT 03,
See: CodePen template.
4. Objects 10/12 13 QUIZ 03
WATCH: Weresquirrel, READ: JavaScript Tutorial JS Objects (w3), ch. 4 (EqJs)
14 Properties, Methods, Objects, Mutability, Correlation None
10/19 15 Arrayology, Rest Parameters, Math Object, Destructuring None
16 Serialization, localStorage v. Session Storage, deep comparison exercise
See: GitHub template.
5. Libraries 10/26 17 QUIZ 04
READ: JavaScript Tutorials JS AJAX and JS Web APIs (w3), ch. 5 (EqJs)
18 AJAX, Chart,js, Covid 19 API None
11/02 19 Abstraction, Higher Order Functions, Script Dataset None
20 Composability, Character Codes ASSIGNMENT 05,
See: CodePen template.
6. Frameworks 11/09 21 QUIZ 05
READ: jQuery, Angular Tutorials (w3)
22 jQuery: Selectors, Events, Callbacks, Method Chaining None
11/16 23 jQuery: get(), set(), css(), Traversing, AJAX; Angular: Directives, Models, Data Binding, Controllers None
24 Angular: Scopes, DOM, Routing ASSIGNMENT 06,
See: GitHub template
7. Trends 11/23 25 QUIZ 06
READ: Progressive Web Apps (PWAs), PhoneGap
26 React: Render HTML, JSX, Components, Events, Forms  READ: React Tutorial (w3), Vue, TypeScript, WebAssembly articles
11/30 27 Smart Homes, Voice/Face Recognition, SEO, Social Media, Net Neutrality, Search Neutrality READ: IoT, Smart Cities, Autonomous Cars, AI, Big Data, Cloud Computing
28 Security, Privacy, Quantum Computing, Cryptocurrency READ: Phishing, Smishing, CORS, Same Origin Policy, Cross Site Scripting (XSS)
Wrap up 12/07 29 QUIZ 07 ASSIGNMENT 07
  30 Last Lecture, Top Student Prezis None
Finals Week 12/14 31 FINAL EXAM None




  • One INITIAL EXAM. Format identical to FINAL EXAM. Zero points, but extra credit possible. 
  • Seven programming Assignments, ten points each. 
  • Seven online Quizzes, ten points each. Quizzes cover lecture slides and readings.
  • One FINAL EXAM, covers only first five modules. Ten points possible. 
  • Total possible points: 150. 


Letter grade depends on percentage of points accumulated by student in the course.

B+ : 87-90 % C+ : 77-80 %
A  : 93+   % B  : 83-87 % C  : 70-77 % D  : 60-70 %
A- : 90-93 % B- : 80-83 % F  :  < 60 %


  • Attendance: sometimes required
    • In-person attendance is never required
    • Online attendance is required on quiz days. All quizzes are online, in Canvas. Quizzes open promptly at start of class period. Be on time!
    • Online lectures: In order to maximize flexibility to accommodate unpredictable social distancing rules, this course is designed in such a way that it can be taken 100% online. Most lectures will be "live" (synchronous) so students can ask questions and participate in exercises even though they may not be physically present in classroom. All lectures are recorded, so attendance is optional.
    • On-campus lectures: Some lectures might be held in-person, depending on SVSU guidelines and public health considerations. On-campus lectures, if any, will be simulcast using MS-Teams. All lectures are recorded. On-campus lectures, if any, will be immediately dismissed if even one person fails to comply with regulations, such as face mask and classroom capacity rules. 
    • Prerecorded lectures: Some lectures might be prerecorded. They will be available on MS-Teams, on Echo 360, or at a provided hyperlink.
  • Participation: optional
    • Be respectful. Participate only from appropriate environments. If you are in an inappropriate environment, turn your webcam off and mute your mic. If your dog suddenly starts barking, or the doorbell rings, excuse yourself and switch to text chat.
    • Be patient. If a fellow participant appears disrespectful, it might be unintentional.
    • Observe etiquette.
      • Webcam on means you are willing to be called on in class.
      • Webcam off means you are not participating, just observing.  
      • Mute your mic when you're not talking, even if your webcam is on. 
      • Remove inappropriate material from view of your webcam. 
      • Use text chat if you have no microphone or you might be in a noisy environment.  
  • Extensions for late work: none for quizzes, one week for assignments
    • No extensions on quizzes. Quizzes close promptly, and automatically, at end of class period. Answers are discussed soon thereafter, so it would be unfair to allow people to take a quiz late. However, in rare cases, a student may have a legitimate reason for missing a quiz or being late for a quiz. In such cases, on a case-by-case basis, that student may complete a special project in order to make up the points. Note: Special projects usually require about 10 hours of work, which usually exceeds the time required to study for and take a quiz. 
    • One week extension on programming assignments EXCEPT the LAST programming assignment. Programming assignments are due BEFORE midnight on quiz days EXCEPT for the LAST assignment, which absolutely must be submitted on time. 


Academic Integrity Statement: Cheating means submitting someone else’s work and claiming it was your own. Cheating also includes giving work for someone else to use in such a way. Unless otherwise stated explicitly in an assignment, students must do their work independently. University and departmental policies on academic dishonesty apply. Publicly-available sources for code or other material may be freely used if appropriately attributed. Similarly, code that is obtained from others must be appropriately attributed. However, using substantial amounts of code obtained from someone else will probably not yield full credit for the assignment. Students are responsible for protecting their files from access by others. Work that is essentially the same and submitted without proper attribution may be a violation of academic dishonesty policies by all those submitting the work, regardless of who actually did the work.

Punishment for cheating: First offense will be reported to university administration and will result in zeros for the offending assignment(s) for all parties involved. Second offense will also be reported to university administration, and will result in a failing grade for the entire course for all parties involved. The university may impose additional penalties.

Disability Statement: Students with disabilities who seek accommodations must make their request by Contacting the Office of Disability Services located at Curtiss 112, or call 964-7000. All accommodations must be approved by The Office of Disability Services. (Verbatim from: Disability Services Syllabus Statement.)

Nondiscrimination Statement: SVSU does not discriminate based on race, religion, color, gender, sexual orientation, national origin, age, physical impairment, disability or veteran status in the provision of education, employment and other services. (Verbatim from: Faculty Handbook.)

Sexual Misconduct Policy StatementThe Department of Computer Science & Information Systems will not tolerate any form of sexual misconduct. Students should feel free to report situations in which they have encountered any form of sexual misconduct which may range anywhere in the gamut of inappropriate comments/jokes to sexual assault. The SVSU Sexual Misconduct Policy is detailed at https://www.svsu.edu/titleix/. Violations of Title IX could result in SVSU potentially losing federal funding as well as other penalties. This matter is taken with the utmost seriousness. (Verbatim from: SVSU CSIS department memo.)

Syllabus Change Statement: This syllabus is subject to change if class needs warrant. (Verbatim from: Faculty Handbook.)

Social Distancing Notice

Preferences differ. Most students prefer in-person classes, but some prefer online. Most students are healthy and low-risk, but some students or their family members may be high-risk. That's why, rather than try to guess the best one-size-fits-all in-person attendance policy, this course leaves the in-person attendance decision to each individual course participant. 

  • For students who prefer in-person lectures: If SVSU permits in-person on-campus classes, and such classes can be conducted safely, then the professor will evaluate content to determine which lectures to present in-person. In-person lectures will be announced as such in Canvas, and attendance will be rationed. Please note: Even if all class sessions are 100% online, you will still be able to participate "live" in class, albeit online. 
  • For students who prefer online lectures: No student will ever be required to attend any class session in-person, but online students must attend class sessions on time and participate in class.

All students must decide whether to take this course EITHER 100% online OR partly in-person, depending on preferences regarding health risks, online/in-person learning models, mask/PPE requirements and social distancing policies. Consider:

All students must take this course at least partly online because:

  • All quizzes in this course are online only. 
  • Some lectures are prerecorded, available online only. 
  • All office hours are online only.
  • SVSU will close campus after Thanksgiving break, so all class sessions during final exam week and the last two weeks of this fall semester are online only. 
  • SVSU cut classroom capacities in half, so this full 30-person class cannot possibly fit into classroom SE-135, which is now a 15-person classroom

All students must be prepared to take this course 100% online because:

  • Someone who attended an in-person class, including the professor, might catch Covid-19. Since people are contagious before they exhibit symptoms, there may be no way to know who else might have Covid-19, so the only responsible action would be to move to 100% online format. 
  • Government officials might demand a complete campus shutdown on short notice, as occurred in the winter 2020 semester.
  • Public health authorities might change social distancing recommendations based on news of new outbreaks.
  • The professor at any time might decide health risks do not justify in-person teaching.
  • Someone may enter the classroom exhibiting symptoms and/or refusing to comply with health policies, such as wearing a mask, in which case the professor will immediately dismiss class. 



Course Preparation Checklist


 INTERNET: connection tested, working, reliable? 

  • Do I have a reliable internet connection that can handle streaming video?
  • Do I know what to do if internet service goes down?
  • Have I identified and tested a backup location or "hotspot" to connect to the Internet, in case my primary location fails?
  • If I don’t have a home internet connection, where will I access online course materials, participate in online activities, take online quizzes and perform other online work?


 HARDWARE: all components tested, working, reliable?

  • __ Monitor1   __ Headset    __ Webcam     __ Tablet
  • __ Monitor2   __ Mic        __ Printer    __ Smartphone
  • __ Scanner    __ Laptop     __ Desktop    __ Other: _______ 
  • Does my primary computer hardware work well?
  • Do I have a well-tested backup plan if my hardware breaks?
  • Mac users: do I know how to handle PC compatibility issues?


 SOFTWARE / WEB ACCOUNTS: all software installed, tested, web accounts created? 

  • __ Canvas     __ MS-Teams   __ CSIS Server  __ m-drive (v-drive)
  • __ GitHub     __ Google     __ CodePen      __ Heroku
  • Do I know what to do if software/website fails?
  • Do I know how to install/use course software?
  • Do I know how to create/update Canvas discussion boards?
  • Have I  set proper Notifications in Canvas and MS-Teams?


 WORK / STUDY / SLEEP LOCATION: appropriate?

  • Is my online environment respectful my fellow students? Are there personal, private or offensive materials in view behind my webcam? Do I plan on participating in lectures using a mobile phone, and if so, have I ensured that there will be no background noise (horns honking, dogs barking, toilets flushing, children crying, etc.)?  
  • Have I identified a backup location to conduct two-way audio/video communication, such as office hours chat and online lecture participation?
  • Do I have a quiet, appropriate, reliable location to study, read and do homework?
  • Do I have a quiet, appropriate, reliable location to sleep/rest?