About this course

Updated February 5, 2018 ]

In this course, students learn how to:

  • Use SQL (Structured Query Language) to create databases and read/write data for use in applications for media audiences.
  • Scrape websites to collect public data (such as government data for an informed electorate) that can be stored, analyzed and reused, as is typically done in media organizations.
  • Write programs in Python.
  • Create server-side Web apps using Flask, a Python framework.
  • Solve problems in setting up and using command-line tools to support innovative storytelling.

The prerequisite for this course is Introduction to Web Apps, which is offered only in the fall semester.

This course adds server-side (back-end) Web skills to the client-side (front-end) Web skills students have developed in the preceding course, with the goal of developing Web apps that include a server-side component to support presentations of stories and large data sets for media organizations. Web scraping is also covered to enable journalists to gather open data from the Web for analysis and/or informing audiences.

This means you can save information generated from a Web page (you can require users to log in, for example); you can run scripts on the server that will affect what the user sees, among other things; you can read and write information from/to databases.

Web scraping

“With few exceptions, if you can view it in your browser, you can access it via a Python script. If you can access it in a script, you can store it in a database. And if you can store it in a database, you can do virtually anything with that data.” —Ryan Mitchell, Web Scraping with Python (one of our required books)

Why SQL?

“Employers favor back-end developers with experience in PHP, Python, and SQL. PHP is a server-side scripting language which powers giants like Facebook and Wikipedia, as well as any website built with WordPress or Drupal (hence its popularity with employers). Python is a general-purpose programming language prioritizing, clean, efficient, readable code, and SQL is a special-purpose programming language used to manage databases.” —5 Web Developer Job Descriptions & Skills They Require (March 2015)

Why Python?

Many people would recommend that you learn both Python and PHP. Here’s my view: You are communication majors, and our semester is only 15 weeks long, so I had to choose. I’ve written PHP, especially when altering WordPress templates, and it’s not too hard. Python also is not hard, and Python is like a Swiss Army knife — you can do so many things with it! You already have some JavaScript coming into this course. Learning Python will reinforce all your skills with variables, loops, if-statements and functions, and you’ll love its cleaner, simpler syntax.

Python also has a lot of great libraries you can add with a simple download. One of these is BeautifulSoup, which we will use for scraping.

Instructor information

Instructor: Mindy McAdams, Professor, Department of Journalism
E-mail: See this page for my UF e-mail address
Office: 3049 Weimer Hall
Office hours: Wednesday 1–3 p.m. in 3049 Weimer | And by appointment | Spring 2018
“By appointment” just means let me know when you want to come and see me, and I’ll let you know if I can’t be there. I’m often not in my office, so you’ll save a trip if you email me ahead of time.
Office phone: (352) 392-8456 (NOTE: E-mail is better. Much better.)
About me | My GitHub

Course information

JOU 4364 | Spring 2018 | Section 2F03

Class meets Tuesday 11:45 a.m.–2:45 p.m. (periods 5, 6 and 7)
Location: 2056 Weimer Hall (second floor, Atrium)

Required books

These books will not be needed until Feb. 1, 2018. Please wait to buy them.

  • Web Scraping with Python: Collecting Data from the Modern Web, by Ryan Mitchell (O’Reilly, 2015) — the new 2nd edition of this is not yet available, so we must use the 1st edition
  • Automate the Boring Stuff with Python: Practical Programming for Total Beginners, by Al Sweigart (No Starch Press, 2015) — my new fave for beginners in Python
  • Possible third book — read below

You can find the books at Amazon, which likely has the lowest price. Note that the Sweigart book is available free online as web pages (not a PDF), so if you can live with that, you don’t need to buy it.

If we use the new edition, you CANNOT use the old edition. Many things in the code will be different.

It’s possible that I will ask you to buy a third book, Flask Web Development, 2nd edition. The book is due to be published in February 2018, but sometimes publication dates slip and the book is not available until much later. In 2016 we used the first edition of this book. The author intends to publish a set of blog posts in December and January that will be roughly equivalent to the book. When I get a look at those, I might decide we don’t need the book.