Mercyhurst UniversityMath DeptDr Williams Home

MIS 370 Client Side Programming


Course Information

Meeting Times: Tuesday/Thursday, 9:30 - 11:10 am
Location: Main Lab
Office Hours: Monday 9-10 and 1-2, Tuesday 11:30-12:30, Wednesday 11-11:45, Thursday 8:30-9:15, Friday 9-11
Prerequisite: MIS 180 Intro to Internet Programming

Course Description

In this course, students will learn the fundamentals of client-side web programming, creating programs executed by the web browser to make dynamic and interactive web pages. Separation of content, presentation, and behavior will be a major theme of the course, along with a review of object oriented programming. JavaScript will be the language of choice, and much of the course will be focused on its basics. Topics will include statements and commands, data types and variables, arrays, strings, functions, and programming logic. Later in the course, we will experiment with modern JavaScript frameworks, libraries, and APIs.

Objectives

Upon completion of this course students should be able to:

Required Materials

Textbook
There is no textbook required for this course. Rather than purchase a book that will be obsolete in a matter of months, you are encouraged to find answers to questions about syntax, best practices, and more from the wealth of reputable and updated sources on the web. Use caution: many JavaScript tutorials and sites are long out of date, and should not be used as a reference for modern web development. The sites below are highly recommended:
  • Mozilla Developer's Network
    " Mozilla Developer's Network site dedicated to all things JavaScript. Includes well written tutorials at a variety of levels, covering nearly every concept in JavaScript programming. Also includes detailed reference pages on functions, objects, statements, expressions, and more.
  • javascript.com
    Features a Learn JavaScript section with simple examples, a Resources section with links to recommended JavaScript courses around the web, and a News section with posts and updates from the community of JavaScript developers.
  • W3 Schools
    Includes some documentation and many examples of important JavaScript concepts. Allows you to experiment with code samples to better understand how it works. Some material may be outdated, so use with caution.
Computer Access
A computer and internet access will be required to complete and submit assignments. The lab machines are available according to the schedules posted on the lab door if you do not own a computer. If you do own a laptop, you are welcome to use it in lieu of the lab machines during class. Any internet connected machine running Windows, Linux, or Mac OS is fine. Chromebooks are not recommended.
Server Account
All assignments and projects must be uploaded to your directory on our department's server. If you have taken MIS 280 on the Erie campus, you already have an account. If you do not have an account, or no longer remember your password, please inquire about getting an account within the first week of the semester.
Software
You will need at least two pieces of software: one to access your directory on the server, and another to write your code. While premium software is available to accomplish these tasks, there is an abundance of free software that can handle more than you will need for this course.

To access your server account and transfer files to and from your directory, you will need an SCP or FTP client. A few suggestions are below, but you are free to use any program you like.
  • WinSCP
    This client is installed on the lab machines and is recommended for Windows users (not available for Mac or Linux). Free and open source.
  • Filezilla Client
    Can be installed on Windows, Mac, or Linux. Free and open source version is recommended. There is a Pro version that does not have any features we would use in this class.
To write and edit your code, you will only need a text editor, though you may prefer something more robust with helpful features like color highlighting, line numbering, code completion, etc. There are too many to list, but we will discuss recommendations in class.

Homework

Throughout the semester, you will be given brief assignments based on class topics. Some of these assignments will not be collected, but you are still expected to be familiar with the techniques necessary to complete them. If an assignment is collected for a grade, you will generally have one week to complete your assignment.

All assignments and projects must be uploaded to your public html directory on the department server by the assignment due date. Projects submitted via email or other means will not be accepted. Using the server is recommended while developing your projects, as you are far less likely to lose your work. It is also the fastest way for me to assist with projects as you work.

Projects will be based on JavaScript, not HTML or CSS. You will not be held responsible for reflexive design, the use of advanced frameworks, or styling options unless specified, though your assignment grades will reflect the overall effort put into all aspects of web development. Best practices for all languages used should be observed. Your work will be expected to follow standard guidelines for HTML, CSS, JavaScript, and any supporting libraries or frameworks. This includes proper indentation, variable declaration, commenting, and safe coding techniques. This will be an increasingly important consideration in your assignment grades throughout the semester.

A basis for each project's grade will be provided with the project description. You should take this criteria into account when developing your work, and note that the requirements may differ from one project to the next. It is expected that you follow the style and best practices guide for all assignments.

