|1. Description - |
|Advisory: C S 1A or 2A or equivalent; knowledge of HTML and CSS.|
|2. Course Objectives - |
|The student will be able to: |
- Install and use a web application development environment.
- Understand Web application architecture.
- Address performance in web applications
- Use XML and JSON to access data for a web application.
|3. Special Facilities and/or Equipment - |
- Access to a computer laboratory with internet access and modern browsers.
- Web server that will host the student work.
- Website or course management system with an assignment posting component (through which all lab assignments are to be submitted) and a forum component (where students can discuss course material and receive help from the instructor). This applies to all sections, including on-campus (i.e., face-to-face) offerings.
- When taught via Foothill Global Access on the Internet, a fully functional and maintained course management system through which the instructor and students can interact.
- When taught via Foothill Global Access on the Internet, students must have currently existing e-mail accounts and ongoing access to computers with internet capabilities.
|4. Course Content (Body of knowledge) - |
- Web application development environment.
- Current browser with web development tools
- Selenium for testing
- Mobile browsers
- Test driven development
- Coding style
- Object orientation
- Names for identifiers
- tradeoffs between thin/fat client
- minimize dependencies between modules
- model/view controller architecture
- variables and data types
- expressions and operators
- control structures
- arrays and objects
- functions including recursion
- Libraries and frameworks
- User events
- mouse, keyboard, on page load, transitions
- Model/View/Controller architecture
- Interaction with HTML and CSS
- Asynchronous request to server
- Dynamic page refresh
- Document Object Model
- HTML 5 and CSS 3
- Traversing a document
- Finding elements in a document
- Modifying elements in a document
- Communicating with the server
- Making requests to the server
- Handling responses from the server
- asynchronous requests and responses
- synchronous requests and responses
- Rendering an HTML page
- Caching data for optimization
- user authentication
- data storage
- Web application architecture
- tomcat vs. node.js
- Performance issues
- throughput vs. latency
- UI issues: bookmarks and back button
- Degradeable user interface
- Issues with mobile platforms: phones and tablets
- XML and JSON
- Comparing XML and JSON
- Storage of metadata
- Storage of user data
|5. Repeatability - Moved to header area.|
|6. Methods of Evaluation - |
- Tests and quizzes
- Written laboratory assignments which include source code, sample runs and documentation.
- Final examination
|7. Representative Text(s) - |
|8. Disciplines - |
|Computer Science |
|9. Method of Instruction - |
- On-line labs (for all sections, including those meeting face-to-face/on campus) consisting of
- A programming assignment web-page located on a college-hosted course management system or other department-approved Internet environment. Here, the students will review the specification of each programming assignment and submit their completed lab work.
- A discussion web-page located on a college hosted course management system or other department-approved Internet environment. Here, students can request assistance from the instructor and interact publically with other class members.
- Detailed review of programming assignments which includes model solutions and specific comments on the student submissions.
- In person or on-line discussion which engages students and instructor in an ongoing dialog pertaining to all aspects of designing, implementing and analyzing programs.
- When course is taught fully on-line:
- Instructor-authored lecture materials, handouts, syllabus, assignments, tests, and other relevant course material will be delivered through a college hosted course management system or other department-approved Internet environment.
- Additional instructional guidelines for this course are listed in the attached addendum of CS department on-line practices.
|10. Lab Content - |
- Install and use a web development environment to create and debug a web application
- use iterative development
- use test driven development
- use good programming style
- Incorporate JQuery in a web application.
- Write a web application that creates and uses its own namespace.
- Write a program with a dynamic user interface
- Make an asynchronous request from the server
- Write an application that has registered users
- Write an application that stores data:
- on the server
- on the client
- Write an application that includes an animation and a transition
|11. Honors Description - No longer used. Integrated into main description section.|
|12. Types and/or Examples of Required Reading, Writing and Outside of Class Assignments - |
- Textbook assigned reading averaging 30 pages per week.
- Reading the supplied handouts and modules averaging 10 pages per week.
- Reading on-line resources as directed by instructor though links pertinent to programming.
- Reading library and reference material directed by instructor through course handouts.
- Writing technical prose documentation that supports and describes the programs that are submitted for grades.
|13. Need/Justification - |
|This course is an restricted support course for the A.S. Degree in Computer Science. |