client programming (ISTE-340)
spring semester 2014 (2145)

instructor
& meeting
times
Dan Bogaard
primary e-mail: Dan.Bogaard@rit.edu
office phone: 475-5231
office location: 70-2111
current schedule
Dan's office hours this quarter are: Mon/Wed 1-3

Section 340.01: Class meets Tues/Thurs, from 11:00-12:15, in 70-2620

Course
Description &
Prerequisites

The goals of this course is to explore the issues involved in the design and implementation of client-side programming – both web and desktop application based. Topics include standards, browser and Document Object Model manipulation issues, design and deployment of both Web-based and desktop-based clients targeting multiple browsers, operating systems, and platforms. Use of specific Application Programming Interfaces and libraries where appropriate. The course will focus in the design, development, and implementation of usable, effective clients and client interfaces, both desktop and mobile, using multiple technologies.

This course will explore the analysis, design, development, and implementation of client-side programming in the context of Internet technologies, mobile devices, Web-based client systems and desktop applications. Students will learn to design and build usable and effective interactive systems, clients, and interfaces. Key features addressed will include browser and platform compatibility, object reusability, bandwidth and communications issues, development environments, privacy and security, and related technologies and APIs. Programming is required.

  • a year programming sequence
  • GCCIS-ISTE-240 Web & Mobile II (409 for Quarters)
Prerequisite Skills
  • Design and construct a medium-scale static web site
  • Write computer programs incorporating:
    • Local and global variables used following generally accepted programming practices
    • Control Structures such as if, if-then-else, counted and conditional loops and nested control structures.
    • Good coding style such as commenting code, indenting code to show structure and choice of meaningful names.
    • Functions and/or Objects and Methods (OOP).
Topics
Covered
  • Appropriate programming languages
  • Document Object Model: namespaces & node manipulation
  • Client-side data persistence
  • Browser compatibility issues
  • AJAX
  • Client libraries & frameworks
  • Producing and consuming JSON & XML data
  • Regular expressions basics
  • Client development patterns
  • GUI patterns and accessibility
  • Performance analysis tools
  • Desktop & Web-browser controls
  • Interaction design and control structures
Texts &
Materials

The following required texts will be available at the bookstore, or via online booksellers such as amazon.com and bn.com:

Required:
Book Cover Thumbnail
JavaScript The Definitive Guide, 6th Ed. Flanagan, O'Reilly & Associates, ISBN: 0596805527

Free (and as best I can tell, legal) electronic copy.

More texts and/or online readings may be assigned as we discuss what we will do with the second half of the course

In addition to the text(s), online readings might be assigned in class and linked from this page.

You should purchase at least one thumb drive to store your work on; I recommend two in case you have problems with the first.

Grading &
Enrollment
Issues

Your grade will be based on your individual assignments, a mid-term practical and a final test.

It's important to understand that if you complete all the requirements for an assignment, that entitles you to a grade of "B" (i.e. "satisfactory work"). To receive an A for an assignment, you must go beyond the basic requirements, and demonstrate creativity, initiative, and excellence--the grade of A is intended for work that is superior, rather than average.

Assignments submitted after the due date/time, without prior approval from me, will lose one full letter grade for each day that they are late. If you know that a situation will prevent you from turning something in, contact me in advance of the deadline to make alternate arrangements.

The individual assignments will be worth a total of 50% of your final grade (#1—20%, #2—15%, #3—15%). The first will be JavaScript, the second jQuery, and the last is C# (see below).

The mid-term practical shall be worth 25% of your grade. The practical itself will be based upon the in-class exercises, what we build in class together, and the readings. The practical will be held during the xth week.

The final examination (last 25%) will cover the second half of the course only and will be held during the classes published final time during week 11.

If you wish to dispute your final course grade, you must do so before the end of the quarter following this one; otherwise documentation of your work may not be available.

Last Day to Drop the Class: For this quarter, you can drop the class on or before February 2nd. After that date, you must withdraw from the course, which will show on your transcript as a W.

Last Day to Withdraw: The deadline for withdrawing from a course with a W grade is the end of the 12th week of the quarter. Forms may be obtained from the IT office, and must be signed by your instructor. Completed forms should be returned to the IT office no later than the last day of the 12th week. After that date, a grade will be assigned based on the work that you have submitted.

"Incomplete" Grades: You may request an incomplete, or "I" grade, only in cases where exceptional conditions beyond your control, such as accidents, severe illness, family problems, etc., have kept you from completing the course. You must alert us to these circumstances as soon as possible--telling your instructor in November that you were sick in September is not acceptable. If your request for an incomplete is granted, you must complete the work for the course within the time limits set by the instructor. The maximum time is two (2) academic quarters. Unfinished "I" grades automatically become "F". Incomplete grades are not given to students who have simply fallen behind in their work.

Assignments

Assignments will be discussed in class, and posted here on a regular basis. They will always be due at 5pm on the due date. All code turned in will be assumed to be yours except for noted exceptions.

Individual Assignments:

  • Assignment 1: Interactive Form Elements. Due ??? (probably in week 6).
  • Assignment 2: Use/Extending a Library - consuming/displaying real data (from web service). Due ??? (middle of week 10).
  • Assignment 3: Using C# to consume a web service. Due ???.

Grading Guidelines:

  • This is a higher level course - that being said, I will not supply you with a laundry list of items I expect you to include in the projects. I will supply general criteria I expect (say, the use of DHTML to enhance your project) and beyond that I will challenge you to impress me!
  • All assignments will be submitted to TurnItIn.com to check for plagiarism...
mycourses
Conference
I will post announcements related to class in our class conference on the mycourses server, rather than sending mass e-mails. I will also set up conferences for each group; I strongly suggest that you use them for group communication. If you do not yet have an IT account, you can get accounts set up in the IT learning labs in building 70.
Academic
Dishonesty
Policy

It is important that you understand what consitutes academic dishonesty, and what the penalty associated with it is. Read this policy carefully. Please note, in particular, the definitions of cheating and collusion. There is a fine line between asking for a classmate's help in solving a technical problem, and using their work as your own. Don't cross it. Similarly, while it's fine to get ideas from web sites, you must credit your source. If you violate the academic dishonesty policy, you will fail the course. It's just not worth it.

Course
Outline

The readings for each week should be completed before that week begins, so that you're prepared to work with examples and exercises, and to ask questions.

Unit
Topics
Readings/Assignments
Part 1 - JavaScript
Weeks 1 to 5+
  • Week 1 - Javascript Basics
    • Arrays & Functions
  • Week 2a - Window
  • Week 2b - Document & Forms
  • Week 3a - DOM
  • Week 3b - DHTML*
  • Week 4a - Events
  • Week 4b - Storage
  • Week 5a - AJAX
my FireFox plugins
  • W1: JS-Ch 1-8 & 13, (esp. 3,6,7,8,13)
  • W2a: JS-Ch 14
  • W2b: JS-Ch 15
  • W3b: JS-Ch 17
  • W4a: JS-Ch 17
  • W4b: JS-Ch 20
  • W5a: JS-Ch 18
Part 2 -
Libraries
  • Use and extensions of
  • Read: JS-Ch 19
Part 3 -
Desktop Client
  • .NET & C#
©2012 Dan Bogaard
Page last modified: January 22 2016 12:46:36.