Skip to content

Latest commit

 

History

History
126 lines (90 loc) · 6.28 KB

C07_classroom.md

File metadata and controls

126 lines (90 loc) · 6.28 KB

Ada Developers Academy Cohort 7 Syllabus

Overview

Ada Developers Academy teaches full-stack web development, allowing students to choose what specialty of software development they want to pursue in their post-Ada careers. We cover HTML/CSS, JavaScript, Ruby on Rails, and computer science fundamentals. Our complete curriculum is online and open-source.

We focus on teaching skills that are readily transferrable from one technology stack to another, making Ada students adaptable and flexible candidates for all types of developer positions. Students have been successfully placed in internships and jobs working in Ruby, Java, JavaScript, C++, C#, Objective-C and Python, among other languages and frameworks.

Major topics of study include:

Writing Software Being a Developer
Ruby Leadership & Inclusion
HTML & CSS Test-Driven Development
Ruby on Rails Pair Programming
Web APIs Agile Practices
JavaScript Networking
CS Fundamentals Career Readiness

Expected Outcomes

Ruby

Ruby is a dynamically typed, interpreted, object-oriented language. In addition to serving as a great introduction to programming, Ruby is the foundation of the Ruby on Rails framework, and is used for most of our CS Fundamentals curriculum.

Students should be able to:

  • Write complex command line programs in Ruby
  • Use object-oriented programming principals to build scalable, maintainable programs
  • Read and write files, and process large amounts of data
  • Verify code from the outset using test-driven development

HTML & CSS

HTML and CSS are two of the core technologies on which the web is built, allowing web developers to structure content in a hierarchy and specify how it should be presented to the user. Both are foundational for web develoeprs.

Students should be able to:

  • Read and write HTML and CSS
  • Utilize semantic tags to provide clear structure to HTML
  • Manage the layout of a complex web page using CSS

Ruby on Rails

Ruby on Rails is a robust and comprehensive MVC framework for building web servers. We use Rails to address a wide range of topics, from HTTP, REST and web standards to database operations. This unit also includes a large team project completed over two weeks.

Students should be able to:

  • Build and deploy a complete web application, from the HTML & CSS on the page to the backing database
  • Model complex real-world relations using ActiveRecord
  • Use Git, TDD and agile practices to coordinate a large team

Web APIs

APIs allow programs to talk to each other, and have become an important part of the modern web. We focus both on consuming third party APIs and on producing our own APIs, laying the foundation for future front-end development.

Students should be able to:

  • Explore and utilize third party APIs
  • Design an API to expose their own data
  • Write programs that parse and format JSON

JavaScript

As the language of the web, an understanding of JavaScript is essential for any prospective web developer. In addition to core language features, we'll cover some of the excellent libraries that enable modern web apps such as jQuery, Underscore and the Backbone framework.

Students should be able to:

  • Read, write and test JavaScript
  • Manipulate the DOM dynamically
  • Build a complete single-page application, using AJAX to integrate with an API
  • Organize a web app using a front-end framework

Computer Science Fundamentals

Ada graduates are expected to have an understanding of the basics of computer science. This includes common data structures and algorithms, and notions of space- and time-complexity.

Students should be able to:

  • Compare and evaluate different solutions to the same problem
  • Select the appropriate data structure to solve a given problem
  • Understand and trace recursive functions
  • Analyze the efficiency of basic programs, and discuss potential trade-offs and optimizations

Capstone Project

As a culmination of each student's classroom learning experience, they create a capstone project to showcase what they have learned thus far in the program.

Students should be able to:

  • Demonstrate self-direction, time management, and independent learning
  • Learn and implement new technologies
  • Complete a product lifecycle from conception to delivery
  • Utilize agile practices to assist in project completion

Week-by-Week

Date Week Unit Topics
Feb 6 Week 01 Introduction Student Orientation, Bash, Intro to Ruby
Feb 13 Week 02 Ruby Intro to OO, Gems, Pair Programming
Feb 20 Week 03 Ruby More OO, Files, Inheritance
Feb 28 Week 04 Ruby Enumerables, TDD, Minitest
Mar 6 Week 05 Ruby Large Projects, Git
Mar 13 Week 06 HTML & CSS Web Design, Semantic HTML, CSS Layouts, Developer Tools
Mar 20 Week 07 Ruby on Rails HTTP & REST, MVC, Rails Components
Mar 27 Week 08 BREAK  
Apr 3 Week 09 Ruby on Rails Model Associations
Apr 10 Week 10 Ruby on Rails Unit Testing, Foundation
Apr 17 Week 11 Ruby on Rails OAuth, Controller Filters, Advanced ActiveRecord
Apr 24 Week 12 Ruby on Rails Agile, PM Skills, Working With a Large Team
May 1 Week 13 Web APIs Consuming APIs
May 8 Week 14 Web APIs Producing APIs
May 15 Week 15 JavaScript Intro to JavaScript, the DOM, jQuery, Advanced Developer Tools
May 22 Week 16 JavaScript jQuery, AJAX, Underscore
May 29 Week 17 JavaScript Intro to Backbone
Jun 5 Week 18 INTERVIEWS  
Jun 12 Week 19 JavaScript TDD in JavaScript
Jun 19 Week 20 JavaScript Consuming APIs
Jun 26 Week 21 BREAK  
Jul 3 Week 22 Capstone Project  
Jul 10 Week 23 Capstone Project  
Jul 17 Week 24 Capstone Project  
Jul 24 Week 25 Capstone Project Presentations
Jul 31 Week 26 BREAK  
Aug 7 Week 27 INTERNSHIP BEGINS