Prework & Module a Programming Fundamentals Ruby Basics And
Total Page:16
File Type:pdf, Size:1020Kb
CPSC S115: Introduction to Full-Stack Web Development Prework & Module A Programming Fundamentals Ruby Basics and Object Oriented - Programming Syllabus Unit Learning Objectives Reference Topics Competency Based Hours Assignments Pre- Work 1 • Understand the value and uses of • Git • Quiz: Git Basics 15 version control with Git • commit • Git Todo • Complete the full Git project flow • push • Git Flow • Work with the computer through • pull • Git Merge the command line and BASH • remotes Conflicts • add • Command Line Mystery • fork • merge • BASH • intro • ls • cd • pipes 2 • Create basic web sites using • Basic HTML • HTML Album 15 HTML • Lists Cover • Publish sites to different web • Tables • HTML Blog hosts • Images • HTML Issue Bot • Understand the distinction 9000 • Links between styling and content • HTML Map • Validatio ns Contact Forms • Site Publishing Code Along • Publishi ng • HTML5 Video to FTP Codealong • Publishi ng • HTML5 to Github Semantic Pages Elements Codealong • HTML5 • Forms • Media • Video • Semantic Elements 3 • Understand how to use CSS to • CSS Selectors • CSS Kitten 5 style HTML elements • Class Wheelbarrow • Lay block objects out using the • Id • CSS Graffiti box model Override • Element • Create interfaces for mobile and type • CSS Issue Bot web 9000 • Page Layout • Use the Bootstrap framework to • Box model • Creating increase speed of development • Overflow Columns Codealong • Fluid Height • CSS Layout Quiz • Float • ZHW Shoes • Centering Layout • Box Styles Codealong • Adding Responsive Features Codealong • Bootstrap Carousel Codealong 4 • Create basic decision trees • Conditionals • More Vowels 20 • Receive input from the • if Command Line • Badges and • switch/c ase Schedules • Manipulate strings • Looping • Deli Counter • Work with Basic Looping • while • Phone Number • for Formatter • do...whil e • Cartoon • Command Line Input Collections • gets • Jukebox CLI • Manipulating strings • reverse • upcase • interpola tion • gsub 5 • Why and when to use arrays • Adding • My Each 20 • Work effectively with adding and • Push removing from arrays ○ << • Oxford Comma • Removing • Apples and • pop • Acting on arrays with • shift Holidays iteration and introspection • Introspection • Song Sorter • Retrieve, add and delete • flatten arrays nested inside other Tweet • uniq • arrays Shortener • include ● • indexed access • Iteration • Key for min • each value • map • Spotify API Lab • select • detect • Nested Data • 2D arrays • multi-di mension al arrays 6 • Why and When to use Hashes • Adding • Hashketball 25 • Adding, removing and ○ []= introspecting hashes method • NYC Pigeon Organizer • Manipulating and • Removing and • Apples and normalizing data into nested introspection Holidays hashes • select • map • detect • Nested Data Module A 7 • Understand why Object • History of OO • Class and 20 Orientation was created • OO Patterns Instances Lab • Understand the benefits of • Separation of • Instance Object Oriented Programming Concerns Methods Lab • Differentiate between • Managing • Instance Instances and Classes Internal State Variables Lab • Implement Methods and • Classes vs. Instances • Object Properties in Classes Attributes Lab • Classes have behaviors • OO Meowing Cat • Methods • Classes have attributes • Instance Variable s • attr_aces sor • setters • getters 8 • Understand the Object • Creating an init method • Object Initialize 15 Lifecycle • setting Instance Lab • Create an initializer Variables in init • OO Basics • Other Defaults 9 • Work with the concept of self • Class Constants • OO Basics w/ 20 • Understand Class level • Creation Class Constants constructs • Why do we use • OO School them? Domain • Self • OO Counting Sentences • Class Variables • Class Variables • Why use them? and Methods • Using as a Lab collection of all • Ruby Puppy created instance s • Advanced Class Methods Lab • Class Methods • understanding the all method • Creating class methods • Private Methods • OO Program ming as interface based program mining • How to define access levels 10 • Be able to model a domain • Domain Modeling • OO Email 10 with OO principles • Deciding on Parser • Work with larger projects and properties • Anagram chunk them into smaller • Deciding on detector segments methods • OO Cash Register • What should be public vs. private 11 • Understand the power of • Why Relationships are • Belongs to 25 relating objects important Object Lab • Use a belongs to relationship • Belongs To • Has Many • Use a has many relationship • Adding to all Objects Lab • Collaborate between two class variable • Collaborating objects • Domain modelin Objects Lab • Use a has many through g a belongs to • OO My Pets relationship • Has Many • OO Kickstarter • Reciproc al • OO Banking relations hips • Has Many • Domain Objects modeling a Through Lab belongs to • Adding to class variables in both direction s • Collaborating Objects • Relation ships that aren’t ownership • When to separate behavior s/attributes into new classes • Has Many Through • Domain Modeling Has Many Through • Has Many Through just two different has many relations hips 12 • Understand the value of mass • Mass Assignment • Mass 20 assignment • Problem with Assignment • Use simple meta manual assignm LAb programming ent • Custom Erorrs • Passing in an • OO Triangle options hash • Meta programming • Using the send method • Using send to implement mass assignment 13 • Grab data from websites using • Gems and Bundler • Scraping 5 Scraping • Where to find Flatiron • Integrate third party code gems • Scraping using gems • Open Source Kickstarter • Gem version control with Licensing Bundler • How to choose gems • Installing and requiring gems • Using a Gemfile • Scraping • Nokogiri • Using CSS Selectors 14 • Working in large ruby • Domain Modeling • Playlister CLI 5 projects • Task Breakdown practice • Student • Understand how to break Scraper large problems down into • Tic Tac Toe smaller, workable chunk with AI • CLI Data Gem Assessment Module B Web Frameworks: Web Development with Rails Syllabus Unit Learning Objectives Reference Topics Competency Based Hours Assignments 1 • Understand the uses of • SQL Introduction • Bear Organizer 5 SQL • Installing SQLite • Aggregate • Understand the layout of • SQL Basics Functions Lab basic databases • SELECT • Install and run basic commands with SQLite • INSERT • Use Aggregate functions • UPDATE • CREATE • ALTER • Using .sql files • SQLite data types • Aggregate Functions • SUM • COUNT • MAX • MIN 2 • Understand what a JOIN is • Relational Databases • SQL 10 • Understand foreign keys in • History Crowdfunding Lab has many/belongs to • Relations as related relationships to ruby object • SQL Library Lab • Understand Complex joins relations and Join tables • JOIN Statements • foreign keys • Left Outer Join • Left Inner Join • Sorting and Grouping Data • ORDER BY • GROUP BY • Complex Joins • Many-to-Man y relationships • Join tables • Understand how ruby can • SQLite gem • Pokemon 10 talk to SQLite Databases • Execute Scraper • create table • results 4 • Understand the value and • Mapping Objects to tables • Mapping to 10 power of ORMs • Working with string Table Lab • build a simple ORM interpolating INSERT • Mapping DB to • Work with the inheritance • CREATE Table from Ruby Lab and meta-programming attributes • ORM update Lab required for ORMs • Mapping Tables to Objects • ORM Bringing it • Dynamically create all together attributes • Dynamic ORM • all method Lab • find methods • Bi-Directional mapping • UPDATE • save checking for persistence • Dynamic ORMs • meta programmin g attributes • Refactoring common behavior to super • Use ActiveRecord as an • ORM To Active Record • Translating ORM 15 ORM • Translate previous to AR • Understand all the features custom ORM • ActiveRecord ActiveRecord provides methods into Create, Read, • Use Rake tasks to perform ActiveRecord method Update, Delete database migrations • Use ActiveRecord • Rake Lab ::Base • Writing Migrations • ActiveRecord Costume Store • Activerecord • Rake TV-show • Create custom rake tasks • Explain Rakefile • Migrations • Explain value of migrations • Write change migrations • Run migrations without rake • Run migrations with rake 6 • Understand associations • ActiveRecord Macros • Activerecord- TVland 5 in ActiveRecord • has many • Map ActiveRecord • belongs to association to previous associations in ruby • has many :through • migrations with relationships 7 • Understand the history • Working with the Internet • Rack Todo 5 and current status of • HTTP Verbs • Rack Lab HTTP • What is a protocol • Work with the HTTP Request cycle in ruby and • HTTP Request Rack headers • Understand Rack as HTTP • URLs Middleware • HTTP Responses • Params • accessing params • Rack • Using the params hash • Value of middleware 8 • Implement the HTTP • Sinatra in app.rb • Sinatra Hello World 10 Request/Response Cycle • Sinatra as a gem • Sinatra Basic Routes with Sinatra • Simple GET Lab • Understand the value of requests in • Sinatra Basic MVC and how to implement it in Sinatra sinatra Views Lab • Render front end with ERB • Moduler Sinatra applications • Sinatra Views templating • Shotgun Lab • Sinatra Routing • Different HTTP Verbs in Sinatra • MVC • Values of MVC • Separation of Concerns • How MVC works in Sinatra • Views • Templating • in line ruby 9 • Understand how to gather • Dynamic Routes • Dynamic 15 user input through forms • Symbol routing syntax Routes Lab • Work with form data to • params hash • Basic Sinatra create responses Forms Lab • Basic Forms • Create