Syllabus

Instructor Info

Zerksis D. Umrigar
Zoom Link: <https://binghamton.zoom.us/my/umrigar>
Zoom Office Hours: Tue, Thu: 2:05 - 3:05p, or by appointment
Email: umrigar+cs544@binghamton.edu

  • Do not use the generic umrigar@bing... email address; always use the course specific umrigar+cs544@bing... email address.

  • I will always try to reply to email within 24 hours (often much sooner). To ensure prompt attention, alway use the +cs544 email address.

Zoom Classes

  • I usually attempt to have your mic muted when you join the class, but you can unmute at any time.

  • Please feel free to interrupt at any time with questions. You can do so using your mic or a chat window I should have open. I prefer the former as it is more interactive.

  • I record each class session and publish links to the video recordings available in the misc directory, usually by the next day.

  • Please feel free to let me know if I forget to start recording or am making any other technology mistakes.

  • Usually at the start of class or after an interruption, I will ask you if you can hear me. Please respond using your mic as that lets me know everything is working okay on my end.

  • If there is a technology problem on my end during class, I will try to restart the meeting ASAP. I will try to send out an email to the course mailing list if the problem looks like it may take more than a couple of minutes to resolve.

Zoom Office Hours

  • Office hours will be set up with a waiting room; i.e. students can feel free to share their work with me.

  • If I feel that what is being discussed is of general interest and there are students in the waiting room, I may go ahead and let them in.

  • If there are no other students in the zoom meeting room, I may not notice your arrival right away. Please say something to grab my attention and give me a couple of minutes to respond.

Course Schedule

  • Classes will meet online on Tuesday and Thursday from 11:30 A.M. to 2:00 P.M. from May 30 to Aug 10. Online attendance is required.

  • There will be no classes the week of July 4; i.e. no classes on Tuesday, July 4th and Thursday July 6th.

  • The midterm will be held using one-on-one technical oral discussions during 20 minute slots on Wednesdays, 11:30 A.M. - 2:00 P.M. starting Wednesday, July 12. A sign-up sheet will be made available shortly.

  • The final will be held online during class time on Thursday, August 10th.

Graders

  • The course graders are responsible for all grading (except for the oral midterm and pop quizzes).

  • All questions regarding the grading of an assignment should first be addressed to the grader.

  • Usually, I will backup a grader's grading decision unless there is a clear mistake.

Homework and Final Grading

Lathish Polavaram
Zoom Link: zoom
Office Hours: Thu 3:30p - 4:30p
Email: plathis1@binghamton.edu
Github ID: plathis1
Grading Responsibilities: All homework + final.

Project Grading

Shubham Singh
Zoom Link: zoom
Office Hours: Tue 3:30p - 4:30p
Email: ssing163@binghamton.edu
Github ID: denyshubh
Grading Responsibilities: All projects.

Recommended Text

The course will make heavy use of online resources, but the following book is strongly recommended:

David Flanagan, JavaScript: The Definitive Guide, 7th Edition, O'Reilly, 2020.

Evaluation

      Pop Quizzes (lowest dropped):  11%
      Projects (lowest dropped)      35%
      Homework (lowest dropped)      14%
      Oral Midterm:                  30%
      Final:                         10%
      Extra Credit:		     up to +3%
      Attendance:                    up to -16%

Assignment of Final Letter Grades

  • Letter grades will be assigned strictly monotonically based on the numeric course grade.

  • A letter grade of A will be given only for consistent superior work.

  • You will get an F only if you miss turning in a lot of work or submit consistently very poor quality work.

  • Letter grade cutoffs will be determined largely based on input from graders.

  • The cutoffs will not be published. This avoids issues caused by some students requesting regrading if they feel they just missed a cutoff.

  • If you have an issue with the grading of a particular assignment, it is imperative that you see the grader before the final exam.

  • All letter grades are final unless there is some kind of clerical error. Do not send emails requesting a different letter grade unless there has been a clerical error.

  • Details for Course Grading are available.

