User:Vtaylor/CIS89D
2023.1.10 . CIS89D original outline DeAnza . copy original . notes . Foothill CS 77 . Learn more ...
. catalog outline 2023 . 2023 5year curriculum review
De Anza logo Credit - Degree Applicable Effective Quarter: Fall 2020
I. Catalog Information
CIS 89D
Web Application Development
4 1/2 Unit(s)
Advisory: EWRT 211 and READ 211, or ESL 272 and 273;
- CIS 89A and 89C.
Lec Hrs: 48.00
Lab Hrs: 18.00
Out of Class Hrs: 96.00
Total Student Learning Hrs: 162.00
Design and develop web-based applications that deliver features and functionality using web client and server technologies.
Student Learning Outcome Statements (SLO)
- Create data-driven web applications that work with client or server storage systems.
- Create web pages using Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), JavaScript, and the Document Object Model (DOM), and demonstrate how they interact together within a web document using techniques that are responsive to differing screen sizes.
- Create Web applications that deliver similar features and functions previously associated with desktop applications through the use of libraries or frameworks.
- Read, analyze and explain intermediate level Web Applications.
II. Course Objectives
- -- main points in description
III. Essential Student Materials
None
IV. Essential College Facilities None
V. Expanded Description: Content and Form
A. Explore history, tags, Application Programming Interfaces (API) and Web Applications
- History of HTML, CSS, JavaScript, Web Applications
- HTML5 Features.
- Structural, Content and Application-focused Tags
B. Explore creating, structuring and styling HTML documents.
- Structure a user interface with HTML, and include styles with CSS
- Content models.
- Structure of basic page, top level elements and interior content.
- Use Cascading Style Sheets (CSS) to enhance and style Web Applications.
- Construct basic forms using HyperText Markup Language.
- Embed Audio and Video in applications.
- Use responsive web design for different screen sizes.
C. Evaluate client /middleware/ server development tools.
- Client-side - frontend, HTML, CSS, JavaScript, JavaScript frameworks - Visual Studio Code, Sublime
- Server-side - backend, hosting and web server, data storage, frameworks, programming language - Python, PHP
- Libraries and frameworks - Django, Ruby on Rails, Angular, REACT, Bootstrap, Chrome DevTools
D, Create data-driven web applications.
- Client-side programming - jQuery, JavaScript,
- Use web API
- HTML5 controls in web applications
- Offline applications overview.
- Client / server linking - AJAX, JavaScript objects, JSON
- Server-side programming - Node.js
- Uploading to web host
E. Data store
- Data caching and storage for web applications - Redis, MongoDB, SQL, SQLite, NoSQL
F. Use security techniques.
- SSL/TLS, HTTPS, SSH, SFTP
- Sessions, cookies, and web storage API
- Single sign on (such as via OAuth)
G. Understand best practices for web application development
- Basic tips for writing maintainable code on both the client and server
- Set up a basic workflow with a text editor, version control system, and web browser
- Checking document outlines and ensuring cross browser structure.
- Compatibility Testing using browsers and Mobile Devices.
- Discuss and analyze professional ethics for web applications
VI. Assignments
- A. Required reading from the text.
- B. Programs: 8-12 programming homework assignments pertaining to the topics listed in X as Lab Topics, including several of more than 50 lines and several which use 3 or more functions.
VII. Methods of Instruction
- Lecture including discussion of assigned reading
- Demonstration of developing solutions to programming problems,
- In-class review as test preparation
- Discussion of solutions to assigned homework, lab assignment projects, and test problems,
- Collaborative projects,
- On-line tutorial
VIII. Methods of Evaluating Objectives
- Formative exercises, projects, and quizzes requiring students to write code applying covered technology topics
- Evaluation of programming assignments based on correctness, documentation, code quality, and test plan executions
- One or two midterm examinations requiring students to write code applying topics covered in the lectures and reading.
- Final examination requiring students to write code applying topics covered in the lectures,reading, and programming assignments.
IX. Texts and Supporting References
A. Representative Text(s) and Other Materials
- Boduch, A., Decks, R. React and React Native: Build cross-platform JavaScript applications with native power for the web, desktop, and mobile, 4th Edition 4th ed. Edition. 2022. ISBN 1803231289
- Purewal, Semmy. Learning Web App Development: Build Quickly with Proven JavaScript Techniques 1st Edition. 2014. ISBN 9781449370190
- Boduch, Adam, and Roy Derks. React and React Native: A Complete Hands-on Guide to Modern Web and Mobile Development with React.js, 3rd ed.. 2020.
- Robbins, Jennifer. Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics 5th Edition. 2018. ISBN 1491960205
- Subramanian, Vasan. Pro Mern Stack: Full Stack Web App Development with Mongo, Express, React, and Node. 2019. Types and/or Examples of Required Reading, Writing, and Outside of Class Assignments
X. Lab Topics
The following are the general lab topics that must be covered. Any following lab topic may be separated and/or combined with any other lab topic(s).
- Semantic web
- HyperText Markup Language (HTML) documents
- Basic forms using HTML
- Web applications
- Tags and Application Programming Interfaces (API) to build web applications
- Cascading Style Sheets (CSS) to enhance and style web applications
- Front end and media technology in web applications
- Audio and video media
- 2-D and/or 3-D web API(s)
- Widgets and/or animation/effects
- Middleware and server technology
- Web servers and data servers
- APIs and controllers
- Front and back end data storage and modeling for web applications
- Databases
- Caching and offline storage
- Native apps
- Mobile apps
- Desktop apps
Labs will typically be structured as follows:
- Read and run the code that utilizes the associated lab topic(s)
- Create a web application using the associated lab topic(s)
- Discuss design and implementation tradeoffs of related techniques and tools