Course Information
Description
Learn intermediate/advanced Angular programming for front-end development with JS/TS (JavaScript/TypeScript). Implement various FP (functional programming) concepts popular in modern JS development. Also experience real world team development with Git and GitHub, including branching, pull requests (PRs), merge conflicts, and more. React is also demonstrated and discussed. The skills taught in this class are generally applicable to all frameworks including Vue, Solid, and others.
Total Credits
3
Course Competencies
-
Build Single Page Applications (SPAs) with AngularAssessment StrategiesIndividual Project, Skill Demonstration in LabCriteriaInvestigate Single Page Application (SPA) architectureDifferentiate between traditional, server-rendered, web development and SPAsCharacterize nuances of SR (server rendered), CSR (client side rendered), and SSR (server side rendered) and associated vocabularyExplain the basics of MVVM (model, view, view model) and related MV* (model-view-star) approaches including data binding and virtual document object models (DOMs)Install and setup NodeJS and Angular command line interface (CLI) toolsCreate and run Angular and React projectsGain intermediate to advanced level experience with npm and its various uses when writing front-end applicationsExplore and apply Angular and React architectural concepts such as services, components, dependency injection, routing, react-hooks, state management, and othersScaffold application components, services using the Angular and npm CLIsUse various Angular directives and React JSX for simple and complex data binding scenariosPolish application UI/UX (user interface/experience) with Angular animationsApply multiple CSS libraries including Angular Material Design and Bootstrap to Angular and React apps
-
Code with Functional Programming (FP) techniques common in front-end web developmentAssessment StrategiesIndividual Project, Skill Demonstration in LabCriteriaExplore and use the power of map(), filter(), and reduce() JS array methodsDistinguish between imperative and declarative programming approachesExperience never having to write imperative looping code in your front-end applicationsGain awareness of other array methods to simplify your application development tasksInvestigate the basics of reactive, functional programming with RxJS (reactive extensions for JS)Explain RxJS Observables and their relationship to JS promises for asynchronous programmingBecome comfortable switching between JS Promise "thenables" and the newer async/await techniques
-
Demonstrate real world, intermediate/advanced, team software development with GitAssessment StrategiesIndividual Project, Skill Demonstration in LabCriteriaExplore DAGs (directed acyclic graphs), the underlying basis of git source control systemsCharacterize the benefits of a DVCS (distributed version control system) and how to work with local and shared repositoriesMaster cloning git repositories from GitHubMaster local git branching strategies and techniquesPractice merging changes with other developers on your teamResolve merge conflictsIntroduction to GitHub Desktop to manage local git repositoriesUse GitHub PRs (pull requests) to get your changes into your team’s repositoryDeploy SPAs to your personal GitHub Pages to build a portfolio of your work to share with prospective employers and others