Pop Quizzes

  • Pop quizzes will be held online.

  • Will be given via a personal home page accessed via a Login link on the course web site (will be set up shortly after the add/drop deadline).

  • A quiz will usually have 5 questions with 2 points per question + 1 point for attempting the quiz.

  • Pop quizzes serve as a proxy for class attendance.

  • A pop quiz must be started within three minutes of it being announced. If you are having technical issues, please let me know.

  • If you have a legitimate reason for being unable to attend a class you must email me before the class. If there is a quiz that day, you will be allowed to make it up later.

  • Quizzes will be multiple choice, usually based on random Exercises published on the course website.

  • Quizzes are open-book, open-notes, open-web. Not permissible to collaborate with any person.

Projects

Usually 5 projects, some of which will build on each other.

  1. Basic server side program.

  2. Server side program using a database.

  3. Expose server side code using web services.

  4. Access web services in browser to display a simple app using standard browser facilities.

  5. Access web services in browser to display a simple app using a frontend framework like React or Vue.

Homework

4-5 homework assignments:

  • Some questions will be simple exercises based on what was covered in class.

  • Some questions will require original thinking.

  • Some questions will require using external resources like the web.

Midterm

  • Oral one-on-one technical discussions in 20 minute time slots on Wednesdays after summer break.

  • Will seed discussions using different starting questions for different students.

  • Subjective quantized grades:

          Mastery:   100%
          Excellent:  90%
          Decent:     80%
          Okay:       70%
          Poor:       55%
          Very bad:   30%
          Total fail: 20%
          No show:     0%
    
  • Sign-up sheet will be available shortly.

  • Will require student to have camera turned on.

  • More details before the summer break.

Final

  • Will be given via a personal home page accessed via a Login link on the course web site (will be set up shortly).

  • Each student will receive a personalized exam with random variations of questions in a random order.

  • Questions will be "essay type " and will need to be submitted using brightspace.

  • Will be held during the last scheduled class on August 10th.

  • Grossly exceeding the allotted time will result in substantial undisclosed penalties.

  • Difficult but not impossible to cheat.

  • Basically on a honor system.

  • If you successfully cheat you will really be cheating yourself and damaging your self worth.

  • If cheating is detected, then action will be taken.

Attendance

  • During some random classes, I will take attendance of some random selection of students. This may be done multiple times within a single class.

  • Students must respond using chat (using their correct zoom IDs).

  • You may have up to one unexcused absence without any penalty in the semester.

  • You will loose 1 point for the second unexcused absence.

  • You will loose 3 points for each subsequent unexcused absence up to a maximum of -16 points.

  • An absence will be excused if you send me an email before class giving me a reason for the absence. I may require documentation for the reason.

Extra Credit

Up to 3 extra points can be added to your overall total by contributing to a major open source project relevant to this course:

  • Documentation typo fix: 0.5 points.

  • Documentation update: 1 point.

  • Code update: 1-3 points.

In order to obtain the extra credit:

  • Verify whether the open source project and proposed changes qualify by sending me a brief email.

  • Send me a link to the pull request or any relevant emails which prove that your contribution was accepted.

  • The contribution must be made during this semester before the last week of class.

Extra credit may also be awarded to students who submitted work which went way beyond what was expected. This will be initiated by us; if you ask for it, you probably do not qualify.

Academic Honesty

As per the course Academic Honesty Policy cheating of any type will be penalized heavily.

  • Minimal penalty: zero on assignment and letter grade dropped by one slot: i.e. an A becomes an A-, a B- becomes a C+, etc. You will also need to sign a Watson college document which will be added to your file.

  • Permissible to collaborate to understand course material, homework questions or project assignments. Not permissible to discuss solutions.

    • If you feel you may have inadvertently crossed the line, then let us know; will not be considered cheating.

    • If submitting an assignment late after the solution has been posted, you should obviously not be looking at the solution.

  • All registered students must sign and complete an Academic Honesty Statement.

