Skip to content

Instantly share code, notes, and snippets.

@audreyandoy
Created August 7, 2021 02:22
Show Gist options
  • Save audreyandoy/d0e516dedbb259ba59a5b378658fbd4a to your computer and use it in GitHub Desktop.
Save audreyandoy/d0e516dedbb259ba59a5b378658fbd4a to your computer and use it in GitHub Desktop.
C16 Syllabus

Ada Developers Academy Cohort 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, Python, Flask and computer science fundamentals. Our complete curriculum is online and open-source.

We focus on teaching skills that are readily transferable 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 Python, Java, JavaScript, C++, C#, Objective-C and Ruby, among other languages and frameworks.

Major topics of study include:

Writing Software

  • Python
  • HTML & CSS
  • Flask
  • Web APIs
  • JavaScript
  • CS Fundamentals

Being a Developer

  • Leadership & Inclusion
  • Test-Driven Development
  • Pair Programming
  • Agile Practices
  • Networking
  • Career Readiness

Expected Outcomes

Python

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

Students should be able to:

  • Write complex command line programs in Python
  • Use object-oriented programming principles 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 developers.

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

Flask

Flask is a Python micro-framework for building web servers. We use Flask 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 a week.

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 React.

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

Computer Science Fundamentals throughout the classroom and on Thursdays during the internship periods. You can click the previous links to see a through description of the concepts taught.

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 Unit Topics
Week 01 Python Student Orientation, Intro to Python, Functions, Basic Data Structures
Week 02 Python Intro to Git, TDD, Files, Pair Programming
Week 03 Python Intro to Classes, Exception Handling, Writing Tests
Week 04 Python Object-Oriented Programming
Week 05 Python Object-Oriented Design, More Git
Week 06 BREAK  
Week 07 SQL Intro to Databases
Week 08 Flask Intro to Request/Response Cycle, Intro to Flask
Week 09 Flask Intro to APIs
Week 10 Flask HTTP & REST
Week 11 Company Presentations Interlude
Week 12 Company Presentations Interlude
Week 13 HTML/CSS Intro to Static websites, HTML, CSS
Week 14 Javascript Intro to JavaScript
Week 15 JavaScript JS in the Browser, API requests
Week 16 React Intro to React
Week 17 React React Forms and Axios
Week 18 BREAK  
Week 19 Career Prep Career Prep and Curriculum Wrap-up
Week 20 Interviews  
Week 21 BREAK  
Week 22 Capstone Capstone Project Details, Reflection, Tutorials
Week 23 Capstone Project  
Week 24 Capstone Project  
Week 25 Capstone Project Presentations
Week 26 BREAK  
Week 27 Internship Begins  
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment