📕
SEIRFX
  • Introduction
  • About These Notes
  • Schedule
  • Unit 2
    • Node
      • Internet Fundamentals
      • Full-Stack Fundamentals
      • Intro to Node
      • Node Modules
      • Node Packages
    • Express
      • Intro to Express
      • Routes
      • Routes Lab
      • Views
      • Templates
      • Layouts & Controllers
    • CRUD & REST
      • GET & POST
      • GET & POST Lab
      • PUT & DELETE
    • API Calls in Express
      • Axios
      • Request (no longer maintained)
    • Sequelize
      • Terminology
      • Setup
      • Using Models
      • Seeding Data
      • Validations and Migrations
      • Resources
      • 1:M Relationships
      • N:M Relationships
    • Express Authentication
      • Research Components
      • Code Components
      • Auth in Theory
        • Sessions
        • Passwords
        • Middleware
        • Hooks
      • Auth in Practice
        • Create the User
        • User Signup
        • Sessions
        • User Login
        • Authorization and Flash messages
  • Development Workflow
    • Command Line
      • The Terminal
      • Filesystem Navigation
      • File Manipulation
      • Additional Topics
    • Intro to Git
      • Version Control
      • Local Git
      • Remote Git
      • Git Recipes
    • Group Collaboration
      • Git Workflows
      • Project Roles and Tools
    • VS Code Tips & Tricks
  • HTML/CSS
    • HTML
    • CSS Selectors
    • CSS Box Model and Positioning
      • Box Model
      • Display and Positioning
      • Flexbox
      • Grid
      • Flexbox & Grid Games
      • Floats and Clears
      • Additional Topics
    • Advanced CSS
      • Responsive Design
      • Pseudo-Classes/Elements
      • Vendor Prefixes
      • Custom Properties
      • Additional Topics
    • Bootstrap
    • CSS Frameworks
    • Accessibility
  • JavaScript
    • Primitives
    • Arrays
    • Objects
      • Objects Lesson
      • Objects quick guide
      • Object-ception
    • Control Flow
      • Boolean Expressions
      • Conditionals
      • Loops
      • Promises
    • Functions
      • Scope
      • Callbacks
      • Higher Order Functions
      • Callbacks Review Lab
      • Timing Functions
      • Iterators
      • Combining Data Types
      • Combining Data Types Lab
    • Javascript in the browser
      • DOM and Events
      • DOM Manipulation
      • DOM Review
      • DOM Review Lab
      • HP DOM Lab
      • Programmatic DOM Manipulation
      • Grids & Pyramids
      • DOM & Data
      • DOM Events
      • Color Palette Picker
      • Sketchpad
    • HTML5 Canvas
    • How To Reduce Redundancy
    • OOP
      • Westworld Lab
      • OOP Factories
      • OOP Inheritance
      • OOP Inheritance Lab
      • Tomagotchi Lab
      • OOP Space Battle
      • OOP Snowman
      • (2019) JavaScript OOP
      • (2016) OOP with Classes
      • (1995) OOP with Prototypes
      • Constructors
      • Prototypes
    • Intro to TDD
    • Scoping
    • Inheritance
      • Prototypal Inheritance
      • Call, Apply, and other Functions
      • ES6 Inheritance
      • Resources
    • Custom Node Modules
    • Additional Topics
      • AJAX, Fetch, and Async/Await
      • AJAX w/JSON and Localstorage
        • AJAX w/JSON
        • Local Storage
      • Async module
      • Data Scraping
  • jQuery
    • Intro
      • DOM Manipulation
      • Reddit Practice
      • Styling
      • Events
    • Plugins
    • AJAX
  • APIs
    • Fetch
    • AJAX w/jQuery
    • AJAX w/Fetch
  • Databases
    • Intro to SQL
    • Advanced SQL
    • MongoDB
      • Intro to NoSQL
      • CRUD in MongoDB
      • Data Modeling
      • Intermediate Mongo
  • Left over Node/Express
    • Testing with Mocha and Chai
    • Mongoose
      • Mongoose Associations
    • JSON Web Tokens
      • Codealong
    • Additional Topics
      • oAuth
      • Geocoding with Mapbox
      • Geocoding and Google Maps
      • Cloudinary
      • Websockets with Socket.io
      • SASS
  • Ruby
    • Intro to Ruby
    • Ruby Exercises
    • Ruby Classes
    • Ruby Testing with Rspec
    • Ruby Inheritance
    • Ruby Data Scraping
  • Ruby on Rails
    • Intro to Rails
    • APIs with Rails
    • Asset Pipeline
    • Rails Auth and 1-M
      • Auth Components
    • Rails N:M
    • ActiveRecord Polymorphism
    • Additional Topics
      • oAuth
      • SASS
      • Rails Mailers
      • Cloudinary
      • Jekyll
  • React (Updated 2019)
    • ES6+/ESNext
      • Const and Let
      • Arrow Functions
      • Object Literals and String Interpolation
      • ES6 Recap
      • ES6 Activity
    • Intro to React
      • Create React App
      • Components and JSX
      • Virtual DOM
      • Props
      • Dino Blog Activity
      • Nested Components
      • Lab: LotR
    • React State
      • Code-Along: Edit Dino Blog
      • Lab: Simple Calc
      • Lifting State
    • React Router
      • Browser History/SPAs
      • React Router (lesson and full codealong)
      • Router Lab
    • Fetch and APIs
      • APIs with Fetch and Axios
      • Fetch the Weather
    • React Hooks
    • React LifeCycle
      • Lab: Component LifeCycle
    • React Deployment
    • Additional Topics
      • React Frameworks
        • Material UI Theming
      • Typescript
        • More Types and Syntax
        • Tsconfig and Declaration Files
        • Generics with Linked List
      • Redux
      • TypeScript
      • Context API
      • React Native
  • Meteor
  • Deployment and Config
    • Installfest
      • Mac OSX
      • Linux
      • Git Configuration
      • Sublime Packages
    • Deploy - Github Pages
    • Deploy - Node/Sequelize
    • Deploy - Node/MongoDB
    • Deploy React
    • Deploy - Rails
      • Foreman (Environment Variables)
    • Deploy - AWS Elastic Beanstalk
    • Deploy - S3 Static Sites
    • Deploy - Django
    • Deploy - Flask
  • Data Structures and Algorithms
    • Recursion
    • Problem Solving - Array Flatten
    • Binary Search
    • Algorithm Complexity
    • Stacks and Queues
    • Bracket Matching
    • Ruby Linked Lists
      • Sample Code
      • Beginner Exercises
      • Advanced Exercises
    • JS Linked Lists
      • Sample Code
      • Beginner Exercises
      • Beginner Solutions
    • Hash Tables
    • Intro to Sorting
    • Insertion Sort
    • Bucket Sort
    • Bubble Sort
    • Merge Sort
    • Quick Sort
    • Heap Sort
    • Sorting Wrapup
    • Hashmaps
    • Trees and Other Topics
  • Python
    • Python Installation
    • Intro to Python
    • Python Lists
    • Python Loops
    • Python Dictionaries
    • Python Sets and Tuples
    • Python Cheatsheet
    • Python Functions
    • Python Classes
    • Python Class Inheritance
    • Intro to Flask
    • Intro to SQLAlchemy
      • Flask and SQLAlchemy
    • Using PyMongo
    • Intro to Django
    • CatCollector CodeAlong
      • URLs, Views, Templates
      • Models, Migrations
      • Model Form CRUD
      • One-to-Many Relations
      • Many-to-Many Relations
      • Django Auth
    • Django Cheatsheet
    • Django Auth
    • Django Polls App Tutorial
    • Django School Tool Tutorial
    • Django 1:M Relationships
    • Custom Admin Views
    • Data Structures and Algorithms
      • Recursion
      • Binary Search
      • Stacks and Queues
      • Linked Lists
      • Binary Trees
      • Bubble Sort
      • TensorFlow & Neural Networks
    • Adjacent Topics
      • Raspberry Pi
      • Scripting
  • Assorted Topics
    • History of Computer Science
    • Regular Expressions
    • Being Successful in SEI
    • Internet Fundamentals
      • Internet Lab
    • Adjacent Workflow
      • UX/UI
      • Wireframing Exercise: Build an Idea
      • Agile
    • Post SEI
      • Learning Resources
      • Deliverables -> Portfolio
      • FAQ
  • Projects
    • Project 1
    • Project 2
    • Project 3
      • Project 3 Pitch Guidelines
    • Project 4
    • Past Projects
      • Project 1
      • Project 2
      • Project 3
      • Project 4
      • Portfolios
    • Post Project 2
    • MEAN Hackathon
      • Part 1: APIs
      • Part 2: Angular
    • Portfolio
  • Web Development Trends
  • Resources
    • APIs and Data
    • Tech Websites
    • PostgreSQL Cheat Sheet
    • Sequelize Cheat Sheet
    • Database Administration
  • Archived Section
    • (Archived) ReactJS
      • Intro to React
        • Todo List Codealong
        • Additional Topics
      • Deploy React
      • React with Gulp and Browserify
        • Setting up Gulp
        • Additional Gulp Tasks
      • React Router
        • OMDB Router
        • OMDB Search
        • Additional Resources
      • React Animations
        • CSS Animations
    • AngularJS
      • Intro to AngularJS
        • Components and SPA
        • Create an Angular App
      • Angular Directives and Filters
      • Angular Animation
      • Angular Bootstrap Directives
        • Bootstrap Modals
      • Angular $http
      • Angular Services
        • Service Recipes
        • ngResource
        • Star Wars Codealong
      • Angular Routing
      • Angular + Express
      • Angular Authentication
        • Additional Topics
      • Angular Components
      • Angular Custom Filters
      • Angular Custom Directives
