CCOG for CIS 233W Fall 2024
- Course Number:
- CIS 233W
- Course Title:
- JavaScript for Web Developers II
- Credit Hours:
- 4
- Lecture Hours:
- 30
- Lecture/Lab Hours:
- 0
- Lab Hours:
- 30
Course Description
Covers advanced programming concepts to build practical, real-world web applications using JavaScript, AJAX, and jQuery. Covers Object-Oriented Design and Programming, User Interface (UI) design and implementation, and communicating with a web server back-end. Covers using these techniques to create dynamic, interactive web applications, as well as the language-specific details needed to implement them in JavaScript. Prerequisites: CIS 133W. Audit available.
Addendum to Course Description
This is the second course in the JavaScript web development sequence.
Intended Outcomes for the course
On completion of this course, students should be able to:
- Design and implement Object classes using class diagrams, constructors, encapsulation, inheritance, and polymorphism.
- Write applications that manipulate the Document Object Model to fetch and display information using jQuery.
- Create anonymous functions and closures, and use them to store and access local data.
- Create event listeners and callbacks to respond to user-interface and network events.
- Apply the jQuery AJAX interfaces and JSON to upload data to a back-end web server, and to asynchronously retrieve and display responses.
- Test and debug JavaScript web applications.
Course Activities and Design
The course consists of a series of lectures and reading assignments that will provide the background knowledge for a number of hands-on programming labs. These labs will require the student to apply various programming techniques to the creation of a full-featured, dynamic web site.
Outcome Assessment Strategies
Mastery of programming techniques will be assessed using a variety of strategies, including:
- Students will take tests or quizzes to assess "knowing" and "remembering" skills.
- Students will be required to write discussion board postings to assess "understanding" skills.
- Students will be given solutions to related problems and be asked to adapt them to new problems to assess "applying" and "analyzing" skills, as part of programming labs.
- Students will be asked to compare various programming techniques on their suitability for solving programming labs in order to test "evaluating" skills, both as part of the labs as well as part of their discussion postings.
- Students will be asked to create and implement new solutions for programming labs to assess their "creating" skills.
Course Content (Themes, Concepts, Issues and Skills)
Themes
- dynamically modifying the content of web pages
- handling user interaction
- fetching content asynchronously from a back-end web server
- uploading content to a back-end web server
Concepts
- Object-Oriented Programming
- Data-hiding Encapsulation
- Prototypal Inheritance
- Polymorphism
- Anonymous functions
- Closures and scopes
- Document Object Model (DOM)
- Cookies
- Asynchronous JavaScript and XML (AJAX)
- jQuery
- event listeners, handlers, and triggers
- jQuery event model, "on", and "trigger".
- jQuery filters and selectors.
- JavaScript Object Notation (JSON)
- Cross-site scripting (XSS)
- Cross-Origin Resource Sharing (CORS)
Skills
- Create well-designed object classes that are extensible, maintainable, and reusable
- Use jQuery and AJAX to create dynamic, interactive web sites that communicate with a back-end web server
- Test and debug complex, distributed applications with multiple technologies
- Create the front-end for a fully featured web site