This syllabus is a living document! Hold down the SHIFT
key and press Refresh
to get the latest version.
This course is designed to introduce students to the Flask web framework. Students will learn language independent patterns that are repeated across many common servers. The course will cover topics including the request-response cycle, server-side templating, APIs, databases, & unit testing, to help students to build the skills necessary to create custom web sites.
This course covers language-independent web server frameworks and patterns in full-stack web design. Students will use their prior knowledge in HTML, CSS, and JavaScript to build the front-end of a simple web application, and then will learn new concepts to write a supporting back-end. This course covers the request-response cycle, server-side templating, parsing data from an HTML form, HTTP methods, and using APIs. More advanced concepts include document-based databases and controller testing.
- ACS 1700 (Web Foundations)
By the end of the course, you will be able to ...
- Use Flask routes & route variables to create web pages with dynamic content.
- Use forms & Jinja2 templates to take user input and display a result.
- Make API calls & use/analyze the JSON data to show a result to the user.
- Read and write to the MongoDB database using the PyMongo Object Document Mapper (ODM).
- Implement Flask route tests to verify the correctness of routes.
- Understand how the “create, read, update, deletion” (C.R.U.D) operations form the basis of user interactions in web architecture.
Course Dates: October 21 – December 13, 2024
Class Times: Tuesday, Thursday 1:00 PM – 3:45 PM
Class | Date | Pacing Recommendations (Complete all lessons up to - ) |
---|---|---|
1 | Tue, Oct 22 | Module 1 |
2 | Thu, Oct 24 | Finished Module 1 Assignment |
3 | Tue, Oct 29 | Module 2 |
4 | Thu, Oct 31 | Finished Module 2 Assignment |
5 | Tue, Nov 5 | Finished Quiz 1 (HARD DEADLINE - CLOSES END OF WEEK) |
6 | Thu, Nov 7 | Module 3 |
7 | Tue, Nov 12 | Finished Module 3 Assignment |
8 | Thu, Nov 14 | Finished Quiz 2 (HARD DEADLINE - CLOSES END OF WEEK) |
9 | Tue, Nov 19 | Module 4 |
10 | Thu, Nov 21 | Finished Module 4 Assignment |
11 | Tue, Nov 26 | Module 5 |
12 | Thu, Nov 28 | Thanks Giving Holiday |
13 | Tue, Nov 3 | - |
14 | Thu, Dec 5 | Finished Module 5 Assignment |
15 | Tue, Dec 10 | - |
16 | Tue, Dec 12 | - |
Students will complete assignments at their own pace.
Assignments must be turned in via Gradescope for credit!
Assignments should be completed by the recommended date in the above schedules section. Students falling behind should connect with the instructor for help staying on pace!
Any assignments not complete by the final day of class (Wed, Mar 3 & Thu, Mar 4) will be given a score of 0.
Quizzes can be found on Gradescope for credit during the week of their listing.
Quizzes can be retaken once, with the final grade being the average of the two final scores.
Students that have completed all assignments with a score of 3 or higher and earned an 80% or greater on their quizzes AUTOMATICALLY PASS QUIZ 3 and will not be required to take it! 🤩
Topic | Pacing Date | Assignment |
---|---|---|
1 | Tue, Oct 25 | Module 1 Assignment: Request/Response |
2 | Tue, Nov 1 | Module 2 Assignment: Forms & Templates |
3 | Thu, Nov 3 | Quiz 1 |
4 | Thu, Nov 10 | Module 3 Assignment: More Forms |
5 | Tue, Nov 15 | Quiz 2 |
6 | Thu, Dec 1 | Module 4 Assignment: APIs |
7 | Thu, Dec 7 | Module 5: Databases |
This course has been broken down into 5 modules for students to approach at their own pace. See the schedule below for recommendations on where you should be at in terms of content completion to help assess your pace.
Although this course has self-pacing elements--attendance is still a requirement! We will be doing activites, checking-in, and learning as a class!
- Introduction to the Request/Response Cycle
- Setting up and Using Flask Servers
- Introduction to C.R.U.D
GET
vsPOST
- Working with Route Variables and Forms
- Interacting with Form Data in Flask
- Understanding
**args
and**kwargs
- Templating
- Named Parameters
- Conditional Rendering with Templates
- Loops in Templates
- Creating Reusable Components via Template Inheritance
- Introduction to APIs
- C.R.U.D in API's
- Working with JSON Objects
- Testing API Routes with Postman
- Using the Requests Library to Generate User Requests - Note! When following the example here you will need to run your server (main.py) in one terminal window and run the firstrequest.py example in a second terminal!
- Working with Virtual Environments and the
requirements.txt
File - Creating and Managing Environment Variables with
dotenv
- Leveraging the Datetime Library
- Introduction to Databases
- SQL vs NoSQL and Introduction to MongoDB
- Connecting a Flask Server to MongoDB Cluster
- Performing C.R.U.D Operations with PyMongo
- Pymongo Todo List
To pass this course, you must:
- Earn an average score of 2 on each of the assignment rubrics. Each section's score will be determined by your performance on that week's assignment. The last section's score will be determined by your adherence to deadlines, class participation, & completion of the readings.
- Pass the 3 quizzes by earning an average score of >70%.
- Abide by the Attendance Policy.
Each student will be allowed 2 (two) unexcused absences and 2 (two) excused absences per course per term. An absence is excused if you reach out to your instructor prior to class to explain why you can't make it. If you exceed the total number of allowed absences, you will be withdrawn from the course.
Since this class uses a self-pacing model, there will be no late assignments. However, assignments must be turned in by the end of the term or else they will be scored as a 0!
Exceptions will only be made to this rule for extenuating circumstances such as prolonged illness. Please reach out to the instructor if something like this happens to you.
At Make School, we highly encourage collaboration between students on assignments. Working with other people is the best way to learn!
However, there's a big difference between collaboration (writing code together with another person) and plagiarism (copying code from a classmate or outside source without providing proper attribution).
Here are some guidelines to follow in order to avoid plagiarism:
- If you are looking at an outside source for help, close the window containing the code before writing your own solution.
- Do not write down a line of code unless you completely understand how it works. (This is true even if the source you're referencing is the lesson slides/examples/etc!)
- If your code is still similar to an outside source or another student's, provide attribution by adding a comment to your code explaining where it was taken from.