๐Ÿฆ‰ Course overview

4 modules of 3 sprints delivered over 12-16 weeks

Objective

The objective of this course is to give people with no prior software development experience an introduction to programming and thinking about data. Common next-steps after this course are to get an entry level job in tech or IT, or to continue learning more advanced software engineering techniques to prepare for a software engineering job.

Primarily this is achieved by teaching programming concepts with JavaScript and Python and data concepts with SQL in spreadsheets. We also focus on professional development skills such as communicating effectively and working well on a team.

A pre-requisite of this course is having completed Code Your Future’s Intro to Digital course which teaches the basics of HTML and CSS.

Modules

๐Ÿ“‡ User focused data

  1. Version control software
  2. Sharing history
  3. Inspecting a commit
  4. Inspecting previous versions
  5. Forking a repository
  6. Working locally
  7. Viewing files from a git clone
  8. Branching
  1. Form building
  2. Databases with Google Sheets
  1. Accessibility audit

๐Ÿฅš Structuring and testing data

  1. ๐Ÿท๏ธ Saving expressions
  2. ๐Ÿ’ฌ Declarations and statements
  3. ๐Ÿช„ Functions
  4. ๐Ÿ“ Running scripts
  5. ๐Ÿ–จ๏ธ Logging
  6. โŒ Errors
  7. ๐Ÿงฉ Percentages
  8. ๐Ÿช„ Declaring functions
  9. ๐ŸŽฎ Playing computer
  10. ๐Ÿ”ญ Scope
  11. ๐Ÿ“ค Returning from a function
  12. โ™ป๏ธ Reusing the function
  13. ๐Ÿท๏ธ Parameterising a function
  1. โš–๏ธ Comparing current and target output
  2. โœ๏ธ Writing an assertion
  3. ๐Ÿ”Ž Interpreting errors
  4. ๐Ÿง  Interpreting this error
  5. ๐Ÿ”„ Reusing variable names
  6. โ“ Conditionally executing code
  7. ๐Ÿง  Forming sub-goals
  8. ๐Ÿงถ Accessing strings
  9. ๐Ÿงน Refactoring repetition
  10. ๐Ÿ”ฌ Identifying missing tests
  1. ๐Ÿ–ผ๏ธ Testing frameworks
  2. ๐ŸŽ’ Starting a project
  3. ๐Ÿ“ฆ Using packages
  4. ๐Ÿƒ Installing Jest
  5. ๐ŸŽ›๏ธ Jest's Application Programming Interface
  6. ๐Ÿ’ผ First test case
  7. โœ… โŒ Interpreting feedback
  8. ๐Ÿ—„๏ธ Generalising further
  9. ๐Ÿท๏ธ Anonymous functions
  10. โžก๏ธ Arrow functions

๐Ÿฃ Data groups

  1. ๐Ÿ’พ Grouping data
  2. ๐Ÿ“œ Arrays
  3. ๐Ÿ” Iteration
  4. ๐Ÿค References
  5. ๐Ÿ”€ Mutation
  6. โš ๏ธ Side effects
  1. ๐Ÿ“ Ordered data
  2. ๐Ÿ—๏ธ Key-value pairs
  3. ๐Ÿšช Accessing properties
  4. โ“๐Ÿชข Query strings
  5. โ“ Parsing a single key-value pair
  6. [ ] Access with variables
  7. โ“โ“โ“ Parsing multiple parameters
  1. ๐Ÿ’ป User interfaces
  2. ๐Ÿ›‘ Character limit
  3. ๐Ÿงญ Breaking down the strategy
  4. ๐ŸŒฒ Interacting with the page
  5. ๐Ÿ”Ž Querying the DOM
  6. ๐ŸŽฌ Events
  7. ๐Ÿ“ค Reacting to events
  8. ๐Ÿ“ˆ Check progress
  9. ๐Ÿท๏ธ Updating the interface

๐Ÿฅ Data flows

  1. ๐Ÿ’พ โžก๏ธ ๐Ÿ’ป Rendering Data as UI
  2. ๐Ÿงฑ Composing elements
  3. ๐Ÿงผ Creating elements with functions
  4. ๐Ÿฑ Creating elements with <template>
  5. ๐Ÿƒ Reusable components
  6. ๐Ÿ—บ๏ธ Using map
  1. ๐Ÿช„ Reacting to user input
  2. ๐Ÿ”Ž Identifying state
  3. ๐Ÿงผ Refactoring to state+render
  4. ๐Ÿ†• Introducing new state
  5. ๐ŸŽฑ Rendering based on state
  6. ๐Ÿฆป๐Ÿป Capturing the user event
  7. ๐Ÿ” Re-rendering
  8. ๐Ÿ” Actually re-rendering
  1. ๐Ÿ• Fetching data
  2. ๐Ÿ—“๏ธ Latency
  3. โณ Asynchrony : outside time
  4. ๐Ÿชƒ Callbacks
  5. ๐ŸŒ Requesting from a server side API
  6. ๐Ÿซฑ๐Ÿฟโ€๐Ÿซฒ๐Ÿฝ Promises
  7. ๐Ÿช† .then()
  8. ๐Ÿฌ async/await
  9. ๐Ÿ• ๐ŸŽž๏ธ fetch films