# Sarah's Phase 1

Get Started. It's Free
Sarah's Phase 1

## 1. Week 1

### 1.1. RSpec

1.1.1. Cheering Mascot

1.1.2. Roman Numerals

1.1.3. Debugging Drill: Use a REPL

1.1.4. RSpec Basics

1.1.5. Review Revisit Roman Numeral

### 1.2. Debugging

1.2.1. Design Drill: Method Chaining

1.2.2. Debugging Drill: Read the Error

1.2.3. Design Drill: Code Style

1.2.4. Debugging

### 1.3. Psuedocode

1.3.1. Pseudocode Example

### 1.4. Regular Expressions

1.4.1. Regular Expressions

1.4.2. Pig Latin

1.4.3. Ruby Drill: Regular Expressions

1.4.4. Benchmarking with Blocks

### 1.5. Enumerables

1.5.1. Ruby Drill: Enumerable Methods

1.5.2. Implementing Enumerable Methods

1.5.3. Ruby Drill: Destructive Methods

1.5.4. Algorithm Drill: Shuffle

1.5.5. Words in a File

### 1.6. Data Structures

1.6.1. Data Drill: Nested Arrays

1.6.2. Data Drill: Nested Arrays 2

1.6.3. Ruby Racer

1.6.4. Word Search

1.6.5. Review: Abstract Data Structures

1.6.7. Build an Abstract Data Structure

### 1.7. Iteration vs Recursion

1.7.1. Algorithm Drill: Calculate a Factorial

1.7.2. Algorithm Drill: The Fibonacci Sequence

1.7.3. Benchmarking Iteration and Recursion

1.7.4. Algorithm Drill: Linear Search

1.7.5. Algorithm Drill: Binary Search

1.7.6. Anagrams 1: Detecting Anagrams

1.7.7. Anagrams 2: Generating Anagrams

1.7.8. Algorithm Drill: Prime Factors

1.7.9. Benchmarking Search Algorithms

1.7.10. Ruby Drill: Control Flow when Iterating

1.7.11. Algorithm Drill: Calculating Count of Subsets

1.7.12. Algorithm Drill: Calculating Count of Subsets

1.7.13. Review Reflect And Iterate

### 1.8. Single Responsibility

1.8.1. Numbers in Words

1.8.2. Single Responsibility Methods

1.8.3. Sudoku

### 1.9. Refactoring

1.9.1. Combating Smells: Extract Method

### 1.10. Extras

1.10.1. 99 Bottles

1.10.2. Battleship

1.10.4. Data Drill: Stack and Queue

1.10.6. Sieve Of Eratosthenes

1.10.7. Review Reflect On Learning

1.10.8. Ruby Scope

1.10.9. Reflect on Learning

1.11.1. Pry

1.11.2. Rubular

## 2. Week 2

### 2.2. Classes

2.2.1. Ruby Drill: Accessor Methods

2.2.2. Designing an Object's Interface

2.2.3. Ruby Drill: The Self Keyword

2.2.4. Ruby Drill: Exploring Scope

2.2.5. Model an Orange Tree

2.2.6. Inheritance

2.2.6.1. Design Drill: Classical Inheritance

2.2.6.2. Orange Tree 2: Groves

2.2.7. Mixins

2.2.8. Composition

2.2.8.1. Cookies and Ovens: Model a Bakery

2.2.9. Parsing Data: CSV to Ruby to CSV

2.2.10. Hospital Interface

2.2.11. From HTML to Ruby Objects

2.2.12. Design Drill: Argument Order Dependency

2.2.13. Display a Webpage

2.2.14. Hacker News HTML to CSV 2

2.2.15. Rational Numbers: Operators as Methods

### 2.3. Command Line

2.3.1. Ruby Drill: Command Line Arguments

### 2.4. Procs, Lamdas and Closures

2.4.1. An Introduction

2.4.2. Lamda vs. Proc

### 2.5. Driver Code

2.5.1. Guessing Game

### 2.6. Formats for storing data

2.6.1. Parsing Data 2 CSV In Anything Out

### 2.7. Single Responsibility

2.7.1. Command Line Todo List

### 2.9. Model View Controller

2.9.1. Ruby Flashcards

### 2.11. Databases

2.11.1. Database Drill: A Table for Students

2.11.2. Schema Design: One-to-many Schema

2.11.3. Schema Design: One-to-one Schema

2.11.4. Schema Design: Many-to-many Schema

2.11.6. Working in the SQLite Shell

2.11.7. SQLite Databases Intro

2.11.8. Database Fundamentals

2.11.9. Relational Database Concepts

### 2.12. Extras

2.12.1. Mastermind

2.12.2. KataBowling

2.12.3. P5 OO Inheritance

2.12.4. P6 OO Terminology

## 4. Week 3

### 4.1. Databases

4.1.1. Database Drill: SQL Tutor

4.1.2. Database Drill: Intro to SQLite

4.1.3. Poll Database Design

4.1.4. Poll DB 1: Queries

4.1.5. Poll DB 2: Modifying Data

4.1.7. IMDB Database Design

4.1.8. Reddit Jr Database Design

4.1.9. Forum Database Design

4.1.10. Database Drill: SQLite Shell Part 1

4.1.11. Database Drill: SQLite Shell Part 2

4.1.12. Schema Design

4.1.13. SQLite Commands

4.1.14. A Visual Explanation of SQL Joins

4.1.15. Write a Class Backend by a Database

4.1.16. Prepared Statements

4.1.17. University Course Database Design

4.1.18. Address Book DB from Schema

4.1.19. ActiveRecord Jr 1 A Basic ORM

4.1.20. Many To Many Schema To Database

4.1.21. Active Record Intro: Creating Tables

4.1.22. Congress Database 1 from CSV to SQLite with Ruby

4.1.23. Family Tree Database Design

### 4.2. Object Relational Mappers

4.2.1. Object Relational Mappers

### 4.3. Ruby Gems

4.3.1. Rake

4.3.2. Bundler and Gemfiles

### 4.4. Active Record

4.4.1. Active Record Intro: Code Base

4.4.2. Active Record Intro: Editing Tables

4.4.3. Active Record Intro: Retrieving Records

4.4.4. Active Record Intro: Inserting Records

4.4.5. Active Records Intro: Objects

4.4.6. RailsGuides on Active Record

4.4.7. Active Record Intro: belongs_to Association

4.4.8. Active Record Intro: has_many Association

4.4.9. Active Record Intro: Validations

4.4.10. ActiveRecord Student Schema

4.4.11. ActiveRecord Congress DB 1

4.4.11.1. Congress Database 2 Scrub and Analyze with Ruby

4.4.12. ActiveRecord Congress DB 2

4.4.13. Active Record Jr Part 2

4.4.14. Active Record Jr Part 3

4.4.15. Active Record Jr Part 4

4.4.16. Congress Database 3

4.4.17. Congress Database 4

4.4.18. DB Drill: ActiveRecord Associations

4.4.19. DB Drill: AR Symmetric Migrations