๐ฆ 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
โฑ๏ธ Version control
- Version control software
- Sharing history
- Inspecting a commit
- Inspecting previous versions
- Forking a repository
- Working locally
- Viewing files from a git clone
- Branching
- Form building
- Databases with Google Sheets
- Accessibility audit
๐ฅ Structuring and testing data
โฑ๏ธ Programming fundamentals
- ๐ท๏ธ Saving expressions
- ๐ฌ Declarations and statements
- ๐ช Functions
- ๐ Running scripts
- ๐จ๏ธ Logging
- โ Errors
- ๐งฉ Percentages
- ๐ช Declaring functions
- ๐ฎ Playing computer
- ๐ญ Scope
- ๐ค Returning from a function
- โป๏ธ Reusing the function
- ๐ท๏ธ Parameterising a function
- โ๏ธ Comparing current and target output
- โ๏ธ Writing an assertion
- โ Conditionally executing code
- ๐ง Forming sub-goals
- ๐งถ Accessing strings
โฑ๏ธ Test cases with Jest
- ๐งฎ Ordinal numbers
- ๐ผ๏ธ Testing frameworks
- ๐ Starting a project
- ๐ฆ Using packages
- ๐ Installing Jest
- ๐๏ธ Application Programming Interface
- ๐ผ First test case
- โ โ Interpreting feedback
- ๐๏ธ Generalising further
๐ฃ Data groups
- ๐พ Related pieces of data
- ๐ Grouping data
- ๐ Calculating the mean
- โ Summation
- ๐ Iterating
- ๐ Calculating the median
- ๐งฑ Assembling the parts
- ๐ค References
- ๐ Mutation
- โ ๏ธ Side effects
โฑ๏ธ Grouping data: Objects
- ๐ Ordered data
- ๐๏ธ Key value pairs
- ๐ช Property access
- โ๐ชข Query strings
- โ No parameters
- โ Single pair case
- [ ] Access with variables
- โโโ Multiple parameters
โฑ๏ธ The DOM
- ๐ป User interfaces
- ๐ Character limit
- ๐งญ Breaking down the strategy
- ๐ฒ Interacting with the page
- ๐ Querying the DOM
- ๐ฌ Events
- ๐ค Reacting to events
- ๐ Check progress
- ๐ท๏ธ Updating the interface
๐ฅ Data flows
โฑ๏ธ UI Components
- ๐พ โก๏ธ ๐ป Data to UI
- ๐ฝ๏ธ Cinema listings
- ๐ฝ Single datum
- ๐งฑ Composing elements
- ๐งผ Simplifying element creation
- ๐ฑ Simplifying element creation
- ๐ Building a component
- ๐ญ๐พ One to one
- ๐บ๏ธ Using map
โฑ๏ธ State and Rendering
- ๐ช Reacting to user input
- ๐งฉ Break down the problem
- ๐ Identifying state
- ๐งผ Refactoring to state+render
- ๐ Introducing new state
- ๐ฑ Rendering based on state
- ๐ฆป๐ป Capturing the user event
โฑ๏ธ Fetch and Asynchrony
- ๐ Fetching data
- ๐๏ธ Latency
- โณ Asynchrony : outside time
- ๐ช Callbacks
- ๐ Requesting from a server side API
- ๐ซฑ๐ฟโ๐ซฒ๐ฝ Promises
- ๐ช .then()
- ๐ฌ async/await
- ๐ฅ try/catch
- ๐ ๐๏ธ fetch films