Web App Dev

Produce a full-stack web application in Python's Flask framework. This is one of the most difficult and rewarding challenges you'll have ever taken.

Web Development is one of the most valuable areas of Computer Science to study. Programming at the hub of all information gives you a bird’s eye view of how business operations fit together. And from TCP/IP to REST API, the architecture that powers the Internet is ingenious and powerful. But we’ve got to narrow our focus to a small slice of Web Development so we can actually build something in a single semester. We must be careful designing our scope of work (SoW) and our accepted level of abstraction.

Acceptable Level of Abstraction

Little kids are known to keep asking, “Why?” A thread of inquiry can always get more detailed. It never stops. You can keep digging deeper. Sooner or later we just accept the idea of something and stop asking questions. For example, I know hardly any of the electrical engineering involved to build a stick of RAM but I would still claim I know what RAM is. I’ve just accepted that there’s a thing called RAM and it works like so and I’m okay not knowing any more details than that for now.

The great Richard Feynman addresses acceptable levels of abstraction, though he doesn't call it such

We are going to narrow our focus to building a Python Flask app using templates and a pre-built starting point. We can build really cool things but it means that we’re going to brush over big concepts that are totally worth studying. Sometimes it’s hard to feel like you understand something if you can’t take the time to closely examine all of the pieces and principles involved. Write down questions, don’t stifle your curiosity, but be patient as we setup lots of abstract ideas that we won’t be able to satisfactorily investigate for a while. TLDR: Be patient and keep a running list of concepts and questions to research later.

Setup Your Tools

Accounts You’ll Need:

Extra Resources for the Try-Hards: