Leonard Morrison

Leonard Morrison

Courses Plus Student

Edmonton, AB

32,914

Total Points

Points are earned whenever you take an important action on Treehouse.
Learn more about when and how points are earned.

Skills & Experience

  • Spoken Languages

    • English
    • Japanese
  • Looking for work

    Yes

388 Achievements

  • Setting Your Course
  • Careers in the Tech Industry
  • JavaScript Tools and Workflows
  • JavaScript is Everywhere
  • Controllers and Scope
  • Getting Started with Angular
  • Using Associations in Your App
  • PHP Includes
  • Sorting Algorithms
  • Searching Names
  • Merge Sort and Linked Lists
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • Creating Flexible Objects Using Protocols
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Java's Functional Toolset
  • Introduction to Object-Oriented JavaScript
  • The Merge Sort Algorithm
  • Building a Linked List
  • Exploring Arrays
  • Project Setup
  • Query Builder
  • Query Operators
  • Functional!
  • Adding a List Page
  • Modeling and Presenting Data
  • Now You're Querying!
  • Views
  • S3 Storage Service
  • AWS and "The Cloud"
  • UI Testing with Espresso
  • Unit Testing - Now Featuring Robolectric!
  • Unit Testing
  • Ordering, Limiting and Paging Results
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Recursion and Space Complexity
  • Algorithms in Code
  • Introducing Vue
  • Time Complexity
  • Playing a Counting Game
  • The Activity Lifecycle
  • Connect the Data
  • Adapters and ViewHolders
  • Displaying Lists of Data
  • Updating the Data Model
  • Publishing on Google Play
  • Hooking Up the Model to the View
  • Building the Weather UI
  • Working with JSON
  • Concurrency and Error Handling
  • Networking
  • Protocol Basics
  • Objects and Optionals
  • Introduction to Optionals
  • Introduction to Enumerations
  • Exploring an API
  • Active Record Associations
  • Persuasive Patterns
  • UI Patterns
  • Designing with Patterns
  • Spring Components and Configuring Our App
  • Improving Usability
  • Mobile Usability
  • Website Usability
  • What is Usability?
  • Python: Inheritance
  • A Route to a Delete Action
  • Routes to Update Actions
  • Routes for Create Actions
  • A Route to a Read Action
  • Rails Resource Index
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • Security: Solutions
  • Security: Concerns
  • Security in Practice
  • Common Attacks and Defenses
  • Introducing Unit Testing
  • Test Drive
  • Exploring Best Practices
  • Meet Selenium
  • Gotchas and Wins
  • Iteration
  • Creation
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Lists, Code, Links and Images
  • Understanding Markdown
  • Differentiating Between Objects
  • Class Inheritance
  • Classes in Swift
  • Python: Instant Objects
  • Dungeon Game 2
  • Python Sets
  • User Registration and Login
  • What is Authentication?
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • Finishing the Game
  • Introducing JavaScript
  • Python Tuples
  • Python Dictionaries
  • Python Slices
  • Angular Form Validation
  • Angular Basic Forms
  • Services in Angular
  • Angular Components
  • Setting Up an Angular Application
  • AJAX and APIs
  • What To Test
  • Test Driven Development
  • Writing Unit Tests
  • Unit Testing
  • Hello Internet!
  • Getting to Know Bootstrap 4
  • Transitions Framework
  • Animation Basics
  • Controllers
  • Project Setup
  • Functional Programming with Scala
  • First Steps in React
  • jQuery and AJAX
  • Big Data at Netflix
  • Where and How Big Data Is Used
  • What is Big Data
  • Hello, jQuery!
  • Getting Started with CSS Transitions
  • Building a Layout with Flexbox
  • Flexbox Properties
  • Understanding Flexbox
  • Getting Started With HTML
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Traversing the DOM
  • Self-Assessment
  • Complex Data Structures
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting Started with MongoDB
  • Programming AJAX
  • Adding Power to Functions
  • Functions in Swift
  • Control Flow With Conditional Statements
  • Control Flow With Loops
  • Dictionaries in Swift
  • Introduction to Collections
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • AJAX Concepts
  • What is User Experience (UX)?
  • Getting a Handle on the DOM
  • Selectors - Beyond the Basics
  • The Browser Environment
  • Python Lists
  • PHP Arrays
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Standard ListViews
  • Updating the Data Model
  • Introducing jQuery Plugins
  • Data Reader
  • Creating a Simple Drawing Application
  • Adding a Model Attribute
  • Using the Rails Console
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Handling Rails Requests
  • Creating Rails Apps
  • Loops and Final Touches
  • Encapsulation with Properties
  • Encapsulation and Arrays
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Choosing Options
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Organizing Forms
  • Form Basics
  • Inheritance
  • Build a Simple Todo List Program
  • Installing a Ruby Development Environment
  • PHP Internal Functions
  • PHP Returns & Closures
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • PHP Functions Basics
  • Installing Wordpress
  • Hooking up the Model to the View
  • Building the Weather UI
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Methods
  • Object-Oriented Programming
  • Scrum Artifacts
  • Scrum Events
  • Introducing Scrum
  • What is Agile?
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Manipulating Schema with SQL
  • Joining Relational Data Between Tables in SQL
  • Creating Tables and Manipulating Data with SQL
  • Reading Data from Databases with SQL
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • MASH JavaScript
  • MASH CSS
  • MASH HTML
  • Treehouse Club - JavaScript
  • Treehouse Club - CSS
  • Welcome to the Treehouse Club
  • WWW
  • The Internet
  • Computer Languages
  • Computer Basics
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Soft Skills - Psychology
  • Writing Online
  • Getting Started With Git
  • Why Version Control Matters
  • Installing Programs
  • Introduction to jQuery
  • Working with JSON
  • JavaScript Objects
  • Memory, Arrays and Loops, Oh My!
  • JavaScript Arrays
  • Setting Up Your Local Environment for Spring Development
  • JavaScript Loops
  • Ruby Booleans
  • What to Test
  • How To Test
  • Why Test
  • Environment and Redirection
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Letter Game App
  • Number Game App
  • Shopping List App
  • The Logo Sprint
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Build a Bank Account Class
  • Ruby Variables and Methods
  • Ruby Objects and Classes
  • Finding the Data You Want
  • Getting Data from a Database
  • Design Foundations Final
  • Becoming a Problem Solver
  • JavaScript Functions
  • Logo Design 101
  • Fundamental Concepts
  • Designing with the Latest Features
  • Understanding Aesthetics
  • JavaScript Conditional Statements
  • Introduction to Design
  • Creating an Icon
  • Introduction to Illustrator
  • Basic Layout
  • The Box Model
  • Event Planning
  • Build a Pomodoro App
  • Design a Better App
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Graphical User Interfaces
  • Advanced Tooling
  • IDE Exploration
  • How it Works
  • Efficiency!
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Data, Databases and SQL
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Build a Simple Contact List
  • Ruby Iteration
  • Ruby Loops
  • Exploring the Java Collections Framework
  • Organizing Data
  • Productivity
  • Presentation Skills
  • Build a Grocery List Program
  • Important Skills For Professional Success
  • Ruby Hashes
  • Ruby Arrays
  • Perfect
  • Getting There
  • Perform
  • Console I/O
  • Prepare and Plan
  • Getting Oriented - Object-Oriented, That Is
  • Logic in Python
  • Python Data Types
  • Concurrency and Error Handling
  • Networking
  • Exploring an API
  • Ruby Logical Operators
  • Ruby Control Structures
  • Ruby Operators
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Python For Beginners
  • Ruby Methods
  • Ruby Numbers (Ruby Basics)
  • Ruby Strings (Ruby Basics)
  • How Ruby Works
  • Immersive Examples
  • Scope and Loops
  • More Operators
  • Operators and Conditionals
  • Data Types and Variables
  • Intro to Objective-C
  • Finishing the User Interface
  • The Model-View-Controller Pattern
  • Intents and Multiple Activities
  • User Input
  • Testing and Debugging
  • Improving Our Code
  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • Newbie