By: Shah Warraich and Nahim Nasser
#Course Outline
- Date: Thursdays
- Time: 6:30pm - 8pm (1.5HR)
- Cost: Free
##Description:
Participants will leave this session with an understanding of pythonic principles, django's architecture, and good programming practices.
##Outcomes:
By the end of the series, participants will have created a fully functioning django web application, and should have a background on the capability and potential of the both python and django.
##Prerequisites
- Participants should be familiar with object-oriented programming.
##Software Required
- Code editor (I use Sublime Text 2, but feel free to use whatever you like)
- Web browser
- Python 2.7
- Terminal (Mac) or Powershell (Windows)
##Hardware Required
A computer / laptop able to run a modern web browser (Chrome, Firefox, Opera, Safari, IE9+), and a code editor (ie. Sublime, Notepad++, Eclipse, Pycharm, etc).
##Session 1: Intro to Python This session will discuss pythonic syntax, structure, and principles. Useful built-in functions, and data structures critical for use with django will be covered. We will be using the python interactive interpreter for a portion of this lesson.
Flow:
- Intro to Python: Why Python?
- Data Structures: Strings, Integers, Floats, Dictionaries, Lists, Tuples, Sets. Talk about differences and use cases.
- Statements and Functions: if, while, for, lambda, filter, sorted, map, dir, help, pdb
##Session 2: Django's architecture, design, and principles A high level overview of the various components in a django web application, and how they interoperate with each other. Django's MVC architecture will be broken down. Django's design philosophies will also be discussed.
##Session 3: Building a django application Part One An interactive session where we will build a fully functioning django application. We will walk through the tutorial presented on https://docs.djangoproject.com/en/1.4/intro/tutorial01/. It is very well documented and will familiarize the student with the djangoproject website for future use. We will go over part 1 and part 2 in this session. This will cover core concepts on setting up a project, implementing models and utilizing the admin functionality.
##Session 4: Building a django application Part Two Part 3 and 4 will be presented in this session. We will cover views and templates here. After this session the student should be equipped with all the basic skills to set up a website.
##Session 5: Craftsmanship Core elements will be reviewed as students will attempt at building features for a website. They can choose from a pre-selected set of tasks or decide on something themselves. Students will present in front of the class and have their code ripped apart.
##Session 6: Natural Language Processing with Python Fundamental concepts of natural language processing will be discussed. We will build a basic spam filter using Pythons NLTK library.
##Session 7: Scalability with Django Database and server architectures that allow for scalability will be presented.