Skip to content

Commit e089cc5

Browse files
committed
update the outline and readings sections to reflect the new order of presentations
1 parent 1895854 commit e089cc5

File tree

2 files changed

+152
-148
lines changed

2 files changed

+152
-148
lines changed

source/outline.rst

Lines changed: 74 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -15,78 +15,10 @@ prompt. Each session has associated assignments which you will complete
1515
between sessions.
1616

1717

18-
Session 1 - MVC Applications and Data Persistence
19-
-------------------------------------------------
20-
21-
In this session we will begin by introducing the idea of an MVC (*Model View
22-
Controller*) application. We'll discuss this popular application design
23-
pattern and talk about the ways in which it does and does not apply to the
24-
world of web applications.
25-
26-
We'll get started with our first application, a learning journal written in the
27-
lignt but powerful *Pyramid* web framework. We'll set up a development
28-
environment and install the framework and dependencies. We'll create our first
29-
*models* and experiment with persisting data to a database.
30-
31-
References
32-
**********
33-
34-
35-
Preparation for Session 2
36-
*************************
37-
38-
In preparation for session 2, please read the following materials:
39-
40-
* `Jinja2 Template Tutorial
41-
<presentations/template_tutorial-plain.html>`_
42-
* `HTML5 Site Layout Tutorial
43-
<http://www.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/>`_
44-
45-
Session 2 - Pyramid Views, Renderers and Forms
46-
----------------------------------------------
47-
48-
In this session we extend our understanding of the MVC design pattern by
49-
learning how Pyramid implements the *view* and *controller* aspects.
50-
51-
Pyramid *views* represent the *controller* part of the MVC pattern, and we'll
52-
create a number of them. We'll also learn how Pyramid uses *routes* to properly
53-
connect the *path* requested by a client to the *views* run by a server.
54-
55-
We'll meet with Pyramid's *renderers*, the *view* in MVC. We'll start by using
56-
a built-in renderer that simply turns view data into strings sent back to the
57-
client as plain text responses. We'll then install a template-based renderer
58-
and use the *jinja2* template language to create visible HTML pages the brower
59-
can load to show our learning journal entries.
60-
61-
Prepraration for Session 3
62-
**************************
63-
64-
In preparation for session 3, please read up on getting started with `Heroku
65-
and Python`_. We'll be deploying our learning journal to Heroku by the end of
66-
that session.
67-
68-
.. _Heroku and Python: https://devcenter.heroku.com/articles/getting-started-with-python#introduction
69-
70-
Sesstion 3 - Pyramid Authentication and Deployment
71-
--------------------------------------------------
72-
73-
In this session we will learn the basic elements of access control:
74-
authentication and authorization. We'll learn how Pyramid implements these two
75-
aspects of security, and will implement a basic security policy for our
76-
learning journal.
77-
78-
Once complete, we will deploy our application to Heroku. We'll make a few
79-
changes to how our app is configured to fit with the Heroku model and will be
80-
able to see our application in action by the end of the session.
81-
82-
Time permitting, we will enhance our application with a few special features
83-
such as Markdown formatting, and code highlighting. A list of potential future
84-
enhancements will give you plenty to think about for the rest of the week.
85-
86-
Session 4 - TCP/IP and Sockets
18+
Session 1 - TCP/IP and Sockets
8719
------------------------------
8820

89-
We will continue with a disucssion of the fundamental concepts and structures
21+
We will begin with a disucssion of the fundamental concepts and structures
9022
that underly the internet and networked computing. We'll learn about the
9123
TCP/IP stack (Internet Protocol Suite) and gain some insights into how that
9224
model manifests in real life. We will then dive into sockets and learn how to
@@ -105,7 +37,7 @@ References
10537
* `Python Module of the Week - socket <http://pymotw.com/2/socket/>`_
10638

10739

108-
Session 5 - Web Protocols
40+
Session 2 - Web Protocols
10941
-------------------------
11042

11143
Protocols are the languages of the Internet. They govern how machines speak to
@@ -134,7 +66,7 @@ clear and concise and have some great code examples.
13466

13567
.. _Internet Protocols and Support: http://pymotw.com/2/internet_protocols.html
13668

137-
Session 6 - CGI and WSGI
69+
Session 3 - CGI and WSGI
13870
------------------------
13971

14072
In this class we will explore ways of moving data from HTTP requests into the
@@ -149,7 +81,7 @@ CGI, and look at the ways in which it differs. We'll create a simple interaction
14981
using WSGI and see what benefits and drawbacks it confers.
15082

15183

152-
Session 7 - APIs and Mashups
84+
Session 4 - APIs and Mashups
15385
----------------------------
15486

15587
The internet is a treasure trove of information. But meaning can be hard to
@@ -179,6 +111,75 @@ References
179111
* `DocXMLRPCServer <http://docs.python.org/2/library/docxmlrpcserver.html>`_
180112

181113

114+
Session 5 - MVC Applications and Data Persistence
115+
-------------------------------------------------
116+
117+
In this session we will begin by introducing the idea of an MVC (*Model View
118+
Controller*) application. We'll discuss this popular application design
119+
pattern and talk about the ways in which it does and does not apply to the
120+
world of web applications.
121+
122+
We'll get started with our first application, a learning journal written in the
123+
lignt but powerful *Pyramid* web framework. We'll set up a development
124+
environment and install the framework and dependencies. We'll create our first
125+
*models* and experiment with persisting data to a database.
126+
127+
References
128+
**********
129+
130+
131+
Preparation for Session 6
132+
*************************
133+
134+
In preparation for session 6, please read the following materials:
135+
136+
* `Jinja2 Template Tutorial
137+
<presentations/template_tutorial-plain.html>`_
138+
* `HTML5 Site Layout Tutorial
139+
<http://www.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/>`_
140+
141+
Session 6 - Pyramid Views, Renderers and Forms
142+
----------------------------------------------
143+
144+
In this session we extend our understanding of the MVC design pattern by
145+
learning how Pyramid implements the *view* and *controller* aspects.
146+
147+
Pyramid *views* represent the *controller* part of the MVC pattern, and we'll
148+
create a number of them. We'll also learn how Pyramid uses *routes* to properly
149+
connect the *path* requested by a client to the *views* run by a server.
150+
151+
We'll meet with Pyramid's *renderers*, the *view* in MVC. We'll start by using
152+
a built-in renderer that simply turns view data into strings sent back to the
153+
client as plain text responses. We'll then install a template-based renderer
154+
and use the *jinja2* template language to create visible HTML pages the brower
155+
can load to show our learning journal entries.
156+
157+
Prepraration for Session 7
158+
**************************
159+
160+
In preparation for session 7, please read up on getting started with `Heroku
161+
and Python`_. We'll be deploying our learning journal to Heroku by the end of
162+
that session.
163+
164+
.. _Heroku and Python: https://devcenter.heroku.com/articles/getting-started-with-python#introduction
165+
166+
Sesstion 7 - Pyramid Authentication and Deployment
167+
--------------------------------------------------
168+
169+
In this session we will learn the basic elements of access control:
170+
authentication and authorization. We'll learn how Pyramid implements these two
171+
aspects of security, and will implement a basic security policy for our
172+
learning journal.
173+
174+
Once complete, we will deploy our application to Heroku. We'll make a few
175+
changes to how our app is configured to fit with the Heroku model and will be
176+
able to see our application in action by the end of the session.
177+
178+
Time permitting, we will enhance our application with a few special features
179+
such as Markdown formatting, and code highlighting. A list of potential future
180+
enhancements will give you plenty to think about for the rest of the week.
181+
182+
182183
Preparation for Session 8
183184
*************************
184185

source/readings.rst

Lines changed: 78 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -18,73 +18,7 @@ increase both the depth and breadth of your knowledge.
1818
The readings are organized like the class, by session and topic.
1919

2020