Powered by GitBook
On this page
  • Contributing to the Notes
  • Schedule
  • Origin of this gitbook
  • Future Directions
  • Connected Classroom Alteration (Fall 2018)
  • Fall 2017-Current
  • Early 2017
  • 2016 and Before
  • Prework
  • Front End Development
  • NodeJS/Express
  • Ruby on Rails
  • Python
  • AngularJS 1.x and APIs
  • React
  • Computer Science
  • Licensing

Was this helpful?

About These Notes

PreviousIntroductionNextSchedule

Last updated 4 years ago

Was this helpful?

Welcome to GA! This is the notes repository for our Software Engineering Immersive (formerly known as Web Development Immersive) FLEX. You can view the content in a more searchable/friendly format on !

Contributing to the Notes

  • All contributions can be done via pull requests

  • Recommended process:

    • Make changes in your forked repository (use a separate branch)

    • Create a pull request and be sure to be very explicit about the changes you've made

    • Ask someone on the instructional team to look at your pull request

Schedule

Notes below are organized by topic, but they are unordered. This is because we may at any point swap new material in or switch the order of the units.

Something to know is that some of the lessons here are more historical and haven't been used in at least a couple years. For example, the Ruby lessons and the lessons in unit 1 that delve deeper into the guts of ES5 syntax like prototypal inheritance. We've elected to skip that in favor of teaching OOP during the Python unit.

