Web Programming for Historians (Fall 2019)
- You will have a basic proficiency in Python and the Django web application framework, as well as related web technologies.
- You will understand the structures and common patterns of web applications.
- You will understand how to adapt web technologies to historical purposes, as well as how to collaborate on software development in the humanities.
This class will be very flexible, and so you will have to be flexible too. The first few weeks will acquaint you with the basics of programming for web applications. You will learn the kinds of things that would apply to any project that you might build. After that, we will be working on building a historical project together. The specific things we will need to know will depend on what we decide to do. This is by design: figuring out what you need to learn is an important skill, maybe the most important skill.
That flexibility has a few implications: (1) Be prepared to treat this syllabus as a collaborative, living document, which we will continually revise throughout the semester. (2) Plan on doing a lot of reading of documentation, as well as searching for tutorials, in order to learn about the technologies that we are using. After the first few weeks we will have to go looking for materials about the things we want to learn. (3) Expect to negotiate the scope of the class project as well as your specific role on it with me and with the other people in the class.
The other kind of flexibility concerns scheduling. We’ve agreed to hold the formal class meeting for two hours each week, and spend the other 40 minutes of class in impromptu sessions targeted at what you need to learn or at solving the problems you are facing. Please make liberal use of the ability to book appointments with me, and be in touch if the scheduled times don’t work for you.
There are some essential resources that you will need:
- William S. Vincent, Django for Beginners. This is the only book you will need to buy.
- Eric Matthes, Python Crash Course. This and many other technology books are available for free in Safari Tech Books Online via the university library. Take a look.
- The documentation for Django and Python, as well as for Python’s standard library.
- The Mozilla Web Developer Network is an excellent resource for explanations of or tutorials about lots of web technologies.
Try to install the following software or get accounts at the following places before the first day of class.
- You will need Python 3.7.x, along with Django 2.2.x. Follow the installation steps in Django for Beginners.
- You can use whatever text editor you want, but if you don’t have a strong preference, it will be easiest to use Visual Studio Code.
- DB Browser for SQLite will help you inspect databases.
- Sign up for a GitHub account if you don’t already have one.
- You will be given a login account to a development server at RRCHNM at an appropriate point in the semester. We will use this to deploy our class project.
For each class there will be readings, tutorials, or the like that you will need to do in order to come to class prepared. Most students have found that they should do these readings before class and again after class. These will count for 20% of your grade.
For the first weeks of the semester, you will complete the tutorials from each of the chapters in Django for Beginners. These tutorials should be submitted as GitHub repositories. These assignments will count for 30% of your grade.
For the remainder of the semester, we will work on some project that we will define. Your contributions to the project may vary in form from other people in the class, but you will have to submit evidence of substantial contribution (such as commits to the repository, documentation written, design documents, and so forth). Your work on this project will count for 50% of your grade.
Week 1 (August 27): Introduction
- Read PCC ch. 1–2
- Read DFB ch. 1
- Come prepared with a development environment on your laptop, to the best of your ability. Follow the guide in DFB ch. 1 and ignore the similar instructions in PCC ch. 1.
Week 2 (September 3)
Assignment due: Come to class with a working Django “hello world” from ch. 2. No need to submit this via GitHub.
- Read PCC ch. 3–4
- Read DFB ch. 2–3
Week 3 (September 10)
Assignment due: Submit the code for your pages app (ch. 3) to GitHub. (Ignore the part about deploying to Heroku.)
- Read PCC ch. 5–6
- Read DFB ch. 4
Week 4 (September 17)
Assignment due: Submit the code for your message board app (ch. 4) to GitHub.
- Read PCC ch. 8
- Read DFB ch. 5
Week 5 (September 24)
Assignment due: Submit the code for your blog app (ch. 5) to GitHub.
- Read PCC ch. 9
- Read DFB ch. 6
Week 6 (October 1)
Assignment due: Submit the code for your second blog app (ch. 6) to GitHub.
- Read PCC ch. 10
- Read DFB ch. 7–8
Week 7 (October 8)
Assignment due: Submit the code for your newspaper app (ch. 8) to GitHub. (Skip the app from ch. 7.)
- Read PCC ch. 11
- Read DFB ch. 13
Week 8 (October 22)
Assignment due: Come to class with proposals for historical web apps.
During this week we will decide on the project that we are going to work on together for the rest of the semester and sketch out how we are going to do it.
Week 9 (October 29)
Week 10 (November 5)
Week 11 (November 12)
Week 12 (November 19)
Week 13 (November 26)
Week 14 (December 3)
Class project released (December 10)
🚀 Initial release of the class project on or around this date 🚀
This syllabus may be updated online as necessary. The online version of this syllabus is the only authoritative version.
Students must satisfactorily complete all assignments (including participation assignments) in order to pass this course. Your attendance is expected at every meeting. If you must be absent, I request that you notify me in advance of the class meeting. I am sometimes willing to grant extensions on assignments for cause, but you must request an extension before the assignment’s due date. For every day or part of a day that an assignment is late without an extension, I may reduce your grade. No work (other than final projects) will be accepted after the last day that the class meets. I will discuss grades only in person during office hours.
See the George Mason University catalog for general policies, as well as the university statement on diversity. You are expected to know and follow George Mason’s policies on academic integrity and the honor code. If you are a student with a disability and you need academic accommodations, please see me and contact the Office of Disability Services at 703-993-2474 or through their website. You are responsible for verifying your enrollment status. All academic accommodations must be arranged through that office. Please note the dates for dropping and adding courses from the GMU academic calendar.