21-
Session 1 - MVC Applications and Data Persistence
22-
-------------------------------------------------
23-
24-
As we'll be learning about Pyramid over the first three sessions, please take
25-
some time to read and digest some of the `copious documentation`_ for thie
26-
powerful framework.
27-
28-
In particular, to cover the topics we address in this session you'll want to
29-
read the following:
30-
31-
* `Pyramid Configuration
32-
<http://docs.pylonsproject.org/projects/pyramid/en/latest/api/config.html>`_
33-
* `Defending Pyramid's Design
34-
<http://docs.pylonsproject.org/projects/pyramid/en/latest/designdefense.html>`_
35-
36-
.. _copious documentation: http://docs.pylonsproject.org/projects/pyramid/en/latest/index.html
37-
38-
You may also wish to read a bit about `SQLAlchemy`_. In particular you may
39-
want to work through the `Object Relational Tutorial`_ to get a more complete
40-
understanding of how the SQLAlchemy ORM works.
41-
42-
.. _SQLAlchemy: http://docs.sqlalchemy.org/en/rel_0_9/
43-
.. _Object Relational Tutorial: http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html
44-
45-
46-
Session 2 - Pyramid Views, Renderers and Forms
47-
----------------------------------------------
48-
49-
This week we'll be focusing on the connection of an HTTP request to the code
50-
that handles that request using `URL Dispatch`_. Quite a lot is possible with
51-
the Pyramid route system. You may wish to read a bit more about it in one of
52-
the following documentation sections:
53-
54-
* `Route Pattern Syntax
55-
<http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/urldispatch.html#route-pattern-syntax>`_
56-
discusses the syntax for pattern matching and extraction in Pyramid routes.
57-
58-
In Pyramid, the code that handles requests is called `a view`_.
59-
60-
A view passes data to `a renderer`_, which is responsible for turning the data
61-
into a response to send back.
62-
63-
Getting information from a client to the server is generally handled by
64-
`HTML forms`_. Working with forms in a framework like Pyramid can be
65-
facilitated by using a *form library* like `WTForms`_.
66-
67-
.. _URL Dispatch: http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/urldispatch.html
68-
.. _a view: http://docs.pylonsproject.org/projects/pyramid/en/1.5-branch/narr/views.html
69-
.. _a renderer: http://docs.pylonsproject.org/projects/pyramid/en/1.5-branch/narr/renderers.html
70-
.. _HTML forms: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms
71-
.. _WTForms: http://wtforms.readthedocs.org/en/latest/
72-
73-
For layout and design, CSS will be your tool of choice. There is no better tool
74-
for learning CSS than trying things out, but you need a good reference to get
75-
started. You can learn a great deal from the `Mozilla Developer Network`_ CSS
76-
pages. I also find `A List Apart`_ and `Smashing Magazine`_ to be fantastic
77-
resources.
78-
79-
.. _Smashing Magazine: http://www.smashingmagazine.com
80-
.. _A List Apart: http://alistapart.com
81-
.. _Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Web/CSS
82-
83-
84-
Sesstion 3 - Pyramid Authentication and Deployment
85-
--------------------------------------------------
86-
87-
Session 4 - TCP/IP and Sockets
21+
Session 1 - TCP/IP and Sockets
8822
------------------------------
8923

9024
* `Wikipedia - Internet Protocol Suite
@@ -129,7 +63,7 @@ networked computing in mind:
12963
* `ZeroMQ Guide, Chapter 1 <http://zguide.zeromq.org/py:all#Chapter-Basics>`_
13064

13165

132-
Session 5 - Web Protocols
66+
Session 2 - Web Protocols
13367
-------------------------
13468

13569
* `Python Standard Library Internet Protocols
@@ -167,7 +101,7 @@ remain unchanged) over time, skim these specifications for HTTP and SMTP:
167101
* `RFC 5321 - SMTP (latest) <http://tools.ietf.org/html/rfc5321>`_
168102

169103

170-
Session 6 - CGI and WSGI
104+
Session 3 - CGI and WSGI
171105
------------------------
172106

173107
* `CGI tutorial`_ - Read the following sections: Hello World, Debugging, Form.
@@ -200,7 +134,7 @@ more minimal and may be easier to comprehend off the bat.
200134
.. _Getting Started with WSGI: http://lucumr.pocoo.org/2007/5/21/getting-started-with-wsgi/
201135

202136

203-
Session 7 - APIs and Mashups
137+
Session 4 - APIs and Mashups
204138
----------------------------
205139