Part of most project grades (about 15%) will be based on the overall level of effort put into it. Generally, a grade of B+ or A indicates that you have gone beyond the minimum requirements and have produced truly outstanding work.

All files related to your assignment must be located within your public directory by the time and date indicated on the assignment. If all or part of your assignment is not received by this deadline, you may still submit your work, with a penalty. Work received within 24 hours of the due time will receive an automatic 15% deduction. Work received 24-48 hours after the due time will receive a 30% deduction. Work received more than 48 hours after the deadline will not be accepted.

Before beginning any work in this course, please review the collaboration guidelines.

Exams

There will be two midterm exams in addition to a cumulative final exam. There are no make up exams, though you may arrange to take an exam early if you know if advance you will not be able to attend class for a scheduled exam. If you miss an exam, that exam grade will be replaced by the final exam grade (your final exam would then be worth 40% of your final grade).
Exam Dates
  • Thursday, March 1
  • Tuesday, April 17
  • Final Exam: Thursday, May 10, 8:00 - 10:00

Final Grades

Your final grade will be calculated as follows: Your letter grade will be determined according to the department grading scale:
FDD+CC+BB+A
0-5960-6667-6970-7677-7980-8687-8990-100

Other Course Policies

Attendance and Work Expectations
  • Attendance is not part of your grade, but you are encouraged to attend class as often as possible. Many of the examples we go over in class on will be useful when working on homework.
  • Most of the examples from our class meetings will be available on the course website, as are all assignments. If you miss class for any reason, it is your responsibility to check these resources for what you may have missed, and to ask a classmate if you missed any announcements in class. Please do not send an email with the question "what did I miss?" or worse, "did we do anything important today?".
  • Since this is a 4 credit course, you should expect to spend approximately 8-12 hours per week on homework and studying, in addition to time in class.
Assignments and Help
  • You will be largely responsible for the prerequisite material for this course. It is expected that you are familiar with working on the server, creating and publishing HTML files, and styling websites with CSS. If you do not have a strong background in internet programming, there are many online resources and textbooks that may be of assistance.
  • I am happy to help with questions related to assignment requirements, but you will be largely on your own when working on ``extra features'' such as CSS or the use of other libraries.
  • All assignments must be uploaded to the server in the required directory. I will not accept assignments as email attachments or via BlackBoard.
  • If you have a question about your assignment and cannot come to office hours, please upload your work to the server and send me a link to what you have so far. Be specific in what you are asking; include any errors and/or a description of the problem.
  • Programming questions may be answered with a suggestion for a helpful resource, such as a link to a page on the Mozilla Developer's Network site with relevant information. Being able to quickly find answers to syntax questions is an important part of being a developer, and I will encourage you to use relevant and trustworthy sources.
  • It is assumed that you have read the course Style and Best Practices Guide as well as the Collaboration Guidelines. Ignorance of a policy is not an excuse - please review these materials before beginning any work on assignments.
Email
  • Email is best for simple questions. Please come to my office hours for in depth help with assignments or other concerns.
  • For the best chance of a reply, use your Mercyhurst email account. You are also expected to check this account regularly.
  • Many of the answers to "frequently asked questions" are available on the course website or in this syllabus. If you have a question about the schedule, grading, or other issues pertaining to the course, please check these sources first.
  • DO NOT send email with homework questions the morning the homework is due. I will not have an opportunity to respond in time. If you have a last minute question, come to office hours for the best chance of getting help. I will expect that the majority of the work is complete in these cases.
  • Please allow at least 24 hours for an email reply, particularly one that requires more than a simple answer. Occasionally, notes get buried, lost, or never make it to my inbox. If you do not hear back from me after 24 hours, please send a reminder.

Resources

MDN - JavaScript
Mozilla Developer Network's JavaScript resource. Excellent free source for JavaScript.

Google's JavaScript Style Guide
Write code that is easier to read and correct.

JavaScripting
Massive list of JavaScript libraries, sorted by category.

jQuery
DOM manipulation made easy, thanks to this powerful JS library.

D3
A JS library for Data Driven Documents. Has a steep learning curve, but produces incredible interactive graphics.

repl.it
Practice your JavaScript code in your browser.

Liveweave
JS, CSS, and HTML playground in your browser.

Learning Differences

In keeping with college policy, any student with a disability who needs academic accommodations must call Learning Differences Program secretary at 824-3017, to arrange a confidential appointment with the director of the Learning Differences Program during the first week of classes.