๐Ÿฆ‰ Course overview

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. โ“ Conditionally executing code
  4. ๐Ÿง  Forming sub-goals
  5. ๐Ÿงถ Accessing strings
  1. ๐Ÿงฎ Ordinal numbers
  2. ๐Ÿ–ผ๏ธ Testing frameworks
  3. ๐ŸŽ’ Starting a project
  4. ๐Ÿ“ฆ Using packages
  5. ๐Ÿƒ Installing Jest
  6. ๐ŸŽ›๏ธ Application Programming Interface
  7. ๐Ÿ’ผ First test case
  8. โœ… โŒ Interpreting feedback
  9. ๐Ÿ—„๏ธ Generalising further

๐Ÿฃ Data groups

  1. ๐Ÿ’พ Related pieces of data
  2. ๐Ÿ“œ Grouping data
  3. ๐Ÿ“Š Calculating the mean
  4. โž• Summation
  5. ๐Ÿ” Iterating
  6. ๐Ÿ“Š Calculating the median
  7. ๐Ÿงฑ Assembling the parts
  8. ๐Ÿค References
  9. ๐Ÿ”€ Mutation
  10. โš ๏ธ Side effects
  1. ๐Ÿ“ Ordered data
  2. ๐Ÿ—๏ธ Key value pairs
  3. ๐Ÿšช Property access
  4. โ“๐Ÿชข Query strings
  5. โ“ No parameters
  6. โ“ Single pair case
  7. [ ] Access with variables
  8. โ“โ“โ“ 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. ๐Ÿ’พ โžก๏ธ ๐Ÿ’ป Data to UI
  2. ๐Ÿ“ฝ๏ธ Cinema listings
  3. ๐Ÿ’ฝ Single datum
  4. ๐Ÿงฑ Composing elements
  5. ๐Ÿงผ Simplifying element creation
  6. ๐Ÿฑ Simplifying element creation
  7. ๐Ÿƒ Building a component
  8. ๐Ÿ‘ญ๐Ÿพ One to one
  9. ๐Ÿ—บ๏ธ Using map
  1. ๐Ÿช„ Reacting to user input
  2. ๐Ÿงฉ Break down the problem
  3. ๐Ÿ”Ž Identifying state
  4. ๐Ÿงผ Refactoring to state+render
  5. ๐Ÿ†• Introducing new state
  6. ๐ŸŽฑ Rendering based on state
  7. ๐Ÿฆป๐Ÿป Capturing the user event
  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. ๐ŸฅŽ try/catch
  10. ๐Ÿ• ๐ŸŽž๏ธ fetch films