Origin of this gitbook

This is a second version of the working notes for the local SEI (formerly WDI) class held in person at the Seattle campus. Due to the changing nature of course delivery format in response to COVID-19, this course is only offered remotely at this time, and the student pool spans multiple campuses. This version of the notes is being continually tailored for the SEI FLEX, offered remotely starting on 08/18/2020. It will be a working set of documents as SEI instructors continually adapt this originally campus-driven curriculum for the new demands of work-from-home life and to accomodate the unique demands that families and individuals face during a global pandemic and social unrest over racial injustice.

Future Directions

TBD

Connected Classroom Alteration (Fall 2018)

Connected classroom (SEA and DTLA) used Python/Django as unit 2 instead of unit 4. Also removed much of unit 4 computer science topics.

Unit

Tech

Weeks

Topics

Front-End Web Development

HTML/CSS/JS

1 - 3

Version control, DOM manipulation, jQuery, AJAX, fundamentals

Full-Stack Web Development

Python/Django

4 - 6

Data Structures & Algorithms, Whiteboarding, Python fundamentals

Second Language Full-Stack Development

Node/Express/PostgreSQL

7 - 9

Local auth, RESTful routing, ORMs

Front-End Framework

React/Redux/Mongo (MERN)

10 - 12

JWT Token Auth, MongoDB

