Update

We have updated the content of our program. To access the current Software Engineering curriculum visit curriculum.turing.edu.

Learning Goals

Skill Proficiencies

Academic success in B3 means that students demonstrate proficiency and comfort with the concepts below. The expected mastery level can be understood with the following scale:

  • Mastery: student is able to explain and implement the concept independently or with light reference
  • Functional: student recognizes when to use the concept and can implement it with the support of documentation and/or a collaborator
  • Familiarity: student can recognize and describe the concept when needed/appropriate, but is not able to implement the technology/technique

Mastery

Object Oriented Programming

  • Students are able to use classes and methods to make abstractions that improve code quality
  • Students are able to write classes that demonstrate encapsulation of data
  • Students are able to explain how their code achieves abstraction and encapsulation
  • Students are able to apply MVC principles to separate responsibilities appropriately

APIs

  • Students are able to expose an API.
  • Students are able to consume external APIs

Testing

  • Students are able to test external API consumption
  • Students are able to test API exposure

Functional

Project Management

  • Students use pull requests to organize discussion about features.
  • Students communicate with product owners with regard to missing deadlines.
  • Students document intent and usage of their code for effective collaboration.
  • Students translate acceptance requirements into user stories that are ready for work.
  • Students utilize project management tools to communicate across technical teams and stakeholders/clients.
  • Students implement feedback from a code review to improve quality.
  • Students provide feedback in the form of a code review to improve quality and share knowledge.
  • Students are able to understand and build on an existing code base

Self-Directed Learning

  • Students formulate questions by synthesizing what was expected vs what was observed.
  • Students find resources online or in print to help them learn new technologies.
  • Students read documentation and implement strategies described.
  • Students ask meaningful questions.
    • Example: Don’t ask “How do I get this to work?” Instead, mention what has been tried, what happened, what was expected with a goal of understanding where you have made a wrong assumption.
  • Students utilize mentors and other community members to identify and discuss the merits of various implementations.

APIs

  • Students are able to use serializers to format json responses
  • Students are able to authenticate users via OAuth
  • Students are able to access the private resources of an OAuth-authenticated User

Testing

  • Students are able to mock external HTTP requests using tools such as Webmock & VCR

Databases

  • Students compose advanced ActiveRecord queries to analyze information stored in SQL databases.
  • Students write basic SQL statements without the assistance of an ORM.

Familiar

Optimization

  • Students are able to explain when to use caching strategies to improve performance in Rails.
  • Students are able to explain the scenarios that would benefit from using background workers in Rails.

Lesson Search Results

Showing top 10 results