{ "chapters": [ { "dashedName": "html", "modules": [ { "dashedName": "basic-html", "blocks": [ { "dashedName": "workshop-curriculum-outline" }, { "dashedName": "lecture-welcome-to-freecodecamp" }, { "dashedName": "lab-debug-camperbots-profile-page" }, { "dashedName": "lecture-understanding-html-attributes" }, { "dashedName": "lab-debug-pet-adoption-page" }, { "dashedName": "lecture-understanding-the-html-boilerplate" }, { "dashedName": "workshop-cat-photo-app" }, { "dashedName": "lab-recipe-page" }, { "dashedName": "lecture-html-fundamentals" }, { "dashedName": "lab-travel-agency-page" }, { "dashedName": "lecture-working-with-audio-and-video-elements" }, { "dashedName": "lecture-working-with-images-and-svgs" }, { "dashedName": "lecture-working-with-media" }, { "dashedName": "lab-video-compilation-page" }, { "dashedName": "lecture-working-with-links" }, { "dashedName": "review-basic-html" }, { "dashedName": "quiz-basic-html" } ] }, { "dashedName": "semantic-html", "blocks": [ { "dashedName": "lecture-importance-of-semantic-html" }, { "dashedName": "lecture-understanding-nuanced-semantic-elements" }, { "dashedName": "lecture-working-with-text-and-time-semantic-elements" }, { "dashedName": "lecture-working-with-specialized-semantic-elements" }, { "dashedName": "workshop-blog-page" }, { "dashedName": "lab-event-hub" }, { "dashedName": "review-semantic-html" }, { "dashedName": "quiz-semantic-html" } ] }, { "dashedName": "html-forms-and-tables", "blocks": [ { "dashedName": "lecture-working-with-forms" }, { "dashedName": "workshop-hotel-feedback-form" }, { "dashedName": "lab-survey-form" }, { "dashedName": "lecture-working-with-tables" }, { "dashedName": "workshop-final-exams-table" }, { "dashedName": "lab-book-catalog-table" }, { "dashedName": "lecture-working-with-html-tools" }, { "dashedName": "review-html-tables-and-forms" }, { "dashedName": "quiz-html-tables-and-forms" } ] }, { "dashedName": "html-and-accessibility", "blocks": [ { "dashedName": "lecture-importance-of-accessibility-and-good-html-structure" }, { "dashedName": "lecture-accessible-tables-forms" }, { "dashedName": "lecture-introduction-to-aria" }, { "dashedName": "lecture-accessible-media-elements" }, { "dashedName": "lab-checkout-page" }, { "dashedName": "lab-movie-review-page" }, { "dashedName": "lab-multimedia-player" }, { "dashedName": "review-html-accessibility" }, { "dashedName": "quiz-html-accessibility" } ] }, { "moduleType": "review", "dashedName": "review-html", "blocks": [ { "dashedName": "review-html" } ] } ] }, { "dashedName": "css", "modules": [ { "dashedName": "computer-basics", "blocks": [ { "dashedName": "lecture-understanding-computer-internet-and-tooling-basics" }, { "dashedName": "lecture-working-with-file-systems" }, { "dashedName": "lecture-browsing-the-web-effectively" }, { "dashedName": "review-computer-basics" }, { "dashedName": "quiz-computer-basics" } ] }, { "dashedName": "basic-css", "blocks": [ { "dashedName": "lecture-what-is-css" }, { "dashedName": "workshop-cafe-menu" }, { "dashedName": "lab-business-card" }, { "dashedName": "lecture-css-specificity-the-cascade-algorithm-and-inheritance" }, { "dashedName": "review-basic-css" }, { "dashedName": "quiz-basic-css" }, { "dashedName": "lecture-styling-lists-and-links" }, { "dashedName": "lab-stylized-to-do-list" }, { "dashedName": "lecture-working-with-backgrounds-and-borders" }, { "dashedName": "lab-blog-post-card" }, { "dashedName": "review-css-backgrounds-and-borders" }, { "dashedName": "quiz-css-backgrounds-and-borders" } ] }, { "dashedName": "design-for-developers", "blocks": [ { "dashedName": "lecture-user-interface-design-fundamentals" }, { "dashedName": "lecture-user-centered-design" }, { "dashedName": "lecture-common-design-tools" }, { "dashedName": "review-design-fundamentals" }, { "dashedName": "quiz-design-fundamentals" } ] }, { "dashedName": "absolute-and-relative-units", "blocks": [ { "dashedName": "lecture-working-with-relative-and-absolute-units" }, { "dashedName": "lab-event-flyer-page" }, { "dashedName": "review-css-relative-and-absolute-units" }, { "dashedName": "quiz-css-relative-and-absolute-units" } ] }, { "dashedName": "pseudo-classes-and-elements", "blocks": [ { "dashedName": "lecture-working-with-pseudo-classes-and-pseudo-elements-in-css" }, { "dashedName": "workshop-greeting-card" }, { "dashedName": "lab-job-application-form" }, { "dashedName": "review-css-pseudo-classes" }, { "dashedName": "quiz-css-pseudo-classes" } ] }, { "dashedName": "css-colors", "blocks": [ { "dashedName": "lecture-working-with-colors-in-css" }, { "dashedName": "workshop-colored-markers" }, { "dashedName": "lab-colored-boxes" }, { "dashedName": "review-css-colors" }, { "dashedName": "quiz-css-colors" } ] }, { "dashedName": "styling-forms", "blocks": [ { "dashedName": "lecture-best-practices-for-styling-forms" }, { "dashedName": "workshop-registration-form" }, { "dashedName": "lab-contact-form" }, { "dashedName": "review-styling-forms" }, { "dashedName": "quiz-styling-forms" } ] }, { "dashedName": "css-box-model", "blocks": [ { "dashedName": "lecture-working-with-css-transforms-overflow-and-filters" }, { "dashedName": "workshop-rothko-painting" }, { "dashedName": "lab-confidential-email-page" }, { "dashedName": "review-css-layout-and-effects" }, { "dashedName": "quiz-css-layout-and-effects" } ] }, { "dashedName": "css-flexbox", "blocks": [ { "dashedName": "lecture-working-with-css-flexbox" }, { "dashedName": "workshop-flexbox-photo-gallery" }, { "dashedName": "lab-page-of-playing-cards" }, { "dashedName": "review-css-flexbox" }, { "dashedName": "quiz-css-flexbox" } ] }, { "dashedName": "css-typography", "blocks": [ { "dashedName": "lecture-working-with-css-fonts" }, { "dashedName": "workshop-nutritional-label" }, { "dashedName": "lab-newspaper-article" }, { "dashedName": "review-css-typography" }, { "dashedName": "quiz-css-typography" } ] }, { "dashedName": "css-and-accessibility", "blocks": [ { "dashedName": "lecture-best-practices-for-accessibility-and-css" }, { "dashedName": "workshop-accessibility-quiz" }, { "dashedName": "lab-tribute-page" }, { "dashedName": "review-css-accessibility" }, { "dashedName": "quiz-css-accessibility" } ] }, { "dashedName": "css-positioning", "blocks": [ { "dashedName": "lecture-understanding-how-to-work-with-floats-and-positioning-in-css" }, { "dashedName": "workshop-cat-painting" }, { "dashedName": "lab-house-painting" }, { "dashedName": "review-css-positioning" }, { "dashedName": "quiz-css-positioning" } ] }, { "dashedName": "attribute-selectors", "blocks": [ { "dashedName": "lecture-working-with-attribute-selectors" }, { "dashedName": "workshop-balance-sheet" }, { "dashedName": "lab-book-inventory-app" }, { "dashedName": "review-css-attribute-selectors" }, { "dashedName": "quiz-css-attribute-selectors" } ] }, { "dashedName": "responsive-design", "blocks": [ { "dashedName": "lecture-best-practices-for-responsive-web-design" }, { "dashedName": "workshop-piano" }, { "dashedName": "lab-technical-documentation-page" }, { "dashedName": "review-responsive-web-design" }, { "dashedName": "quiz-responsive-web-design" } ] }, { "dashedName": "css-variables", "blocks": [ { "dashedName": "lecture-working-with-css-variables" }, { "dashedName": "workshop-city-skyline" }, { "dashedName": "lab-availability-table" }, { "dashedName": "review-css-variables" }, { "dashedName": "quiz-css-variables" } ] }, { "dashedName": "css-grid", "blocks": [ { "dashedName": "lecture-working-with-css-grid" }, { "dashedName": "workshop-magazine" }, { "dashedName": "lab-magazine-layout" }, { "dashedName": "lecture-debugging-css" }, { "dashedName": "lab-product-landing-page" }, { "dashedName": "review-css-grid" }, { "dashedName": "quiz-css-grid" } ] }, { "dashedName": "css-animations", "blocks": [ { "dashedName": "lecture-animations-and-accessibility" }, { "dashedName": "workshop-ferris-wheel" }, { "dashedName": "lab-moon-orbit" }, { "dashedName": "workshop-flappy-penguin" }, { "dashedName": "lab-personal-portfolio" }, { "dashedName": "review-css-animations" }, { "dashedName": "quiz-css-animations" } ] }, { "moduleType": "review", "dashedName": "review-css", "blocks": [ { "dashedName": "review-css" } ] } ] }, { "dashedName": "javascript", "modules": [ { "dashedName": "code-editors", "blocks": [ { "dashedName": "lecture-working-with-code-editors-and-ides" } ] }, { "dashedName": "javascript-variables-and-strings", "blocks": [ { "dashedName": "lecture-introduction-to-javascript" }, { "dashedName": "workshop-greeting-bot" }, { "dashedName": "lab-javascript-trivia-bot" }, { "dashedName": "lab-sentence-maker" }, { "dashedName": "lecture-working-with-data-types" }, { "dashedName": "review-javascript-variables-and-data-types" }, { "dashedName": "quiz-javascript-variables-and-data-types" }, { "dashedName": "lecture-working-with-strings-in-javascript" }, { "dashedName": "workshop-teacher-chatbot" }, { "dashedName": "lecture-working-with-common-string-methods" }, { "dashedName": "review-javascript-strings" }, { "dashedName": "quiz-javascript-strings" } ] }, { "dashedName": "javascript-booleans-and-numbers", "blocks": [ { "dashedName": "lecture-working-with-numbers-booleans-and-the-math-object" }, { "dashedName": "workshop-mathbot" }, { "dashedName": "lab-fortune-teller" }, { "dashedName": "lecture-working-with-numbers-and-common-number-methods" }, { "dashedName": "review-javascript-math" }, { "dashedName": "quiz-javascript-math" }, { "dashedName": "lecture-understanding-comparisons-and-conditionals" }, { "dashedName": "review-javascript-comparisons-and-conditionals" }, { "dashedName": "quiz-javascript-comparisons-and-conditionals" } ] }, { "dashedName": "javascript-functions", "blocks": [ { "dashedName": "lecture-working-with-functions" }, { "dashedName": "workshop-calculator" }, { "dashedName": "lab-email-masker" }, { "dashedName": "workshop-loan-qualification-checker" }, { "dashedName": "lab-leap-year-calculator" }, { "dashedName": "lab-truncate-string" }, { "dashedName": "review-javascript-functions" }, { "dashedName": "quiz-javascript-functions" } ] }, { "dashedName": "javascript-arrays", "blocks": [ { "dashedName": "lecture-working-with-arrays" }, { "dashedName": "workshop-shopping-list" }, { "dashedName": "lab-lunch-picker-program" }, { "dashedName": "lab-reverse-a-string" }, { "dashedName": "lecture-working-with-common-array-methods" }, { "dashedName": "review-javascript-arrays" }, { "dashedName": "quiz-javascript-arrays" } ] }, { "dashedName": "javascript-objects", "blocks": [ { "dashedName": "lecture-working-with-objects" }, { "dashedName": "workshop-recipe-tracker" }, { "dashedName": "lab-quiz-game" }, { "dashedName": "review-javascript-objects" }, { "dashedName": "quiz-javascript-objects" } ] }, { "dashedName": "javascript-loops", "blocks": [ { "dashedName": "lecture-working-with-loops" }, { "dashedName": "workshop-sentence-analyzer" }, { "dashedName": "lab-factorial-calculator" }, { "dashedName": "lab-mutations" }, { "dashedName": "lab-chunky-monkey" }, { "dashedName": "review-javascript-loops" }, { "dashedName": "quiz-javascript-loops" } ] }, { "dashedName": "review-javascript-fundamentals", "blocks": [ { "dashedName": "lecture-understanding-core-javascript-fundamentals" }, { "dashedName": "lab-slice-and-splice" }, { "dashedName": "lab-pyramid-generator" }, { "dashedName": "lab-gradebook-app" }, { "dashedName": "lecture-the-var-keyword-and-hoisting" }, { "dashedName": "lab-inventory-management-program" }, { "dashedName": "lecture-understanding-modules-imports-and-exports" }, { "dashedName": "lab-password-generator" }, { "dashedName": "lab-sum-all-numbers-algorithm" }, { "dashedName": "review-javascript-fundamentals" }, { "dashedName": "quiz-javascript-fundamentals" } ] }, { "dashedName": "higher-order-functions-and-callbacks", "blocks": [ { "dashedName": "lecture-working-with-higher-order-functions-and-callbacks" }, { "dashedName": "workshop-library-manager" }, { "dashedName": "lab-book-organizer" }, { "dashedName": "review-javascript-higher-order-functions" }, { "dashedName": "quiz-javascript-higher-order-functions" } ] }, { "dashedName": "dom-manipulation-and-events", "blocks": [ { "dashedName": "lecture-working-with-the-dom-click-events-and-web-apis" }, { "dashedName": "workshop-storytelling-app" }, { "dashedName": "lab-favorite-icon-toggler" }, { "dashedName": "lecture-understanding-the-event-object-and-event-delegation" }, { "dashedName": "workshop-music-instrument-filter" }, { "dashedName": "lab-real-time-counter" }, { "dashedName": "lab-lightbox-viewer" }, { "dashedName": "workshop-rps-game" }, { "dashedName": "lab-football-team-cards" }, { "dashedName": "review-dom-manipulation-and-click-events-with-javascript" }, { "dashedName": "quiz-dom-manipulation-and-click-event-with-javascript" } ] }, { "dashedName": "js-a11y", "comingSoon": true, "blocks": [ { "dashedName": "workshop-planets-tablist" }, { "dashedName": "review-js-a11y" }, { "dashedName": "quiz-js-a11y" } ] }, { "dashedName": "debugging-javascript", "blocks": [ { "dashedName": "lecture-debugging-techniques" }, { "dashedName": "lab-random-background-color-changer" }, { "dashedName": "review-debugging-javascript" }, { "dashedName": "quiz-debugging-javascript" } ] }, { "dashedName": "basic-regex", "blocks": [ { "dashedName": "lecture-working-with-regular-expressions" }, { "dashedName": "workshop-spam-filter" }, { "dashedName": "lab-palindrome-checker" }, { "dashedName": "lab-markdown-to-html-converter" }, { "dashedName": "lab-regex-sandbox" }, { "dashedName": "review-javascript-regular-expressions" }, { "dashedName": "quiz-javascript-regular-expressions" } ] }, { "dashedName": "form-validation", "blocks": [ { "dashedName": "lecture-understanding-form-validation" }, { "dashedName": "workshop-calorie-counter" }, { "dashedName": "lab-customer-complaint-form" }, { "dashedName": "review-form-validation-with-javascript" }, { "dashedName": "quiz-form-validation-with-javascript" } ] }, { "dashedName": "javascript-dates", "blocks": [ { "dashedName": "lecture-working-with-dates" }, { "dashedName": "lab-date-conversion" }, { "dashedName": "review-javascript-dates" }, { "dashedName": "quiz-javascript-dates" } ] }, { "dashedName": "audio-and-video-events", "blocks": [ { "dashedName": "lecture-working-with-audio-and-video" }, { "dashedName": "workshop-music-player" }, { "dashedName": "lab-drum-machine" }, { "dashedName": "review-javascript-audio-and-video" }, { "dashedName": "quiz-javascript-audio-and-video" } ] }, { "dashedName": "maps-and-sets", "blocks": [ { "dashedName": "lecture-working-with-maps-and-sets" }, { "dashedName": "workshop-plant-nursery-catalog" }, { "dashedName": "lab-voting-system" }, { "dashedName": "review-javascript-maps-and-sets" }, { "dashedName": "quiz-javascript-maps-and-sets" } ] }, { "dashedName": "localstorage-and-crud-operations", "blocks": [ { "dashedName": "lecture-working-with-client-side-storage-and-crud-operations" }, { "dashedName": "workshop-todo-app" }, { "dashedName": "lab-bookmark-manager-app" }, { "dashedName": "review-local-storage-and-crud" }, { "dashedName": "quiz-local-storage-and-crud" } ] }, { "dashedName": "classes-and-the-this-keyword", "blocks": [ { "dashedName": "lecture-understanding-how-to-work-with-classes-in-javascript" }, { "dashedName": "workshop-shopping-cart" }, { "dashedName": "lab-project-idea-board" }, { "dashedName": "lab-bank-account-manager" }, { "dashedName": "review-javascript-classes" }, { "dashedName": "quiz-javascript-classes" } ] }, { "dashedName": "recursion", "blocks": [ { "dashedName": "lecture-understanding-recursion-and-the-call-stack" }, { "dashedName": "workshop-decimal-to-binary-converter" }, { "dashedName": "lab-permutation-generator" }, { "dashedName": "review-recursion" }, { "dashedName": "quiz-recursion" } ] }, { "dashedName": "functional-programming", "blocks": [ { "dashedName": "lecture-understanding-functional-programming" }, { "dashedName": "workshop-recipe-ingredient-converter" }, { "dashedName": "lab-sorting-visualizer" }, { "dashedName": "review-javascript-functional-programming" }, { "dashedName": "quiz-javascript-functional-programming" } ] }, { "dashedName": "asynchronous-javascript", "blocks": [ { "dashedName": "lecture-understanding-asynchronous-programming" }, { "dashedName": "workshop-fcc-authors-page" }, { "dashedName": "lab-fcc-forum-leaderboard" }, { "dashedName": "lab-weather-app" }, { "dashedName": "review-asynchronous-javascript" }, { "dashedName": "quiz-asynchronous-javascript" } ] }, { "moduleType": "review", "dashedName": "review-javascript", "blocks": [ { "dashedName": "review-javascript" } ] } ] }, { "dashedName": "frontend-libraries", "modules": [ { "dashedName": "react-fundamentals", "blocks": [ { "dashedName": "lecture-introduction-to-javascript-libraries-and-frameworks" }, { "dashedName": "workshop-reusable-mega-navbar" }, { "dashedName": "lab-reusable-footer" }, { "dashedName": "lecture-working-with-data-in-react" }, { "dashedName": "workshop-reusable-profile-card-component" }, { "dashedName": "lab-mood-board" }, { "dashedName": "review-react-basics" }, { "dashedName": "quiz-react-basics" } ] }, { "dashedName": "react-state-hooks-and-routing", "blocks": [ { "dashedName": "lecture-working-with-state-and-responding-to-events-in-react" }, { "dashedName": "workshop-toggle-text-app" }, { "dashedName": "lab-color-picker" }, { "dashedName": "lecture-understanding-effects-and-referencing-values-in-react" }, { "dashedName": "workshop-fruit-search-app" }, { "dashedName": "lab-one-time-password-generator" }, { "dashedName": "review-react-state-and-hooks" }, { "dashedName": "quiz-react-state-and-hooks" }, { "dashedName": "lecture-working-with-forms-in-react" }, { "dashedName": "workshop-superhero-application-form" }, { "dashedName": "lab-event-rsvp" }, { "dashedName": "lecture-working-with-data-fetching-and-memoization-in-react" }, { "dashedName": "workshop-shopping-list-app" }, { "dashedName": "lab-currency-converter" }, { "dashedName": "lecture-routing-react-frameworks-and-dependency-management-tools" }, { "dashedName": "lab-tic-tac-toe" }, { "dashedName": "lecture-react-strategies-and-debugging" }, { "dashedName": "review-react-forms-data-fetching-and-routing" }, { "dashedName": "quiz-react-forms-data-fetching-and-routing" } ] }, { "dashedName": "performance", "blocks": [ { "dashedName": "lecture-understanding-performance-in-web-applications" }, { "dashedName": "review-web-performance" }, { "dashedName": "quiz-web-performance" } ] }, { "dashedName": "testing", "blocks": [ { "dashedName": "lecture-understanding-the-different-types-of-testing" }, { "dashedName": "review-testing" }, { "dashedName": "quiz-testing" } ] }, { "dashedName": "css-libraries-and-frameworks", "comingSoon": true, "blocks": [ { "dashedName": "lecture-working-with-css-libraries-and-frameworks" }, { "dashedName": "workshop-error-message-component" }, { "dashedName": "workshop-tailwind-cta-component" }, { "dashedName": "lab-music-shopping-cart-page" }, { "dashedName": "review-css-libraries-and-frameworks" }, { "dashedName": "quiz-css-libraries-and-frameworks" } ] }, { "dashedName": "typescript-fundamentals", "comingSoon": true, "blocks": [ { "dashedName": "lecture-introduction-to-typescript" }, { "dashedName": "review-typescript" }, { "dashedName": "quiz-typescript" } ] }, { "moduleType": "review", "comingSoon": true, "dashedName": "review-front-end-libraries", "blocks": [ { "dashedName": "review-front-end-libraries" } ] } ] }, { "dashedName": "python", "comingSoon": true, "modules": [ { "dashedName": "python-basics", "comingSoon": true, "blocks": [ { "dashedName": "lecture-introduction-to-python" }, { "dashedName": "workshop-caesar-cipher" }, { "dashedName": "lab-rpg-character" }, { "dashedName": "review-python-basics" }, { "dashedName": "quiz-python-basics" } ] }, { "dashedName": "python-loops-and-sequences", "comingSoon": true, "blocks": [ { "dashedName": "lecture-working-with-loops-and-sequences" }, { "dashedName": "workshop-pin-extractor" }, { "dashedName": "lab-number-pattern-generator" }, { "dashedName": "review-loops-and-sequences" }, { "dashedName": "quiz-loops-and-sequences" } ] }, { "dashedName": "python-dictionaries-and-sets", "comingSoon": true, "blocks": [ { "dashedName": "lecture-working-with-dictionaries-and-sets" }, { "dashedName": "lecture-working-with-modules" }, { "dashedName": "workshop-placeholder-dictionaries-and-sets" }, { "dashedName": "lab-placeholder-dictionaries-and-sets" }, { "dashedName": "review-dictionaries-and-sets" }, { "dashedName": "quiz-dictionaries-and-sets" } ] }, { "dashedName": "python-error-handling", "comingSoon": true, "blocks": [ { "dashedName": "lecture-understanding-error-handling" }, { "dashedName": "lab-isbn-validator" }, { "dashedName": "review-error-handling" }, { "dashedName": "quiz-error-handling" } ] }, { "dashedName": "python-classes-and-objects", "comingSoon": true, "blocks": [ { "dashedName": "lecture-classes-and-objects" }, { "dashedName": "workshop-placeholder-classes-and-objects" }, { "dashedName": "lab-budget-app" }, { "dashedName": "review-classes-and-objects" }, { "dashedName": "quiz-classes-and-objects" } ] }, { "dashedName": "python-object-oriented-programming", "comingSoon": true, "blocks": [ { "dashedName": "lecture-understanding-object-oriented-programming-and-encapsulation" }, { "dashedName": "workshop-placeholder-oop-1" }, { "dashedName": "lab-placeholder-oop-1" }, { "dashedName": "lecture-understanding-inheritance-and-polymorphism" }, { "dashedName": "workshop-placeholder-oop-2" }, { "dashedName": "lab-polygon-area-calculator" }, { "dashedName": "lecture-understanding-abstraction" }, { "dashedName": "workshop-placeholder-oop-3" }, { "dashedName": "lab-placeholder-oop-3" }, { "dashedName": "review-object-oriented-programming" }, { "dashedName": "quiz-object-oriented-programming" } ] }, { "dashedName": "python-linear-data-structures", "comingSoon": true, "blocks": [ { "dashedName": "lecture-working-with-common-data-structures" }, { "dashedName": "workshop-linked-list-class" }, { "dashedName": "lab-hash-table" }, { "dashedName": "review-data-structures" }, { "dashedName": "quiz-data-structures" } ] }, { "dashedName": "python-algorithms", "comingSoon": true, "blocks": [ { "dashedName": "lecture-searching-and-sorting-algorithms" }, { "dashedName": "workshop-binary-search" }, { "dashedName": "lab-bisection-method" }, { "dashedName": "workshop-merge-sort" }, { "dashedName": "lab-quicksort" }, { "dashedName": "lab-selection-sort" }, { "dashedName": "lab-luhn-algorithm" }, { "dashedName": "lab-tower-of-hanoi" }, { "dashedName": "review-searching-and-sorting-algorithms" }, { "dashedName": "quiz-searching-and-sorting-algorithms" } ] }, { "dashedName": "python-graphs-and-trees", "comingSoon": true, "blocks": [ { "dashedName": "lecture-understanding-graphs-and-trees" }, { "dashedName": "workshop-shortest-path-algorithm" }, { "dashedName": "lab-adjacency-list-matrix-converter" }, { "dashedName": "workshop-breadth-first-search" }, { "dashedName": "lab-depth-first-search" }, { "dashedName": "review-graphs-and-trees" }, { "dashedName": "quiz-graphs-and-trees" } ] }, { "dashedName": "python-dynamic-programming", "comingSoon": true, "blocks": [ { "dashedName": "lecture-understanding-dynamic-programming" }, { "dashedName": "lab-nth-fibonacci-number" }, { "dashedName": "review-dynamic-programming" }, { "dashedName": "quiz-dynamic-programming" } ] }, { "comingSoon": true, "moduleType": "review", "dashedName": "review-python", "blocks": [{ "dashedName": "review-python" }] } ] }, { "dashedName": "relational-databases", "comingSoon": true, "modules": [ { "dashedName": "bash-fundamentals", "comingSoon": true, "blocks": [ { "dashedName": "workshop-bash-boilerplate" }, { "dashedName": "review-bash-commands" }, { "dashedName": "quiz-bash-commands" } ] }, { "dashedName": "relational-databases", "comingSoon": true, "blocks": [ { "dashedName": "workshop-database-of-video-game-characters" }, { "dashedName": "lab-celestial-bodies-database" }, { "dashedName": "review-relational-database" }, { "dashedName": "quiz-relational-database" } ] }, { "dashedName": "bash-scripting", "comingSoon": true, "blocks": [ { "dashedName": "workshop-bash-five-programs" }, { "dashedName": "review-bash-scripting" }, { "dashedName": "quiz-bash-scripting" } ] }, { "dashedName": "sql-and-bash", "comingSoon": true, "blocks": [ { "dashedName": "workshop-sql-student-database-part-1" }, { "dashedName": "workshop-sql-student-database-part-2" }, { "dashedName": "lab-world-cup-database" }, { "dashedName": "workshop-kitty-ipsum-translator" }, { "dashedName": "workshop-bike-rental-shop" }, { "dashedName": "lab-salon-appointment-scheduler" }, { "dashedName": "review-bash-and-sql" }, { "dashedName": "quiz-bash-and-sql" } ] }, { "dashedName": "git", "comingSoon": true, "blocks": [ { "dashedName": "workshop-castle" }, { "dashedName": "workshop-sql-reference-object" }, { "dashedName": "lab-periodic-table-database" }, { "dashedName": "lab-number-guessing-game" }, { "dashedName": "review-git" }, { "dashedName": "quiz-git" } ] }, { "moduleType": "review", "comingSoon": true, "dashedName": "review-relational-databases", "blocks": [ { "dashedName": "review-relational-databases" } ] } ] }, { "dashedName": "backend-javascript", "comingSoon": true, "modules": [ { "dashedName": "nodejs-core-libraries", "comingSoon": true, "blocks": [] }, { "dashedName": "node-package-manager", "comingSoon": true, "blocks": [] }, { "dashedName": "http-and-the-web-standards-model", "comingSoon": true, "blocks": [] }, { "dashedName": "rest-api-and-web-services", "comingSoon": true, "blocks": [] }, { "dashedName": "introduction-to-express", "comingSoon": true, "blocks": [] }, { "dashedName": "express-middleware", "comingSoon": true, "blocks": [] }, { "dashedName": "error-handling-in-express", "comingSoon": true, "blocks": [] }, { "dashedName": "websockets", "comingSoon": true, "blocks": [] }, { "dashedName": "node-and-sql", "comingSoon": true, "blocks": [] }, { "dashedName": "security-and-privacy", "comingSoon": true, "blocks": [] }, { "dashedName": "authentication", "comingSoon": true, "blocks": [] }, { "dashedName": "tooling-and-deployment", "comingSoon": true, "blocks": [] } ] }, { "dashedName": "career", "comingSoon": true, "modules": [ { "dashedName": "how-to-get-a-developer-job", "comingSoon": true, "blocks": [] }, { "dashedName": "capstone-project", "comingSoon": true, "blocks": [] }, { "dashedName": "certified-full-stack-developer-exam", "comingSoon": true, "blocks": [{ "dashedName": "exam-certified-full-stack-developer" }] } ] } ] }