Course schedule 2017

Updated July 20, 2017 ]

This is the week-by-week outline for spring 2017. Weekly topics are subject to change. Please check this page once a week for the latest updates. All assigned work is listed here and linked when linking is relevant.

This schedule is subject to change throughout the semester.

DEADLINES for all quizzes and assignments are in Canvas.

Week 1 – Jan. 10

Introduction to the course. Tools, technologies and outcomes.

Week 2 – Jan. 17

Introduction to SQL and databases.
Introduction to XAMPP, an Apache Web server that runs on your computer (Mac/Windows).
In-class exercise: A shoutbox using MySQL, JavaScript and PHP (XAMPP required).

  • Quiz 1
  • Complete the shoutbox in-class exercise at home (before next week’s class)

Week 3 – Jan. 24

Optional SQL resources:

  • SQL Tutorial and/or SQL Teaching
  • Note: Don’t use the object-oriented commands, such as $stmt->execute();
    We will use the procedural commands, such as mysqli_stmt_execute($stmt);
  • Explanation of the difference between the SQL object-oriented commands and SQL procedural commands (when you see -> that is NOT the way we are doing it); I added this in case you Google SQL commands and get confused
  • Prepared statements and stored procedures (from the PHP documentation)

In class:

SQL and databases, part 2. Security concerns and SQL.
How to create and use prepared statements in PHP.
jQuery Ajax + HTML forms + PHP.
Review of the shoutbox you have completed. Start Assignment 1.
Preview of Assignment 2.

  • Quiz 2
  • Assignment 1: Complete the shoutbox: Make it live on your own website

Week 4 – Jan. 31

  • Watch and complete exercises: Modifying databases with SQL (7 parts)
    NOTE: This is the fourth section of the Khan Academy course. We are skipping the third section (Relational queries in SQL). Feel free to complete the third section on your own, but I will be discussing the fourth section in class and not the third section.
  • Prepare for Assignment 2: Choose your data, sketch form, list fieldnames

Optional SQL resource:

  • PHP with MySQL Essential Training ( — login here. Like many courses, this is very long (14+ hours) and thorough. You can skip around among these videos to supplement or reinforce what we’ve covered in class. Section 14, “Using PHP to Access MySQL,” is especially good. You can also download the complete exercise files for the course. The only drawback: The instructor is using old XHTML tags that end with />do not copy his outdated HTML tags! (His DOCTYPE is also outdated.) On the plus side, he is using PHP’s newer mysqli_ functions and procedural style (not object-oriented style) — so his PHP matches what we have used in class.

In class:

Using phpMyAdmin to export, import, delete tables, and to test SQL queries.
Using UPDATE and DELETE to modify rows in your database.
Database passwords. Database transactions.
Your MySQL database project explained. Work on Assignment 2.
Student presentations

Week 5 – Feb. 7

Install Python (in class); test-drive Terminal (Mac) or PowerShell (Windows).
Introduction to the command line.
Introduction to Python.
Install Jupyter Notebooks.
> Install Python3, virtualenv, Jupyter (in class)
Start Assignment 3 in class.
Student presentations

  • Assignment 3: Python review 1 (see Canvas for deadline and link)
  • No quiz this week
  • Make sure you have the required book by Mitchell

Week 6 – Feb. 14

Introduction to Web scraping with Python and BeautifulSoup.
Using PIP and virtualenv.
In class, we will install virtualenv and then install Python 3 using a virtual environment. Mitchell discusses virtual environments on pp. 7–8.
Student presentations

Week 7 – Feb. 21

Web scraping, part 2. Introduction to regex. More Python.
Student presentations

  • Assignment 6 has been moved to next week
  • Assignment 7: Python review 3 (see Canvas for deadline)
  • Quiz 5

Resources used in class, Week 7:

Week 8 – Feb. 28

Web scraping, part 3. Introduction to APIs. Storing scraped data. Web scraping project.
Student presentations

  • Assignment 6: Exercises from Mitchell (see Canvas for deadline)
  • Assignment 8 has been moved to Week 10
  • Web scraping proposal (see Canvas for deadline)
  • Quiz 6
  • Slides: Web Scraping (Mitchell, chapters 4 and 5) — APIs and storing data from scrapes

Week 9 – March 7

Spring Break – no classes

Week 10 – March 14

Starting the next book next week! Make sure you have it: Head First Python, 2nd edition (Barry)

Wrap-up for Web scraping: How to write data to a CSV or MySQL database
Web frameworks: Why use a framework?
Installing Flask (hands on): (plus slides)
Next round of student presentations: Assign dates

  • Quiz 7
  • Assignment 8: Python review 4 (see Canvas for deadline)
  • Slides from class: Flask, Part 1

Week 11 – March 21

Web apps with Python: Flask
Flask templates: Introduction
Student presentations

  • Quiz 8
  • Assignment 9: Web scraping project
  • Slides from class: Flask Templates

Week 12 – March 28

Flask and Bootstrap (more about templates)
Flask for Web forms with Flask-WTF and Bootstrap
Student presentations

Week 13 – April 4

  • Read: Frozen-Flask
  • Read: Python Web Server Gateway Interface (WSGI) — naturally, you won’t read all of this, but read enough so that you understand what WSGI is (“Rationale and Goals” and the first part of “Specification Overview” are good)

Flask applications continued
Using Frozen-Flask
Installing a dynamic Flask app at Reclaim Hosting (instructions) — here’s where WSGI comes into play
Student presentations

  • Assignment: Final project proposal
  • Here the GitHub repo for Frozen-Flask: flask-app-for-freezing
  • Here is the walk-through for using Frozen-Flask with your Assignment 10 project

Week 14 – April 11

Student’s individual Web project — workshop hours during class period
Student presentations

Week 15 – April 18

Student’s individual Web project — workshop hours during class period
Student presentations

  • Extra workshop hours Friday, April 21, noon–4 p.m. (room TBA)

Project Due Date

All projects are due on Monday, April 24, at 11:59 p.m. That is the Monday of finals week. You will post your project on your own website.

  • Post your project’s URL in Canvas by the deadline. This URL is on your own website.