You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adventure Game lab part 2. Page 149-158 in Beginning Ruby
Homework
Work through Chapters 7, 8 of Learn to Program
More Git Immersion (upto lab 25)
Optional Lesson: More About Methods
Can't get enough methods? Check out Chapter 6 of Learn to Program. It'll go over some common (and not-so-common) methods for some of our favorite types of objects: integers and strings.
Week 2
In Week 2 we continue to discover the Ruby language with more exercises involving command-line scripts. We will focus the majority of our time on Objects, cementing the learning of Hash, Array, and String functionality, and begin to explore other standard classes from Ruby core (Dates and Times, for example.)
Learning Goals
Scope
Learn core Ruby concepts
Objects
Object Inheritance
Solidify our knowledge of Strings, Arrays, and Hashes
In Week 3 we will be learning some intermediate ruby ideas such as attr_accessor, advanced variables, memoization, and Enumerable. For the project we will be building a pure ruby application backed by a CSV database called FarMarFinder. By the end of the week students should be able to build a ruby DSL for a relational CSV backed database using basic ruby methodologies and best practices.
Learning Goals
Learn basic/intermediate ruby concepts and methods
Defining attributes with attr_accessor
Scopes of all variable types (local, instance, global, etc...)
In Week 4 we introduce introduce Test-Driven Development (TDD) and basic networking concepts. We will spend 2 days exploring TDD and the rspec toolset through building our own testing projects and tests. We then pivot into an introduction of the "plumbing" of the Internet and how clients such as web browsers communicate with servers. We build a pair of applications using the streamlined website framework Sinatra to begin exploring HTTP response cycles and basic Model-View-Control (MVC) techniques through building and deploying a blog.
Learning Goals
Introduced to basic TDD concepts
rspec
how to write a test
becoming comfortable writing code against a spec
Learn basic architecture of the Internet
Learn the HTTP response cycle
Build a personal blog in Sinatra
Grow skills in reading technical documentation by working with the Sinatra: Up and Running book
In week 5 we will be learning the basics of HTML & CSS. By the end of the week we will style a single page website using the common HTML & CSS practices and deploy it to Heroku. We will also rebuild a blog to implement as side pages to our single page site.
Our learning will focus on the usage of basic HTML tags and their potential attributes. We will learn about CSS selectors, cascading rules, and common techniques for creating important web page elements. By the end of the week students should be able to create and style a webpage using valid HTML and CSS.
Learning Goals
Learn basic techniques and best practices for HTML
Learn basic techniques and best practices for CSS
Create a personal website focusing on styling
Reiterate the concepts of views and layouts of Sinatra
For additional online resources see the resources page.
Week 6
Week 6 we introduce students to the Ruby on Rails framework, which will be the focus of much of their work for the remainder of the course. Working in pairs, students build a basic Rails application. The focus is on learning how Rails and its implementation of MVC differ from Sinatra, how to work with ActiveRecord models and relationships, and begin to develop very basic proficiency with Rails.
NOTE! If you haven't done about_beginning_the_search.rb, you may be
surprised that the tests hang when you try to run it. This is because
the koan has an infinite loop that you need to fix. Open the file and
try to figure out how to get the to get the while loop at line 47 to
terminate.
work through 3.3 and 3.4, and the first exercise of 3.5
* Take an hour lunch at any time
Week 7
In week 7 we will focus on reinforcing the major components of Rails, seen in this rails stack diagram. Each day we will have a lecture on a piece in order of the request cycle. We will also be working on Betsy, an online webstore for independent merchants to sell their goods. At the end of the week students will have learned and practiced the rails stack.
Learning Goals
Learn about the major components of a rails app
User Authentication
Controllers
Views
ActiveRecord
Validations
Practice implementing features within a rails app
Use project management software
Use agile development practices in a group of four
For additional resources on the topics covered this week see weekly resources.
Week 8
In Week 8 we will continue working in groups of 4 on the Betsy project introduced in Week 7. The majority of the week will be devoted to project time, with short lectures and assignments to introduce students to basic computer science concepts.
Learning Goals
continued exposure to Rails
increasing skills in group work habits
improving technical workflow
increasing git/github competency
extended introduction of computer science material
In week 9 we will be focusing on comprehension of the rails request cycle. Students will be creating a simple rails app to store and rank media by type. By the end of the week students will be able to identify each piece of the rails request cycle and the methods and variable scopes available within each of them.
Learning Goals
Identify the role of HTTP request
Advanced understanding of the role, scope, and syntax or routes.rb
Week 11 will be a break from Rails to focus on JavaScript and jQuery. We'll focus first on learning core JavaScript language concepts, and then how to use JavaScript and jQuery to program web pages in the browser. Students will create a simple to do list app to add to do list items dynamically to a web page. By the end of the week, students will be able to use JavaScript and jQuery to interact with and modify web pages, and use JavaScript variables, types, arrays, functions, objects, and jQuery methods.
Learning Goals
Understanding of core JavaScript concepts and features:
variables
types
arrays
functions
scope
objects
Understanding of the DOM and how the browser loads and represents web pages.
Using JavaScript and jQuery to modify a web page:
with the JavaScript document object and associated methods
with jQuery's $ function and associated methods
Understanding event handlers to write code that responds to user interaction.
Look at the jQuery ajax (http://api.jquery.com/jquery.ajax/) API and
think about how you might send a list of to do items to store on
the server with Rails. In this week's projects, the to do items
are not saved; they go away each time you reload the page. By sending
the items to the server you can save them for use in a subsequent session.
In week 12 work on SeeMore project, in which the students will create a RESTful web API from a public or private data source, and learn to work within a larger Agile team.
In week 13 we will continue working on SeeMore project, in which the students will consume a RESTful web API from a public or private data source, and learn to work within a larger Agile team.
In Week 14 we will be starting a 2 week long pairing project in which students will build a community garden planning application. The emphasis will be on building strong pair programming skills, revisiting the lessons of the previous 2 projects, and continuing to develop competency with testing.
In Week 15 we will be continuing a 2 week long pairing project in which students will build a community garden planning application. The emphasis will be on building strong pair programming skills, revisiting the lessons of the previous 2 projects, and continuing to develop competency with testing.
This week lectures may be à la carte, some potential topics to talk about as a class or in smaller groups:
In Week 16 we will be begin a 2 week long unit on Refactoring and Service Oriented Architecture. Build a Shipping service for a ecommerce projects. The emphasis will be on instilling good code craftsmanship and citizenship, exploring service APIs, and continuing to develop competency with testing.
In Week 20 we begin capstone projects. In this week
we will have lectures on relevant topics for a wide variety of capstone
requirements. Students will have frequent checkins with an instructor to ensure
the project is on track, review stories, and consult on any problems.
In Week 21 we continue capstone projects. In this week
we will have guest lectures on relevant topics for a wide variety of capstone
requirements. Students will have frequent checkins with an instructor to ensure
the project is on track, review stories, and consult on any problems.
Learning Goals
Continue development of Capstone project
Discover gaps in learning and identify resources to fill them in
In Week 22 we continue capstone projects. In this week we will have 2 guest lectures on relevant topics for a wide variety of capstone requirements. Students will have regular checkins with an instructor to ensure the project is on track, review stories, and consult on any problems.
Lecture topics include:
Internationalization (i18n)
Revisting EC2
Learning Goals
Continue development of Capstone project
Discover gaps in learning and identify resources to fill them in
In Week 23 we continue capstone projects. In this week
we will have guest lectures on relevant topics for a wide variety of capstone
requirements. Students will have frequent checkins with an instructor to ensure
the project is on track, review stories, and consult on any problems.
In week 24 we will break into teams by the language being used within internships. Each team will have a guest lecturer for the day. Each lecturer will prepare a 1-3 hour lecture, a small exercise, as well as supporting material.