Fall 2017-Current

Local market demand and the fact that Angular and Ruby content was not up to date led us to the conclusion we should switch from Angular to React, and from Ruby to Python.

Unit

Tech

Weeks

Topics

Front-End Web Development

HTML/CSS/JS

1 - 3

Version control, DOM manipulation, jQuery, AJAX, fundamentals

Full-Stack Web Development

Node/Express/PostgreSQL

4 - 6

Local auth, RESTful routing, ORMs

Front-End Framework

React/Redux/Mongo (MERN)

7 - 9

JWT Token Auth, MongoDB

Second Language + Interview Prep

Python/Django

10 - 12

Data Structures & Algorithms, Whiteboarding, Python fundamentals

Early 2017

We began the transition from Angular to React. Some cohorts in this period may have learned either or both.

Additionally, much of the original Python material (locally) was developed at this time.

2016 and Before

Unit

Tech

Weeks

Topics

Front-End Web Development

HTML/CSS/JS

1 - 3

Version control, DOM manipulation, jQuery, AJAX, fundamentals

Full-Stack Web Development

Node/Express/PostgreSQL

4 - 6

Local auth, RESTful routing, ORMs

Front-End Framework

AngularJS (MEAN)

7 - 9

JWT Token Auth, MongoDB

Second Language

Ruby/Rails

10 - 12

oAuth

Prework

Front End Development

Topic

Labs + Assignments

Projects and Additional Topics

NodeJS/Express

Topic

Assignments

Projects and Additional Topics

Ruby on Rails

Topic

Assignments

Projects and Additional Topics

Python

Topic

Assignments

Intro to Python

Python Exercises

Python Challenges

Arrays and For Loops

File Processing

Python Unit Tests

Python Class Examples

Recursion

Binary Search

Linked Lists

Binary Trees

Graphs

Sorting

AngularJS 1.x and APIs

Topic

Assignments

React

Topic

Assignments + Labs

[Intro to ReactJS][]

Projects and Additional Topics

Computer Science

Topic

Assignments

Recursion/Problem Solving

Linked Lists

Bucket Sort

N/A

Licensing

  1. All content is licensed under a CC-BY-NC-SA 4.0 license.

  2. All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact legal@ga.co.

Fork

Binary Search

