/Full-Stack-Python

Term 1 Schedule for combined CS 1.1 and BEW 1.1

Primary LanguageHTMLMIT LicenseMIT

Full Stack Python (BEW 1.1 + CS 1.1)

Course Description

Welcome to your first term at Make School! This course is a combination of our CS 1.1 and BEW 1.1 courses, with topics interlaced in order to give you a cohesive and complimentary learning experience. You'll learn how to turn specifications and word problems into code, build websites from the ground up, get familiar with a new language, and everything in between.

Why you should know this

This course will provide you with the first set of foundational knowledge you will need to be a successful software engineer. Getting familiar with your first stack and learning core CS and BEW concepts will set you up for success in the rest of your courses here at Make School, as well as your engineering career.

Learning Outcomes

By the end of the course, you will be able to ...

CS 1.1

  1. Explain how to break down a problem into a programable algorithm.
  2. Translate user stories and requirements into a program.
  3. Practice core programming concepts including data structures, control flow, repetition, functions, and object oriented programming.
  4. Implement core programming concepts in Python.
  5. Implement programming best practices, debugging, and testing in Python.

BEW 1.1

  1. Explain the MVC architecture for web server development.
  2. Use Resourceful Routes and explain the importance of Resourceful web architecture.
  3. Read and write to a Document-Based (NoSQL) database using a Object Document Mapper (ODM)
  4. Use Web application frameworks, middleware packages, and server-side templating.
  5. Implement controller testing patterns.

Schedule

Course Dates: Monday, August 26 – Thursday, October 10, 2019 (7 weeks)

Class Times for Sections A and B:

  • Monday & Wednesday at 1:30–3:20pm
  • Tuesday & Thursday at 9:30–11:20am
  • Lab Time: Tuesday at 3:30–5:00pm
  • Lab Time: Thursday at 1:30–3:00pm

Class Times for Sections C and D:

  • Monday & Wednesday at 3:30–5:20pm
  • Tuesday & Thursday at 1:30–3:20pm
  • Lab Time: Tuesday at 9:30–11:00am
  • Lab Time: Thursday at 3:30–5:00pm

Course Calendar

Class Date Quiz Topics Class Topics Instructor (Sections A & C) Instructor (Sections B & D)
1 Mon, Aug 26 - Welcome + Static Website Dani Roxberry Meredith Murphy
2 Tue, Aug 27 - Git & GitHub Dani Roxberry Meredith Murphy
3 Wed, Aug 28 - Variables, Functions & Program Design Jess Dahmen Alan Davis
4 Thu, Aug 29 - Control Flow & Lists Jess Dahmen Alan Davis
- Mon, Sep 2 - NO CLASS - Labor Day
5 Tue, Sep 3 Variables, Functions & Program Design
Control Flow & Lists
Pseudocode & Flowchart Diagrams Jess Dahmen Alan Davis
6 Wed, Sep 4 Static Website
Git & Github
Intro to Flask Dani Roxberry Meredith Murphy
7 Thu, Sep 5 - Flask Templating Dani Roxberry Meredith Murphy
8 Mon, Sep 9 - Problem Solving Strategy Jess Dahmen Alan Davis
9 Tue, Sep 10 - URLs, HTTP, REST & Error Handling Dani Roxberry Meredith Murphy
10 Wed, Sep 11 - Code Quality, Reuse & Error Handling Jess Dahmen Alan Davis
12 Thu, Sep 12 - Review + GIF Search Dani Roxberry Meredith Murphy
11 Mon, Sep 16 - Debugging & Testing Jess Dahmen Alan Davis
14 Tue, Sep 17 Intro to Flask
Flask Templating
Testing RESTful Routes Dani Roxberry Meredith Murphy
13 Wed, Sep 18 Pseudocode & Flowchart Diagrams
Problem Solving Strategies
Code Quality, Reuse & Error Handling
OOP Part 1: Encapsulation Jess Dahmen Alan Davis
15 Thu, Sep 19 - Model, View, Controller & Review Dani Roxberry Meredith Murphy
16 Mon, Sep 23 - OOP Part 2: Inheritance Jess Dahmen Alan Davis
17 Tue, Sep 24 - Document-based Databases Dani Roxberry Meredith Murphy
18 Wed, Sep 25 - OOP Part 3: Polymorphism Jess Dahmen Alan Davis
19 Thu, Sep 26 URLs, HTTP, REST, & Reading Errors
Testing RESTful Routes
ERDs, Resource Associations, & MongoDB Dani Roxberry Meredith Murphy
20 Mon, Sep 30 - Herd Immunity & Simulation Jess Dahmen Alan Davis
21 Tue, Oct 1 - Project Planning and User-Centered Development Dani Roxberry Meredith Murphy
22 Wed, Oct 2 Debugging & Testing
OOP Parts 1, 2 & 3
Computer Components & Organization Jess Dahmen Alan Davis
23 Thu, Oct 3 Document-based Databases
ERDs, Resource Associations, & MongoDB
RESTful APIs & Deployment Environments Dani Roxberry Meredith Murphy
24 Mon, Oct 7 - Herd Immunity Simulation Project Lab Jess Dahmen Alan Davis
25 Tue, Oct 8 - Contractor Project Lab Dani Roxberry Meredith Murphy
26 Wed, Oct 9 OOP Parts 1, 2 & 3
Computer Components & Organization
CPU Instructions & Memory Jess Dahmen Alan Davis
27 Thu, Oct 10 - Final Contractor Project Presentations Dani Roxberry Meredith Murphy

