Web App Programming in Python (Johar) FA2016 PDF
Web App Programming in Python (Johar) FA2016 PDF
Course objectives
The goal of this class is to give you a working knowledge of how to build web
applications. We’ll review the basics of programming, how to use APIs, briefly
cover web scraping libraries in Python, and how to put all this together to build a
web application.
Your reward, at the end of the course (assuming you do everything seriously!) will
be substantial. You will have a working prototype of a web application that will be
deployed on a cloud server (we’ll - most likely - use Amazon Web Services).
You’ll understand how computer applications - large scale ones or small scale ones
- work and you'll be able to build working prototypes to illustrate and market your
own ideas. But, be aware that this is an intensive course that will require a lot of
work and a substantial time commitment.
Pre-requisites
1. Programming knowledge: Prior exposure to computer programming is a must.
Any language will do because we will -very briefly - review the basics of python at
the start of the class. Python is a fairly simple language and you can easily pick it
up online at https://www.codecademy.com/learn/python
2. HTML/CSS: HTML and CSS are the language of web pages. They are markup
languages (think word processors) rather than programming languages. We won’t
cover these in class but please take the Khan Academy introduction (https://
www.khanacademy.org/computing/computer-programming/html-css)
(shouldn’t take more than a couple of hours) prior to the first class.
Expectations
What you can expect from me.
Home assignments: We'll have a few home assignments as well. Like the quizzes,
assignments are not meant to be diagnostic but rather to help you practice so they
will be very (very!) lightly graded. You can consult with others, ask me questions,
use google for help, but do try them on your own first.
Project: There is no better way to learn something than to go out and use it so start
thinking about a web application that you think you'd like to build. The expectation
is that you use the material we'll cover in this class to plan, design, and implement
a small web application. Your project grade will depend on how well your work
illustrates your understanding of the course material. Final submission will include
a design report, Python code, and an in-class "speed-date" presentation and
demonstration.
Mac vs Windows: Either is fine but, if you have the choice, then please use a Mac.
It is much easier to install needed libraries on a Mac than it is on a Windows
machine. In particular, if you have a Mac and are using some sort of Windows
emulator then please use Mac OS-X and not the Windows emulator for the work
you do in this class. The double redirection will make everything a lot slower. But,
either Mac or Windows will work so don't worry if you're a Windows user.
Python2 vs. Python3. Unfortunately, there are two versions of Python and they
aren't fully compatible. We'll be using Python3 (current version: 3.5.2) mainly
because Python2 is slated to go away (though, in the open source world, that
doesn't mean a whole lot!) but also because it is a better language. However, the
differences are not huge and the choice is yours and I’ll provide adequate guidance
if you prefer to use Python 2.
Online resources
Python tutorial at Python.org (https://docs.python.org/3/tutorial/)