this repository
GA Dash
SEI Prework
FreeCodeCamp
User Stories and Wireframing
Wireframing: Build an Idea
Internet Fundamentals
Internet Lab
Command Line
Intro to Git
Command Line Murder Mystery
Github 101
HTML
CSS Selectors
CSS Box Model and Positioning
Recreate Instagram
Recreate Airbnb
JavaScript Primitives
Primitives Exercises
JavaScript Control Flow
Control Flow Problems
Google Shopping
JavaScript Functions
Functions Problem Set
Google Shopping Functions
DOM and Events
Reddit DOM
Temperature Converter
Callbacks and Iterators
Iterators Lab
Iterators with Reddit
Intro to jQuery
Random Quote Generator
Todo List
jQuery Plugins
jQuery UI Lab
AJAX
AJAX Pokemons
Reddit AJAX Slideshow
Responsive CSS
Bootstrap
Bootstrap Mockups
OOP with Constructors/Prototypes
Intro to TDD
Prototype Body Shop
Scopes
JavaScript Inheritance
Body Shop 2
Tic Tac Toe
Project 1
Code Review
Intro to Express
Daily Planet
Organization and APIs
Foreman
OMDB Movie Search
Intro to SQL
Apartment Lab
Intro to SQL
Carmen San Diego Lab
Advanced SQL
Booktown
CRUD in Express
Cruddy Board Games
Full RESTful Routing w/AJAX
Hackathon Teams
Daily Planet with AJAX (old)
Express with Databases via Sequelize
Pokedex
Link Shortener
Sequelize 1:M
Comments w/BlogPulse
Sequelize M:M
Project Organizer
Express Testing with Mocha and Chai
Starter code
Express Authentication Theory (Research/Code)
Express Authentication Practice (Codealong)
Starter Template
Deploy Node to Heroku
Example App
Project 2
oAuth
Realtime with Socket.io
Geocoding/Maps
Image Uploads with Cloudinary
Post Project 2
Code Review
Intro to Ruby
Ruby Exercises
Ruby Challenges
Ruby Classes
Ruby Testing with Rspec
Rspec Testing
Ruby Inheritance
Rio Grande
Intro to Rails
National Parks
APIs with Rest-Client
Data Scraping with Nokogiri
Nokogiri CLI Tool
Rails Asset Pipeline
Rails Auth/1:M
Link Board
Rails M:M
National Parks Part 2: Rangers
Polymorphic Associations
Link Board Comments
Front End Hackathon
Project 3
Group Collaboration
oAuth
Mailers
Image Uploads with Cloudinary
Static Site Generators (Jekyll)
JS/jQuery Review
Intro to Python
Python Exercises
Python Challenges
Convert JS to PY
Renobet
Python Unit Tests
Python Class Examples
Python Recursion
Python Binary Search
Python Linked Lists
Python Recursion
Python Graph
Python Sorting Algorithms
Intro to Angular
Angular Calculator
Directives and Filters
Fruits and Veggies
Animation with ngAnimate
Bootstrap Directives
$http
(DEPRECATED) Reddit Dashboard
Giphy Search
Angular Services
Angular Routing (UI Router)
Route Those Views
Intro to MongoDB
Mongoose
JSON Web Tokens
RESTful API
Angular + Express
Starter Code
Angular Authentication
Starter Code
Custom Filters
Creating Filters
Custom Directives
Creating Directives
Angular Components
Intro to ES6
Let and Const
Arrow Functions
ES6 Overview
React Video (2m)
React Video (8:30-16:30)
Create React App
React Components
React Virtual DOM
Virtual DOM Video
React Props
Multiple Props
React Props
React Nested Components
LotR Lab
React State
React Films
React Calculator
React ATM
React Router pt 1
React Router pt 2
Router Blog
APIs
Data Types
Shakespeare Fetch
Unidirectional Flow
Fetch the Weather
Functional Components
Functional Components Lab
Redux Intro
Lab 1
Lab 2
React Native Set-Up
React Native Lesson
Navigators
Deployment
Project 4
MEAN/MERN Hackathon
Interview Questions
ES6 Variables and Strings (Codepen)
ES6 Arrow Functions (Codepen)
Imperative vs Declarative
Deploying React Apps
React-Tac-Toe
Array Challenge
Algorithm Complexity
Auto Guess
Stacks and Queues
Bracket Matching
Singly Linked List
Linked List Methods
Bucket Sort: Sorting Papers
Bubble Sort
Merge Sort
Quick Sort
Sorting Wrapup
Hashmaps
Trees and Other Topics
Gitbook
GA Logo