George Mason University
DEPARTMENT OF COMPUTER SCIENCE
CS 499 Special Topics in Computer Science
Web Applications Rapid Prototyping
Section 004 Fall 2016: Tuesday 16:30 – 19:10, Nguyen Engineering Building 4705
Last Revised 8-28-2016
Professor: Dr. J. Mark Pullen
Mail drop: CS Dept, 4301 ENGR
Office hours 4455 ENGR Monday 16:00 to 18:00 whenever in Fairfax; also meet online
Preferred contact is email: firstname.lastname@example.org
Principles and practice of dynamic scripting programming for web applications. Basic language concepts, data structures in dynamic languages, code structure, code quality, testing, string manipulation, dynamic web site generation, server functions. Course is built around a team project.
1. Understand and be able to employ the dynamic scripting model of computer programming, including security issues.
2. Be able to design and write
rapid prototype software using dynamic scripting programming.
3. Have familiarity with software libraries that support scripting web applications.
4. Be able to identify and implement functions appropriate to client and server in web applications.
5. Be able to work effectively as a team to produce a software product.
6. Be familiar with typical debugging and testing techniques for web applications.
7. Demonstrate an understanding of and ability to employ websockets in client/server web applications.
8. Understand and be able to employ asynchronous control and communications flow in web applications.
Prerequisites by Topic
Grade of C or better in CS 310 (Data Structures)
Co-requisite: CS 367 (Computer Systems and Programming)
* 75% Projects (three segments, 25% each)
* 15% Project integration and
* 10% Homework
Projects: Multiple teams of two students will work together to complete a usable web application, which may be posted online as open source if its quality is sufficient. Projects will be defined collaboratively by students with professor input and developed as a set of three increasingly more complete prototypes. An example of a typical previous project is an interactive whiteboard for multi-browser interaction.
All students are expected to abide by the Honor Code as stated in the GMU catalog and elaborated for Computer Science. Students should be aware that their submissions may be checked by plagiarism detection software.
Grading is proficiency-based (no curve).
SYLLABUS (subject to revision)
date and topic/readings in Haverbeke text
8-30 Course introduction: what are web applications and why are they important; evolution of the web programming environment; dynamic scripting
9-20 Partition of function between client and server; higher order functions and using methods; (Chapters 5 and 6) (in person class)
9-27 Error handling and testing; security issues; best practices; advanced GitHub (Chapters 8, 13 and 14) (recorded class)
10-4 Project part 1 assignment; system design and team breakout (in class)
10-11 No class (Monday classes on Tuesday this week)
10-18 Team meetings (Prof out of town)
10-25 Introduction to web Scalable Vector Graphics (reference: //www.dashingd3js.com) (online class)
10-25 Team presentations: project concept
11-1 Project part 2 assignment; system design and team breakout (in class)
11-8 Serverside functions: Node.js (reference: http://www.nodebeginner.org); websockets and associated system issues; concurrency, deadlocks and hangups
11-15 Team meetings (Prof out of town)
11-22 Project part 2 presentation and demo
11-29 Project part 3 assignment; system design and team breakout (in class or online)
12-6 Project part 3 Team meetings and review by Prof
12-13 (scheduled final exam period) Demo and validate completed systems
Course communication: we will use email extensively. Students are responsible to read GMU email daily. Announcements will be sent to the class email list, which consists of GMU email accounts.
Course notices and assignments will be
provided via email. Course materials (for example, homework solutions) will be
available though the course Moodle page, http://disted.c4i.gmu.edu.
Students are responsible for assigned readings and all material outlined in
Honor Code Statement
Students with Disabilities
If you have a documented learning disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Office of Disability Services (SUB I, Rm. 222; 993-2474; www.gmu.edu/student/drc) to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs. me to discuss your accommodation needs.