Late Submission Policy

  • You are allowed to submit projects and homework late by up to 3 days.

  • You may not use more than 7 late days over all assignments over the entire semester.

  • A day will count as 24 hours, irrespective of holidays or weekends.

  • Late submissions will not be accepted for some assignments, especially towards the end of the semester.

Course Web Site

  • All course material on course web site at <http://zdu.binghamton.edu/cs544>.

  • Course web site mirrored at <http://cs.binghamton.edu/~umrigar/cs544>. Dynamic portions of the web site will not be mirror'd.

  • Website password protected against bots. You will be provided the user-id and password via brightspace or email.

  • Slides usually available an hour before class. Slides may be updated up to one week after class to fix mistakes or make enhancements.

  • Course web site available via git repository at ssh://user@remote.cs.binghamton.edu/~umrigar/git-repos/cs544.git. Useful for tracking changes.

Course Mailing List

  • All students registered for the course should have been subscribed to the CS544 mailing list at cs544@cs.binghamton.edu.

  • Feel free to use the mailing list for general discussion/questions relevant to the course.

  • DO NOT use the mailing list to send emails to me specific to your personal situation. Use umrigar+cs544@binghamton.edu instead.

Classes

  • To accomodate students having excused absences, all class recordings of the zoom sessions will be made available on thea course website.

Catalog Description

An in-depth understanding of programming for the World Wide Web: detailed coverage of widely used language(s) for web programming, asynchronous programming, principles of web architecture, web protocols, web design patterns, client-side programming, templating, server-side programming, a technical history of the web, web security. Students are expected to have experience with a modern programming language and will be assigned programming projects using current state-of-the-art web technologies.

General Prerequisites: Proficiency in programming, with at least some exposure to object-oriented programming.

CS 444 Prerequisites: CS 320 or CS 350 or CS 375.

Around 9 hours of work expected outside class each week.

Objectives

After successful completions of this course, students should expect to:

  • Have had exposure to some of the intricacies of JavaScript and TypeScript.

  • Understand asynchronous programming.

  • Have a solid grasp of the basic technology powering the World Wide Web.

  • Have experience developing RESTful web services.

  • Use modern client side technologies for consuming the web services.

  • Experience in implementing programming projects of medium complexity.

Some Topics

  • Javascript and TypeScript: 4-5 weeks.

  • Asynchronous programming.

  • HTTP protocol.

  • Web architecture, Representational State Transfer (REST).

  • Web services.

  • Browser technologies.

Will build out from server to browser.

Less Emphasis

  • HTML

  • CSS (will only cover CSS selectors).

  • Particular web frameworks (we will cover some frameworks relatively superficially).

No Coverage

  • Portable code which runs across multiple browsers/platforms. We will simply target stable versions of nodejs and chrome.

  • Device-specific capabilities.

Virtual Machines

  • Each student will be assigned a Linux-based virtual machine which can be used for course projects and other related work.

  • Each VM comes preinstalled with all the software needed for the course. If you prefer to use your own computing environment, a list of installed software is available. However, it is your responsibility to ensure that submitted code runs within your VM environment.

  • Each student has sudo access to their VM. This makes it possible for the student to install any other required software.

  • Imperative that students set up GUI access to their VM as that will be needed for subsequent projects. The recommended software is x2go.

Problems

  • If you are having problems, please see me ASAP; do not wait till the end of the semester.

  • Flexible regarding deadlines under exceptional circumstances.

  • If you are experiencing undue personal or academic stress at any time during the semester or need to talk with someone about a personal problem or situation, I encourage you to seek support as soon as possible. I am available to talk with you about stresses related to your work in my class.

Contact Info for Help

Dean of Students Office

607-777-2804

Decker Student Health Services Center

607-777-2221

University Police

On campus emergency, 911

University Counseling Center

607-777-2772

Interpersonal Violence Prevention

607-777-3062

Harpur Advising

607-777-6305

Office of International Student & Scholar Services

607-777-2510

University Ombudsman

Main campus: 607-777-2388; University Downtown Center office 607-777-2388

Services for Students with Disabilities

607-777-2686 (Voice, TTY)