Assignment Schedule

Assignment Date Assigned Due Date Submission Form
Captain Rainbow's Color Checklist Wed, Aug 28 Tue, Sep 3 Submit Rainbow Checklist
Mad Libs Wed, Aug 28 Tue, Sep 3 Submit Mad Libs
Spaceman + Code Review Tue, Sep 3 Wed, Sep 11 Submit Spaceman
GIF Search + Pair Programming Thu, Sep 5 Thu, Sep 19 Submit GIF Search
Super Hero Team Dueler + Code Review Wed, Sep 18 Mon, Sep 30 Submit Superheroes
Playlister Thu, Sep 19 Tue, Oct 1 [Submit Playlister]
Herd Immunity Simulation Mon, Sep 30 Thu, Oct 10 Submit Herd Immunity
Contractor Project + Code Review + Pair Program Session Thu, Sep 26 Thu, Oct 10 [Submit Contractor Project]

Read the project rubric before the due date to ensure your code meets all expectations.

Assignments

Homework

In addition to the assignments below, you will have smaller coding challenges, generally assigned at the end of a class. Please refer to the individual lesson materials for instructions/due dates on these smaller assignments.

Quizzes

There will be 8 quizzes held during this course. Please reference the above schedule for quiz topics and dates. These quizzes will be used in place of a final exam. Your lowest quiz score for each course (CS 1.1 and BEW 1.1) will be dropped, so your total quiz score will be based off of the other 3 quizzes in that course.

Quizzes will cover all topics outlined in the schedule, with the exception of the following:

  • Any lab days
  • Final Contractor Project Presentations
  • Herd Immunity Simulation
  • CPU Instructions & Memory

Code Reviews and Pair Programming Sessions

Throughout this course, you will be required to seek out 3 code reviews and conduct 2 pair programming sessions on specific assignments. These will be requirements that must be completed for submitting your assignment. You will learn about code reviews and pair programming in learning sessions during the first few weeks of the term.

For code reviews, you must submit the name of the code reviewer and a link to the commit they reviewed in the tracker.

For pair programming sessions, you must submit the name of your partner in the tracker.

Please refer to class materials to see which assignments require code reviews or pair programming sessions.

Tutorials

Note: Please reference the above schedule for tutorial due dates.

Projects

Note 1: Please reference the above schedule for project due dates.

Note 2: Project specs are listed below. For each project, the rubric (how you will be graded) is linked within each spec. A project will not be considered complete unless it satisfies all of the the requirements as outlined in the spec.

  • GIF Search: Build a website that searches GIFs using the Tenor API
  • Mad Libs: Build a mad libs game in your terminal using Python
  • Spaceman: Build a word guessing game in your terminal using Python
  • Herd Immunity Simulation: Apply all of your learnings from your CS lessons to create a simulation that models how a virus moves through a population where some (but not all) of a population is vaccinated against this virus.
  • Contractor Project: Apply all of your learnings from your BEW lessons to create a website for a store of your choosing!

Project Submission

To submit each project for feedback and grading, be sure to follow each step below:

  • Self-assess your project code against the evaluation criteria in the associated project rubric.
  • Submit your rubric scores with the appropriate submission form linked in the schedule above.
  • Update your entire row of the appropriate course progress tracker after submitting the form:

Refer to the assignment schedule above for the due date of each project. Submissions will be accepted until midnight on the due date. Late submissions will not be graded.

Evaluation

Due to the combined nature of this course, evaluation will be based on the evaluation criteria of each individual course. If you satisfy the criteria for one course but not the other, you will pass one course but need to re-take the other course in a future term. For example, if by the end of the term you meet the evaluation criteria for CS 1.1 but not BEW 1.1, you would have to take BEW 1.1 in a future term.

Individual Evaluation Criteria

CS 1.1

BEW 1.1

Make School Course Policies