206140
* `Introduction to HTML (from the Mozilla Developer Network)
@@ -245,6 +179,75 @@ both from the side of production and consumption:
245179
.. _restkit: https://github.com/benoitc/restkit/
246180

247181

182+
Session 5 - MVC Applications and Data Persistence
183+
-------------------------------------------------
184+
185+
As we'll be learning about Pyramid over the next three sessions, please take
186+
some time to read and digest some of the `copious documentation`_ for thie
187+
powerful framework.
188+
189+
In particular, to cover the topics we address in this session you'll want to
190+
read the following:
191+
192+
* `Pyramid Configuration
193+
<http://docs.pylonsproject.org/projects/pyramid/en/latest/api/config.html>`_
194+
* `Defending Pyramid's Design
195+
<http://docs.pylonsproject.org/projects/pyramid/en/latest/designdefense.html>`_
196+
197+
.. _copious documentation: http://docs.pylonsproject.org/projects/pyramid/en/latest/index.html
198+
199+
You may also wish to read a bit about `SQLAlchemy`_. In particular you may
200+
want to work through the `Object Relational Tutorial`_ to get a more complete
201+
understanding of how the SQLAlchemy ORM works.
202+
203+
.. _SQLAlchemy: http://docs.sqlalchemy.org/en/rel_0_9/
204+
.. _Object Relational Tutorial: http://docs.sqlalchemy.org/en/rel_0_9/orm/tutorial.html
205+
206+
207+
Session 6 - Pyramid Views, Renderers and Forms
208+
----------------------------------------------
209+
210+
This week we'll be focusing on the connection of an HTTP request to the code
211+
that handles that request using `URL Dispatch`_. Quite a lot is possible with
212+
the Pyramid route system. You may wish to read a bit more about it in one of
213+
the following documentation sections:
214+
215+
* `Route Pattern Syntax
216+
<http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/urldispatch.html#route-pattern-syntax>`_
217+
discusses the syntax for pattern matching and extraction in Pyramid routes.
218+
219+
In Pyramid, the code that handles requests is called `a view`_.
220+
221+
A view passes data to `a renderer`_, which is responsible for turning the data
222+
into a response to send back.
223+
224+
Getting information from a client to the server is generally handled by
225+
`HTML forms`_. Working with forms in a framework like Pyramid can be
226+
facilitated by using a *form library* like `WTForms`_.
227+
228+
.. _URL Dispatch: http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/urldispatch.html
229+
.. _a view: http://docs.pylonsproject.org/projects/pyramid/en/1.5-branch/narr/views.html
230+
.. _a renderer: http://docs.pylonsproject.org/projects/pyramid/en/1.5-branch/narr/renderers.html
231+
.. _HTML forms: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms
232+
.. _WTForms: http://wtforms.readthedocs.org/en/latest/
233+
234+
For layout and design, CSS will be your tool of choice. There is no better tool
235+
for learning CSS than trying things out, but you need a good reference to get
236+
started. You can learn a great deal from the `Mozilla Developer Network`_ CSS
237+
pages. I also find `A List Apart`_ and `Smashing Magazine`_ to be fantastic
238+
resources.
239+
240+
.. _Smashing Magazine: http://www.smashingmagazine.com
241+
.. _A List Apart: http://alistapart.com
242+
.. _Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Web/CSS
243+
244+
245+
Sesstion 7 - Pyramid Authentication and Deployment
246+
--------------------------------------------------
247+
248+
There are no special readings associated with this week.
249+
250+
248251
Sessions 8, 9, & 10 - Django
249252
----------------------------
250253

@@ -253,23 +256,23 @@ Django documentation is excellent and thorough. As a start, take a look at
253256
these sections:
254257

255258
* `Django at a Glance
256-
<https://docs.djangoproject.com/en/1.7/intro/overview/>`_ - introduction to
259+
<https://docs.djangoproject.com/en/1.9/intro/overview/>`_ - introduction to
257260
the concepts and execution of Django
258261

259262
* `Quick Install Guide
260-
<https://docs.djangoproject.com/en/1.7/intro/install/>`_ - lightweight
263+
<https://docs.djangoproject.com/en/1.9/intro/install/>`_ - lightweight
261264
instructions on installing Django. Use Python 2.7.
262265

263-
* `Django Tutorial <https://docs.djangoproject.com/en/1.7/intro/tutorial01/>`_
266+
* `Django Tutorial <https://docs.djangoproject.com/en/1.9/intro/tutorial01/>`_
264267
- The tutorial covers many of the same concepts we will in class. Go over it
265268
to re-enforce the lessons you learn
266269

267-
* `Using Django <https://docs.djangoproject.com/en/1.7/topics/>`_ - far more
270+
* `Using Django <https://docs.djangoproject.com/en/1.9/topics/>`_ - far more
268271
in-depth information about core topics in Django. In particular, the
269272
installation instructions here can be helpful when you run into trouble.
270273

271274
Bookmark the `Django Documentation homepage
272-
<https://docs.djangoproject.com/en/1.7/>`_. It really is "everything you need
275+
<https://docs.djangoproject.com/en/1.9/>`_. It really is "everything you need
273276
to know about Django"
274277

275278
When you have some time, read `Django Design Philosophies

0 commit comments

Comments
 (0)