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
- Explain how to break down a problem into a programable algorithm.
- Translate user stories and requirements into a program.
- Practice core programming concepts including data structures, control flow, repetition, functions, and object oriented programming.
- Implement core programming concepts in Python.
- Implement programming best practices, debugging, and testing in Python.
BEW 1.1
- Explain the MVC architecture for web server development.
- Use Resourceful Routes and explain the importance of Resourceful web architecture.
- Read and write to a Document-Based (NoSQL) database using a Object Document Mapper (ODM)
- Use Web application frameworks, middleware packages, and server-side templating.
- 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.
- Captain Rainbow's Color Checklist: Get more practice writing functions in Python, and learn a basic understanding of what it means to CRUD a resource!
- Super Hero Team Dueler: Apply your OOP knowledge by building a super hero game!
- Playlister: Video playlists with Flask and MongoDB!
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
- Program Learning Outcomes - What you will achieve after finishing Make School – all courses are designed around these outcomes.
- Grading System - How grading is done at Make School
- Diversity and Inclusion Statement - Learn about Diversity and Inclusion at Make School
- Academic Honesty - Our policies around plagiarism, cheating, and other forms of academic misconduct
- Attendance Policy - What we expect from you in terms of attendance for all classes at Make School
- Course Credit Policy - Our policy for how you obtain credit for your courses
- Disability Services (Academic Accommodations) - Services and accommodations we provide for students
- Student Handbook - Guidelines, policies, and resources for all Make School students