George Mason University
DEPARTMENT OF COMPUTER SCIENCE
Course Description
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: mpullen@netlab.gmu.edu
Course Description
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.
Textbook
Haverbeke, Eloquent JavaScript: A Modern
Introduction to Programming, No Starch Press, 2014 (available at no cost
online)
Course
Outcomes
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)
Grading breakdown:
* 75% Projects (three segments, 25% each)
* 15% Project integration and
presentation
* 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-6 JavaScript expressions; team programming; repositories; intro to GitHub (Chapters 1 and 2) (recorded class)
9-13 JavaScript as a prototype-based language; functions and data
structures (Chapters 3 and 4) (recorded class)
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
lecture slides.
University Requirements
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.