Files
freeCodeCamp/curriculum/superblock-structure/full-stack.json

1571 lines
44 KiB
JSON

{
"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" }]
}
]
}
]
}